2010-09-17 2 views
2

Я новичок. Я заметил, в старом кодеgl_LightSource [0] .position.xyz в современном OpenGL

// Calculate the light position for this vertex 
vec3 vertex_light_position = gl_LightSource[0].position.xyz; 

Я предполагаю, что это динамично меняется, и, следовательно, не может проверить это с просто статическим Vec3.

Как мне заменить замену выше в современном OpenGL? Примером может служить большая оценка.

ответ

3

gl_LightSource - это всего лишь однородный массив, для современного кода вы можете просто передать единый массив структур, содержащий ваши световые данные.

0

Это более чем вероятно статичный. Этот код захватывает позицию от свет, а не вектор до свет от вершины.

Он также является статическим по отношению к текущему проходу рендеринга. Вершина находится в одном месте на протяжении всего кадра.

Чтобы получить информацию об огнях в современном OpenGL, введите documentation.

+1

GetLight устарел. –

+0

Хм. Мой профессор в классе компьютерной графики буквально упомянул об этом вчера. И в документации не упоминалось, что он устарел (по крайней мере, на странице, с которой я связан). Хотелось бы, чтобы они стали более очевидными ... – colithium

+0

Это устарело в последней спецификации. Это статично, спасибо за ответ. –

Смежные вопросы