簡體   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