2014-02-21 38 views
1

我正在嘗試自上而下的透視遊戲,但我不確定如何顯示角色(遊戲邦注:模型)可以看到的東西,但玩家不能。例如,想象一下位於角色前方的建築物,以及屏幕上垂直位於其下方的建築物。角色可以看到面對他的建築物的牆壁以及其周圍的地板,但玩家不能像建築物的屋頂和其他側面擋住它。我想知道渲染角色可以看到和玩家不能看到的最佳方式。在這種情況下,玩家應該能夠看到被建築物屋頂阻擋的地板。爲了說明我的意思是,我創造了這個圖紙:如何檢查OpenGL中其他紋理元素的深度?

If you can't see you aren't missing much

課程的特點應該能夠看到大樓後面的地面爲好,但我認爲,這將使其更難以瞭解問題。我想要做的是創建一種立方體貼圖,除了在4個方向上,從角色的角度來看,忽略了上下。然後從上到下渲染場景,但不要進行深度測試。然後在片段着色器中檢查播放器片段的深度是否與立方體貼圖的深度相同(與光照相同的過程),如果是,則繪製片段,如果不是,則只繪製一半的alpha值。有沒有一個更便宜的流程來做到這一點?我也不確定我的方法是否可行,因爲我沒有測試過它,但是我擔心我會碰到某個位置只有一個碎片的問題,所以它會是唯一渲染的,但是隻有半透明。

回答

0

我想建議的方法的結果會顯得很奇怪,例如考慮未來2情況:

  1. 你想畫是從同一棟樓樓,你的性格所在取片段

    ,但角色並沒有看到它(例如,從角色的角度來看,它是一件被傢俱阻擋的牆壁片段)。該片段應該如何呈現?

  2. 考慮從相機位置投射到建築物方向的光線。該射線將以0,1的角度與人物視角的表面相交,或者也可能是2點。由於視圖體積是凹面的,因此也可能發生2個以上的交點。在這種情況下,可能會有2個或更多不透明片段使用相同的屏幕座標(對應於光線投射)生成。由於深度測試已關閉,因此此處的結果未定義。

我建議更多的經典的方法,如:看這樓你的角色可以看到,使其和下面不透明的所有樓層,然後使建築物的頂部在它的頂部透明的,如果你願意。

+0

但是如何檢查角色能否看到地板?什麼構成看?說這個角色正在一間開着門的建築物前走。他們可以在建築物內看到一點點,但並不多。整個內部建築會暴露嗎?如果不是,那麼多少? – user975989

相關問題