OpenGL ES: отключить трансформацию? - PullRequest
0 голосов
/ 23 июня 2010

Этот видеоподкаст NVIDIA (от?) Предлагает обойти стек матрицы OpenGL в качестве подсказки производительности. Также предлагается обойти освещение OpenGL, что подразумевает, что их намерение состоит в том, чтобы фактически преобразовать геометрию вручную. В любом случае, я делаю это по другим причинам.

Конечно, не имеет смысла, что вы на самом деле выиграете от этого, если нет способа заставить OpenGL отключить свои собственные преобразования. AFAIK, нет явного способа сделать это, и видео также не дает никаких подсказок об этом.

Конечно, это можно сделать логически, загрузив тождество в матрицы gl. Стоит ли ожидать, что приличная реализация вообще пропустит преобразование, если матрица идентична?

1 Ответ

0 голосов
/ 23 июня 2010

Это относится к тому факту, что вы можете помещать и вставлять матрицы в стек OpenGL. Избегайте таких вещей, как glTranslate и тому подобное. Таким образом, вы можете делать все свои умножения матриц и т. Д. Самостоятельно, и это определенно не будет проходить через эмуляцию с плавающей запятой. Затем вы просто устанавливаете матрицу напрямую.

Что касается освещения, вы делаете это с помощью glDisable. Похоже, они просто используют текстурное освещение. В основном вы рисуете свет на текстуру карты окружающей среды. Это дает вам эффект направленного света, и вы можете добавить столько источников света, сколько вам нужно, и единственная увеличенная стоимость - это создание карты окружающей среды. Хотя довольно сложно настроить карту окружения, но она определенно выполнима и дает действительно хорошие результаты (Вы могли бы использовать подобный прием, чтобы получить диффузное рельефное отображение DOT3 еще в DX6!)

Они могут говорить о том, чтобы самостоятельно освещать ваши данные вершин, когда вы добавляете их в движок. т. е. бегите через ваши нормали и положения и выполняйте расчет освещения с использованием фиксированной точки, прежде чем передавать их в GLES с помощью glColorPointer. Это ОЧЕНЬ простая вещь, и делать направленное освещение вершин легко (N.L, где N - нормаль вершины, а L - направление света в относительном пространстве модели).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...