2012-09-26 150 views
0

我正在研究一個簡單的繪圖應用程序。我的線是使用多邊形構建的,而且目前看起來很不錯。我想添加一個透明度功能,因此我使用了glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);。但是,因爲我的多邊形有時會重疊,所以我得到了圖片中顯示的醜陋結果(多層透明)。我想得到的是左邊的數字(沒有重疊,因爲沒有透明度),並具有整體透明度。在opengl es中繪製透明度2

我想我可以通過保持聚合物的重疊來做到這一點,但這對我認爲的這項任務來說太過矯枉過正。在繪圖時應該有一種方法來控制它們,但作爲OpenGL的初學者並沒有什麼幫助。

enter image description here

回答

1

我很抱歉,但透明的工作方式不會讓你做你想要的東西,而無需手動保持多邊形重疊。透明度的工作方式是,它採用其下方曲面的顏色,並使用您指定的混合函數來計算像素的最終顏色。

在你的程序中,你正在繪製多個帶有alpha的多邊形。這意味着他們的顏色加起來,給你看到的結果。

我從來沒有寫過一個繪圖應用程序,但你也許可以看看三角形帶來畫線。它們允許您逐點擴展直線,並確保幾何圖形不會與自身重疊。