2010-08-03 64 views
5

我是否需要Alpha通道透明才能在OpenGL中工作?我可以使用glBlendFunc或其他任何方式使黑色或白色透明/不可見?如果是的話,該怎麼做?OpenGL - 透明度如何工作?

+0

你所做的任何事情都非常非常可能像alpha通道一樣複雜或更多。如果只是爲了學習,那就沒問題。那麼你爲什麼要儘量避免使用透明度的alpha通道呢? – 2010-08-03 22:48:50

+0

因爲我已經有圖像沒有alpha通道.. – Tenev 2010-08-03 23:12:23

+0

在Opengl中提供一些更多的細節透明度太泛。你想做什麼? – ferosekhanj 2010-08-04 04:14:17

回答

2

不,你不需要你的紋理中的alpha通道。在您的片段着色器中調用discard,查找與透明度規則匹配的所有片段。

2

是的,你需要alpha通道來使用透明度。您可以使用着色器模擬顏色鍵控的行爲,或者處理圖像並用alpha = 0.0的像素替換顏色鍵。

請注意,GPU始終分配RGBA紋理,即使您想要RGB紋理。 alpha通道仍然存在於硬件中。

+0

「請注意,GPU始終分配RGBA紋理,即使您想要RGB紋理,Alpha通道仍然存在於硬件中。」 - >你有這個請參考嗎?我從來沒有聽說過這個,即使它有道理。 – Calvin1602 2010-08-04 21:28:10

+0

@Calvin該評論來自NV/AMD工程師,但我想我在幻燈片中看到了一些參考文獻。 – 2010-08-04 21:47:34