Я программирую в WebGL (используя шейдеры OpenGL) простой загрузчик модели. Я реализовал фонг-затенение в шейдере фрагментов. Однако, когда я загружаю более крупные объекты, чем простые обезьяны/кубы, и выключаю камеру из источника света, сетки выглядят странно (aliased?). Некоторые из них даже облегчены, хотя они должны быть скрыты (черные).Сетка на другой стороне источника света выглядит странно
Облегченный сторона OK:
Другая сторона не так:
рассчитать нормали для каждой вершину таким же образом, так нормали должны быть в порядке (когда я включить камеру на облегченной стороне автомобиля , все идет правильно).
Благодарим вас за советы.
+1: Первое, что меня поразило, было «это одностороннее освещение». –
Спасибо за ответ, я добавил отсев нормального инверсию в мой пиксельный шейдер таким образом: 'если (gl_FrontFacing == ложь) нормальный = нормальный * vec3 (-1,0, -1,0, -1,0);' и его немного помогли (интерьеры этого автомобиля выглядят лучше), но черные сетки/многоугольники по-прежнему черные, и все еще видны «линии сглаживания пунктирных линий». Возможно ли легко реализовать (или просто включить) наложение псевдонимов в OpenGL ES 2.0? Это может помочь. – lukyer