2012-01-08 72 views
1

这是我如何宣布我的光值和他们的位置OpenGL - 光的值和位置

这是正确的还是有另一种更高尚的方式?

// Lighting values 
GLfloat greenLight[] = { 0.0f, 0.6f, 0.0f, 1.0f }; 
GLfloat redLight[] = { 0.6f, 0.0f, 0.0f, 1.0f }; 
GLfloat blueLight[] = { 0.0f, 0.6f, 0.0f, 1.0f }; 
GLfloat whiteLight[] = { 0.2f, 0.2f, 0.2f, 1.0f }; 
GLfloat sourceLight[] = { 0.9f, 0.9f, 0.9f, 1.0f }; 


GLfloat lightPos[] = { 0.0f, 0.0f, 0.0f, 1.0f }; 
GLfloat lightPos1[] = { 5.0f, -5.0f, 0.0f, 0.0f }; 
GLfloat lightPos2[] = { -5.0f, 5.0f, 0.0f, 0.0f }; 
GLfloat lightPos3[] = { 5.0f, 5.0f, 0.0f, 0.0f }; 

回答

0

确实没有任何其他方式使用固定功能的OpenGL来完成它。设置参数只是照明成本的一小部分。如果你想要更高效的东西,我建议你学习不被弃用的OpenGL,并在着色器中实现光照,这可能会比固定功能照明更快。

+0

感谢您的信息Rob我认为我会研究,实际上总是想知道如何在着色器中实现照明:)总是很好地了解其他信息 – Led 2012-01-08 09:31:13

+0

以下是GLSL入门指南,它包含phong lighting shader: http://web.cs.wpi.edu/~emmanuel/courses/cs543/slides/cliff_iintro_glsl_final.pdf – 2012-01-08 09:41:03