В настоящее время я работаю с OpenGL ES 1.1 и использует соглашение DrawElements вместе с вершинными, нормальными, текстурными координатами и массивами индексов.Нормальные карты против нормальных координат
Недавно я наткнулся на это время исследовал идею использования отображения Normal/Bump, который я раньше, хотя невозможно с OpenGL ES: http://iphone-3d-programming.labs.oreilly.com/ch08.html
я могу генерировать объект-Apace нормальную карту уже с моей 3D моделер, но то, что я не совсем понимаю, - это то, будет ли массив нормальных координат понадобиться больше, если будет реализован второй блок текстур для нормального отображения или будет Освещен + Цветная текстура, объединенная с нормальной картой с помощью опции DOT3_RGB, - это все, что обязательный?
EDIT - После исследования DOT3 Lighting немного дальше, я не уверен, правильно ли ответ, заданный ognian. Эта страница, http://www.3dkingdoms.com/tutorial.htm дает пример ее использования, и если вы посмотрите на фрагмент кода «Rendering Final Result», нет нормального массива. ClientState для обычных массивов никогда не включается.
Я также нашел этот пост здесь, What is DOT3 lighting?, который объясняет это хорошо ... но приводит меня к другому вопросу. В комментариях говорится, что вместо перевода нормалей вы переводите направление света. Я смущен этим, как если бы у меня была игра со стационарной стеной ... зачем мне перемещать свет только для одной модели? Надеясь, что кто-то может дать хорошее объяснение всему этому ...
С помощью светового вектора мы говорим только о массиве light0position в glLightfv (GL_LIGHT0, GL_POSITION, light0position)? Если я вручную преобразую его, чтобы исправить освещение на одном объекте ... я не полностью загрязняю, как свет бьет все остальное? Как сделать, чтобы преобразовать его, а затем применить его только к изменению цвета только к объекту? Спасибо за солидный ответ, Pivot, кстати. – Maximus
Если вы выполняете нормальное отображение объектного пространства, как в разделе «Обычное сопоставление с OpenGL ES 1.1» первой ссылки, которую вы опубликовали, вы вообще не используете обычное освещение OpenGL ES 1.1. На этом этапе вы хотите передать свой вектор света (в пространстве объектов) в качестве цвета вершины, чтобы вы могли использовать его для DOT3. Вы можете часто получать достаточно приличное приближение, используя один и тот же цвет для всех вершин (вектор света объекта-объекта в центр вашего объекта). – Pivot
Хорошо, все как-то начинает иметь смысл ... только едва. Все, что вызвало это, состояло в том, что я использовал регулярное освещение и считал, что нормальное отображение чего-то, что нельзя было бы сделать с OpenGL ES. Когда я узнал, что это возможно, я пытался выяснить, как это работает. Итак ... прежде чем я пойду дальше ... это хорошая идея? Возможно, это быстрее, чем обычное освещение OpenGL ES 1.1? – Maximus