Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / FAQ / Проблемы с освещением после масштабирования объекта.

Проблемы с освещением после масштабирования объекта.

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

В DirectX сделать это можно так:

pDevice->SetRenderState( D3DRS_NORMALIZENORMALS, TRUE );

В OpenGL так:

glEnable(GL_NORMALIZE);
В OpenGL 1.2 введено расширение GL_EXT_rescale_normal, которое делит нормаль на соответствующие элементы матрицы modelview, и получает правильное значение вектора нормали.

15 августа 2007


Обновление: 5 августа 2008

2001—2017 © GameDev.ru — Разработка игр