Цель: Рассчитать нормали в вершинном шейдере для смещенных вершин.Custom Phong Shader для объекта THREE.JS
Текущее состояние: Некоторые взломанные коды, на которые я не верю, являются 100% правильными.
--- прогресс ---
верт является модифицированной позицией вершины
vertNormal является модифицированным положение вершины применяется к нормалям (в основном клон)
vec3 objectNormal = normalize(cross(vert-position,vertNormal-position));
vec3 transformedNormal = normalMatrix * objectNormal;
vNormal = normalize(transformedNormal);
http://fallingcode.com/servedFiles/normals.jpg
Мне просто нужна некоторая обратная связь о той части вершинного кода шейдера на этом этапе.
(1) Что означает «не работает»? (2) Вы перемещаете вершины. Вам тоже придется обращаться с нормалями. (3) Вы должны сначала перенести вершины/нормали, поэтому вычисления освещения вычисляются с использованием модифицированных вершин и нормалей. – WestLangley
(1) Не работает, поскольку в envmap не отображается на волнистой плоскости. (2) Я понял, что, но это остановит envmap от показа в самолете? (3) Можно ли вытеснить нормали так же, как я смещал вершины? – fallingCode
(re: 2) Ваши нормали все указывают в одном направлении, поэтому освещение будет неправильным. Предположительно, вы все равно увидите что-то. (re: 3) Поскольку у вас есть аналитические формулы для смещенных вершин, имеется также подразумеваемая аналитическая формула для нормалей. Что вы пытаетесь создать - плоское (граненое) затенение или гладкое затенение? – WestLangley