我有一些幾何圖形,它具有一個三角形的單個圖元集。圖元中的一些三角形重疊,所以當我使用alpha值向幾何圖形添加材質時,我會看到重疊(如預期的那樣)。我想在不改變幾何圖形的情況下襬脫這種效果 - 我嘗試過使用不同的混合模式(glBlendFunc()),但是我無法使它工作。我得到了一些有趣的結果,但沒有任何東西能夠消除三角條基元內的不透明效應,並保留整個對象的不透明度。我使用的是OpenSceneGraph,但它提供了一種方法來爲所討論的幾何體調用glBlendFunc()。OpenGL混合函數消除原始重疊但保持整體不透明度
所以從圖像中,假設粉道路,紫色道路和黃色道路構成三個獨立的對象,每個創建的使用單個三帶(有多個條帶,但爲了討論,假裝有這裏只有三種不同的彩色三色條)。我基本上不想看到相同顏色的自我交集
此外,我的問題幾乎與這一個:OpenGL, primitives with opacity without visible overlap相同,但我應該注意,當我嘗試在接受的答案混合模式爲問題,這些條紋根本不在場景中渲染。
我提到我在我原來的帖子中試過這個,但結果是這些對象根本沒有渲染。 – Prismatic 2012-04-17 00:48:07
@Pris:你是否實施了所有的步驟?包括將alpha寫入framebuffer * first *? – 2012-04-17 00:58:30
感謝您的回覆。經過大量搜索後,我無法弄清楚如何使用OpenSceneGraph完成此操作。也許我的問題的標題是誤導性的 - 我試圖用OSG來實現這個目標......我以爲這只是一個我應該傳遞給glBlendFunc()的參數的問題。 – Prismatic 2012-04-17 01:40:41