我需要使我的一個紋理透明。我該怎麼做?OpenGL透明紋理(混合)
來處理我的紋理所有的代碼是:
glBindTexture(GL_TEXTURE_2D, textureName);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureImg);
我有什麼改變/添加,使質感完全透明(全-α)?
請注意,具有透明紋理與渲染透明幾何圖形不同。混合是你需要的一件事,z分類可能是另一種。 – Kos
@Kos我會解釋我在做什麼。我加載圖像並從中製作紋理。我需要將紋理的alpha通道更改爲0.在這種情況下,我可以使用類似刷子工具的方式將alpha從0.0更改爲1.0。我使用多紋理,所以一個紋理是另一個紋理,所以如果第二紋理alpha設置爲0,只有第一紋理將可見,並且當我將其更改爲1秒紋理將可見。我不認爲我需要z排序。但謝謝你的幫助。 – hockeyman
哦,如果你不想繪製透明的幾何圖形,並計劃使用alpha通道只用於混合不同的紋理,以獲得不透明物體上的最終顏色,那麼實際上你既不需要混合也不需要z-排序。只需對你的片段着色器中的所有紋理進行採樣,然後使用任何你想要的公式來獲得最終顏色(比如'T1.rgb * T1.a + T2.rgb *(1-T1.a')。 – Kos