2012-02-28 136 views
0

說我有兩個重疊的四邊形,形成一個X.OpenGL四邊形重疊

是否有可能禁用此發生?爲了讓GPU去除(其中一個)這些重疊的四邊形?

案例是關於廣告牌,其中閃耀通過靜態牆壁。在理想情況下,我不會在與牆壁重疊時拆除廣告牌,也不會花費太多的CPU利用率(我有大約10,000個廣告牌和牆壁)。

目前我的廣告牌是通過計算物體和相機之間的角度來實現的。

回答

3

目前我的廣告牌是通過計算物體和相機之間的角度來實現的。

完全錯誤的方法。通常的OpenGL透視投影是一個平行的平面投影。所以這意味着您通常希望您的廣告牌與您的近/遠裁剪平面共面。

這很容易做到,將世界到景觀轉換矩陣的左上角3×3部分的反轉,並將這個X的任意Y列用作廣告牌四邊形的基向量。

碰巧,旋轉矩陣反轉是轉置。因此,只需拍攝相機變換矩陣的第一和第二行向量(每個只有前3個元素),並將它們用作廣告牌的基礎。不要在這裏混淆三角法或角度,那麼你就會吠叫錯誤的樹。

重疊通常由深度測試照顧。對於半透明幾何體,禁用深度寫入並將幾何圖形預先分類爲遠至近。

+0

我需要真正的圓柱廣告牌爲我的情況(3D精靈),因爲我認爲你的情況並不意味着。 http://www.lighthouse3d.com/opengl/billboarding/index.php3?billCyl – RobotRock 2012-03-02 14:00:56

+0

但是,如果你知道如何讓3d精靈很好地與裁剪平面共面工作,我很樂意聽到它。 – RobotRock 2012-03-02 14:03:13

+0

@KajToet:你可以發表你的情況截圖嗎? – datenwolf 2012-03-02 18:50:05