Поддерживает ли OpenGL ES шейдеры среды? - PullRequest
2 голосов
/ 17 июля 2009

Я хочу сделать металлический 3d объект, который кажется отражающим. Я хочу сделать это, используя шейдер среды, в котором используется карта сферы или куба, и я могу назначить изображение или текстуру в качестве источника "отражения".

OpenGL ES на iPhone поддерживает это в каких-либо версиях?

Ответы [ 3 ]

4 голосов
/ 17 июля 2009

OpenGL ES 2.0 обеспечивает поддержку шейдеров. Тем не менее, он не доступен во многих мобильных устройствах, которые есть на рынке сегодня. Вам было бы важно закодировать графические версии ES 1.1 и ES 2.0.

Apple Dev Center имеет массу информации о переходе:

Фиксированный конвейер OpenGL ES 1.1 обеспечивает хорошее базовое поведение для конвейера трехмерной графики, от преобразование и освещение вершин в смешивание конечных пикселей с кадровый буфер. Если вы решите реализовать OpenGL ES 2.0 приложение, вам нужно будет продублируйте эту функциональность. На С другой стороны, OpenGL ES 2.0 более гибкий, чем OpenGL ES 1.1. изготовленный на заказ операции вершин и фрагментов, которые было бы трудно или невозможно реализовать с помощью OpenGL ES 1.1 можно тривиально реализовано с помощью OpenGL ES 2.0 шейдер. Реализация кастома работа в OpenGL ES 1.1 Приложение часто требует нескольких рендеринг пропусков и сложных изменений в состояние OpenGL ES, которые скрывают намерение кода. Как ваши алгоритмы усложняются, шейдеры передают эти операции более четко и кратко и с лучшими характеристиками.

http://developer.apple.com/iphone/library/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/DeterminingOpenGLESCapabilities/DeterminingOpenGLESCapabilities.html#//apple_ref/doc/uid/TP40008793-CH102-SW1

2 голосов
/ 17 июля 2009

В старые времена "металлический" вид был достигнут с использованием техники, называемой "картографирование среды" или "картографирование отражения" .

Поскольку для OpenGL ES 1.1 нет программируемых шейдеров, простое отображение отражений может быть выполнено с помощью программного обеспечения. Просто преобразуйте нормали вершин в соответствии с источником / камерой отражения и получите UV-координаты текстуры из преобразованного вектора нормали. У iPhone есть лошадиные силы, чтобы сделать это легко, по крайней мере, с приличным количеством вершин.

0 голосов
/ 09 мая 2010

OpenGL ES Поддерживает большинство функций OpenGL (и некоторые дополнительные функции для мобильных устройств). Если я правильно помню, iPhone 3Gs поддерживает фрагментные шейдеры, в то время как старый iPhone 3G просто поддерживает фиксированный конвейер.

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