繁体   English   中英

点光源不渲染

[英]Point Light not rendering

我正在尝试在场景中渲染几个点光源,但是无法使实际的光源照亮。 我唯一需要工作的灯是定向灯,最初会照亮场景:

没有点光源渲染的定向光

显示两个岩石的位置与两个点光源的位置相同。 我在漫反射,颜色和衰减值方面开玩笑,但是得到了相同的结果。 但是,当改变任何一种灯光的氛围时,颜色都会改变:

具有环境强度的定向光

我在GLSL中的计算是正确的,并且我的制服也被正确阅读。 但是我不知何故失去了分散的力量。 m_pointLight[0].DiffuseIntensity不会记录更改,但是如果使用注释的AmbientIntensity ,则场景将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;

这不是一个真正的答案,但我发现了部分问题所在:

问题是我从哪个角度看。 我的代码出了点问题。 我最初将相机位置设置为(0,100,75) 将一小段代码移到II设定我的视角和其他制服的位置后,一点光开始从点光源开始显示。 然后的问题是,当两块岩石移动到靠近地板中心的位置时,第一块岩石的点光源开始发出红色光。 第二块岩石也一样,但是被设置为蓝色。 但是随着岩石移近相机,颜色逐渐消失,直到消失为止。 然后,当它移回中心时,颜色逐渐变亮至满容量。

因此,我当时想这可能与我所处的角度有关。 因此,从摄像机位置(0、100、75)开始 ,我决定从地板的整个相对端(z轴为-75 进行观察 这就是我得到的:

在此处输入图片说明

剩下的唯一问题是,根据摄像头的位置,最靠近摄像头的点光源不会显示(除了最近的岩石的底侧)。 右下方的图像是唯一正确显示所有灯光的图像:

在此处输入图片说明

如果有人可以解释发生了什么,将不胜感激。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM