我得到了大部分的照明工作,我想要的方式,但我似乎完全缺少任何環境照明。也就是說,事物的遠離太陽的一面是完全黑色的(我希望有50%的環境),而朝向太陽的一面看起來像我所期望的那樣。爲什麼我的開放式環境照明不起作用?
這是我的燈光設置代碼(由原來的編輯,見下面的註釋):
- (void) setupLighting
{
const float amb = 2.0;
const float LightAmbient[][4] = { { amb, amb, amb, 1.0f },
{ amb, amb, amb, 1.0f }
};
const float LightDiffuse[] [4] = { { 1.0f, 1.0f, 1.0f, 1.0f },
{ 1.0f, 1.0f, 1.0f, 1.0f }
};
const float LightPosition[][4] = { { 1.0f, 4.0f, 2.0f, 0.0f },
{ 0.0f, 10.0f, 0.0f, 1.0f }
};
glLightfv(GL_LIGHT0, GL_AMBIENT, LightAmbient[0]);
glLightfv(GL_LIGHT0, GL_DIFFUSE, LightDiffuse[0]);
glLightfv(GL_LIGHT0, GL_POSITION, LightPosition[0]);
glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient[1]);
// etc., snip -- no LIGHT1 for this round
glColorMaterial (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
glEnable(GL_COLOR);
//glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHT0);
//glEnable(GL_LIGHT1);
glEnable(GL_LIGHTING);
}
(注:光線1註釋掉現在 - 我只是試圖讓LIGHT0做我想做的。 )
不知道它是否重要,但我正在使用glDrawArrays()繪製單位對齊的紋理映射單位立方體(一個MineCraft)。我所有的法線似乎都是正確的。如果我離開照明關閉,所有東西都可以正確繪製(只是平坦的。)
任何提示?
謝謝!
編輯(新增截圖)
編輯每評論,我撞到的環境值高達2.0,現在它看起來像什麼會期望爲約50%的環境我。這看起來很糟糕 - 我認爲照明值被固定在[0,1] ...?關於環境光的基本概念是不是在追求什麼?
您是否嘗試增加環境光並查看它是否會影響結果?如果是這樣 - 光線正在工作 – Andrew 2011-06-04 17:59:03
也許我沒有得到它,但它們並非完全黑色。他們是黑暗的,但肯定不是黑人。 – Bart 2011-06-04 18:14:27