Зеркальная текстура в OpenGL ES? - PullRequest
1 голос
/ 04 марта 2012

Я пытаюсь получить зеркальное выделение объектов, которые сопоставлены с текстурой.Насколько я знаю, единственный прямой способ для OpenGL не вычислять окончательный цвет поверх цвета текстуры (это, например, простой белый) - это вызов glLightModelf(GL_LIGHT_MODEL_COLOR_CONTROL,GL_SEPARATE_SPECULAR_COLOR), но это не поддерживается в OpenGL ES.

Итак, как я могу это сделать?Нужно ли использовать другую текстуру для подсветки фона, или есть еще более простой способ?

Чем вы!

PS Я использую OpenGL ES 1.x

Ответы [ 2 ]

1 голос
/ 03 августа 2012

Спасибо за отличные предложения, они спасли мой день. Единственной проблемой было мерцание. Сначала я подумал, что есть проблема с буфером глубины и ограниченным разрешением глубины, но это не так. Мне пришлось использовать gl.glDepthFunc (GL10.GL_ALWAYS); для идеального смешивания. Однако для сложных примитивов вы сможете видеть сквозь объект.

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

1 голос
/ 04 марта 2012

Один из обходных путей заключается в запуске в два прохода: первый проход визуализирует текстуру с рассеянным и рассеянным освещением, второй проход визуализирует зеркальные блики поверх этого (без включенного текстурирования).

...