我一直想知道如何用OpenGL實現這一點:2D陰影映射
我有地圖,有平坦的地面和牆壁。這裏的每一件事都是2D,沒有3D幾何,只有2D組成地圖。
使用投影陰影的多邊形的頂點來定義可視區域。
陰影定義了視野,但由於具有牆壁的細胞阻塞了視野,因此它們也變暗。我可以在陰影上繪製牆壁,但這樣做會在視野外顯示均勻的牆壁。
我被建議用陰影映射來解決這個問題。我應該將2D場景渲染成4種不同的1D紋理,以保持與第一個碰撞表面的距離。 問題是我不知道如何將2d場景的投影渲染到1D紋理中。如果我使用,例如: gluLookAt(x,y,0.0,0.0,x,y + 1,0.0,0.0,1.0);
要呈現頂視圖,結果仍然是2D。此外,由於所有頂點都在同一平面上,因此所有表面都將與攝像機垂直。
對於如何進行這些二維到一維投影,您有任何提示或想法嗎?我一直在Google上搜索類似這樣的場景,但所有這些都在3D環境中。
究竟在哪裏與影子腳輪相互作用的「光源」? –
該字符是光源。陰影的目的是爲了模擬角色可以從他站在哪裏看到的東西。 – Leo
難道你不能放棄從2D到1D的座標嗎?這將相當於一個正交投影,對嗎? – fluffels