У меня установлен очень простой шейдер фрагмента, содержащий направленный свет. Я пытаюсь зажечь один квад, используя этот направленный свет, и все, кажется, работает по назначению, но у меня есть один вопрос: Если обе стороны этого плоского квадроцикла будут затронуты направленным светом?Работает ли это освещение OpenGL по назначению?
При повороте камеры вокруг меня замечает, что задняя часть квадрата такая же яркая, как спереди. Должно ли это происходить или должно быть только один сторона квадроцикла будет гореть?
Я не понимаю, что вы говорите в первом абзаце. Скажем, источник света находится где-то впереди. Так как нормальная та же самая, задняя сторона должна выглядеть темнее, так как нормальная точка от света, когда видна задняя сторона (т. Е. Ориентирована на зрителя). Таким образом, обе стороны были бы одинаково яркими, если бы реализовано двухстороннее освещение, как описано в пункте 2. –
BTW, оператор '?' Подразумевает ветвь. Это просто ярлык для оператора 'if'. –
Предположим, что источник света находится впереди, а нормальная точка направлена к нему. Квадрат горит. То же самое для заднего лица и переднего лица, это то же самое. Они освещены, потому что нормальные точки направлены на свет. Если вы поместите камеру за квадроцикл, она не изменит ее нормальную, она останется на свет. Яснее? – Jerem