我试图弄清楚如何在OpenGL中使用Lighting引擎.我的目标是在相机的方向模拟一个火炬.
gluLookAt( x, y, z,
x+lx, y+ly, z+lz,
0.0f, 1.0f, 0.0f);
GLfloat light_position[] = { x+1, y, z+1, 0.0f };
GLfloat light_direction[] = { x+lx,y+ly,z+lz};
GLfloat light_angle[] ={20};
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION,light_direction);
glLightfv(GL_LIGHT0,GL_SPOT_CUTOFF,light_angle);
Run Code Online (Sandbox Code Playgroud)
但是当我执行它时,只显示少量的环境光,就像方向上的光束一样.我究竟做错了什么?
OpenGL灯不会绘制"光束",它们只影响几何体的照明方式.
可见的"光束"(就像你在浓雾如雾或轻云中有强烈的定向光时所看到的)通常被称为"光轴".这是你想看到的那种效果吗?
http://developer.amd.com/media/gpu_assets/Mitchell_LightShafts.pdf
还要记住,旧的OpenGL 1照明模型是按顶点的.如果您将光线指向平坦的表面,那么要么......