我想渲染场景中的一对点灯,但无法获得实际灯光照亮。我开始工作的唯一的光线是平行光最初点亮的情景:Point Light not rendering
其中显示了两块石头是因为这两个点光源相同的位置。我玩弄了漫反射,颜色和衰减值,但得到了相同的结果。但是,无论是改变光的氛围时,颜色改变:
我的内GLSL的计算是正确的,我的制服是正确读取为好。但不知何故,我失去了我的弥漫强度。 m_pointLight[0].DiffuseIntensity
未注册更改,但如果使用注释AmbientIntensity
,则场景呈红色。
m_scale += 0.0057f;
// changing the value makes scene red
m_pointLight[0].AmbientIntensity = 0.5f;
// changing the value does nothing
m_pointLight[0].DiffuseIntensity = 1.5f;
// light color is red
m_pointLight[0].Color = glm::vec3(1.0f, 0.0f, 0.0f);
// position of light (same as rock)
m_pointLight[0].Position = glm::vec3(3.0f, 1.0f, FieldDepth * (cosf(m_scale) + 1.0f)/2.0f);
// Light decay
m_pointLight[0].Attenuation.Linear = 0.01f;
也许你没有正确设置光线的位置 –
@ratchetfreak我硬编码的灯光位置,并添加了一个实际的相机,所以我可以看到实时发生的事情。当我像在图片中一样移动时,我得到了相同的结果。红色和蓝色留在相机视图的左侧和右侧,而不是停留在原地。 – SpicyWeenie
然后你设置光*相机空间*而不是*对象空间* –