Render.ru

компонент Bump для шэйдера Delux

Nikopol.VFX

Пользователь сайта
Рейтинг
2
#1
дали задачу написать шэйдер-компонент для шейдера Delux
нашел, что все компоненты описаны в components.slim и вписал по образу и подобию туда свой Bump. наполнил его из реально работащего шейдера Bump.
компонент появился. но результата от его работы нету никакой...

после некоторых изысканий было выяснено, что каждый компонент принимает в качестве параметра вектор нормали... и не использует при этом стандарный N являющийся собственно самим вектором...
мой компонент меняет нормаль и пишет ее в N (прорисовка векторов показывает, что изменения есть), но вот на результате рендера в Delux это никак не отражается...

попытка разбора самого Delux и написания в него самого Bump не привела к каким то результатам, как и в случае с компонентом шейдера...

кто-нибудь знает в чем дело??

ps. есть небольшое подозрение, что Delux не использует N как таковой или берет его в начале и подставляет во все компоненты одинаковым игнорируя возвращаемые значения в него, но это немного бредовая мысль....
 

Nikopol.VFX

Пользователь сайта
Рейтинг
2
#2
собственно, пока ждал подсказок, нашел и проблему и решение этой проблемы.

1. решить задачу невозможно, так как все уперлось в компилятор шейдеров на который средств воздействия не нашлось. если точнее, то он не смотрит на порядок компонентов в Delux, а выставляет свой в скомпилированный шейдер и Bump оказывается в конце, собственно там, где он уже не может повлиять на результат.

2. задача была решена написанием не компонента а темплейта Normal в "vectors.slim". так как все компоненты и так используют нормаль не из N а с указанного источника, то никто не запрещал добавить в этот список источников и свой компонент

теперь появилась возможность накладывать Bump как на конкретные компоненты так и на все, причем хоть одинаковые хоть разные...
 
Сверху