2011-12-09 102 views
1

我正在開發引擎,我處理邊界的方式是玩家不應該達到的邊界是實際的多邊形作爲這些邊界。現在,我想知道如何「渲染」polgon,但它不可見。「渲染」透明的多邊形OpenGL

我的主要問題是:OpenGL是否有辦法在本地執行此操作?

如果不是這樣,如果我是按照通常在紋理中加載的方式創建紋理,但是將此紋理簡單地作爲單個像素將會怎樣。我可以將alpha通道設置爲特定的像素顏色,然後使用alpha遮罩,正如我通常使用遮罩紋理一樣。

有什麼建議嗎?

+1

」現在,我想知道如何「渲染」polgon,但它不可見。「你如何渲染不可見的東西;重點是什麼?爲什麼你的渲染會影響玩家可以或不可以去的地方?這聽起來像你的引擎非常混亂;所畫的東西不應該影響行爲(事情可能會發生)。 –

+0

@Nico Bolas我使用我的BSP樹計算碰撞。碰撞影響整個多邊形。現在我想到了,我仍然可以在不渲染多邊形的情況下計算碰撞。正確? –

+2

沒錯。您的BSP多邊形不必與實際呈現的內容相匹配。 –

回答

0

問題意見解決了您遇到的問題但是有一種方法可以實現您實際詢問的內容,因此無論如何我都會將其置於此處。

根據我的理解,這個問題是關於在深度緩衝區(也許是模具)中渲染一些東西,但沒有其他地方。要做到這一點,你只需要繪製透明的多邊形前使用glColorMask像這樣:

glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); 

事後還原色彩的面具。

2

我的主要問題是:OpenGL是否有辦法在本地執行此操作?

沒有!

OpenGL只繪製漂亮的彩色三角形,線和指向幀緩衝區,就是這樣。

  • 這不是一個場景圖。
  • 它不是一個幾何庫。
  • 這不是一個碰撞檢測框架。