BumpMapping
Искал долго и нудно. Нашел только один рабочий пример. Но туда не влезишь- он написан на MFC в отвратном стиле. Может кто расскажет о том, что такое BumpMapping и с чем его едят?
На gamedev.ru - масса статей и примеров...
1. Задать каждому пикселу нормаль (это делается с помощью карты нормалей, то есть текстуры, каждый пиксел которой хранит значение нормали - в R-канале - x компоненту, в G-канале - y компоненту, в B-канале - z компоненту).
2. Выбирать для каждого пиксела из карты нормалей соответствующую нормаль (используя текстурные координаты) и использовать ее в расчетах.
Стоит отметить, что нормали в карте нормалей задаются в так называемом TangentSpace (это просто другая система координат) и не зависят от положения полигона и источника света в пространстве. Следовательно, для того, чтобы расситать освещение, нужно либо координаты источника света перевести в TangentSpace, либо вектор нормали, выбранный из текстуры, перевести в WorldSpace. Обычно выбирают первый вариант. Для его реализации на этапе препроцессинга объектов для каждой вершины рассчитываю помимо нормали еще два вектора - Tangent и Binormal. Эти три вектора на этапе отрисовки объекта используются для перевода LightVec в TangentSpace (например в вершинном шейдере). А далее (в пиксельном шейдере) вычисляется освещение пиксела, исходя из нормали к нему, LightVec и других параметров, которые зависят от модели освещения.
эту страницу. Статья мне понравилась. Что такое bumpmaping там просто расжевали.
BumpMupping в основном используется для создания эфекта выпуклой поверхности на абсолютно плоском полигоне. Для этого рисуется какрта высот, которая затем преабразуется в карту нормалей. Зайди на