Как получить зеркальный цвет в OpenGL? - PullRequest
1 голос
/ 25 ноября 2011

Мой код работает для всего, кроме зеркального компонента.

glEnable(GL_COLOR_SUM);
...
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, color);
glEnableClientState(GL_SECONDARY_COLOR_ARRAY);
glSecondaryColorPointer(3, GL_UNSIGNED_BYTE, 0, specular);
...
glDrawArrays(D3DPT_TRIANGLELIST, 0, 2);

Кажется, он игнорирует зеркальное отражение, но цвет, координаты текстуры, позиции и т. Д. Все в порядке.

Это НЕ использует свет и материалы. Фиксированный вершинный конвейер. К сожалению, шейдеры пока не подходят.

glGetError () также не сообщает об ошибках ни в одной точке.

1 Ответ

1 голос
/ 30 июля 2012

Вы сказали:

Это НЕ использует свет и материалы.

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

от http://en.wikipedia.org/wiki/Specular_highlight:

Ярким бликом является яркое пятно света, которое появляется на блестящих объектах при подсветке .

на примечании стороны, что делает D3DPT_TRIANGLELIST в коде OpenGL?это просто ошибка в вопросе или она действительно так работает?

...