2013-11-16 2 views
1

В OpenGL я мог бы просто сделать что-то вродеНаправленное освещение в WebGL шейдеров

glEnable(GL_LIGHTING) 
glEnable(GL_LIGHT0) 
... 
GLfloat position[] = {-1.0f, 0.5f, 0.5f, 0.0f}; 
glLightfv(GL_LIGHT1, GL_DIFFUSE, color); 
glLightfv(GL_LIGHT1, GL_POSITION, position); 

И я бы направленный свет.

Как я могу создать направленный свет в шейдере в webgl? В частности, в следующей ситуации:

------------------------>  |    O 
^       ^   ^
directional light source  wall    Some object 

Где я хотел бы стену (или любой другой непрозрачный objecct), чтобы поглощать свет, предотвращая его от попадания объекта O

+0

Вы хотите реализовать тени в вашей программе? –

+5

Освещение в устаревших OpenGL - это нечто большее, чем фантастический интерполяционный цвет с вершинами, основанный на ослаблении направления/расстояния от источника света. То, что вы, кажется, описываете, подразумевает теневое кастинг, который OpenGL никогда не поддерживал на уровне API. Куски на месте, чтобы сами реализовать тени, но вам придется делать грязную работу. –

ответ

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