2012-01-08 71 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