我試圖得到一個相當簡單的效果;我希望我的精靈能夠使用GL所使用的Alpha通道(即,透過圖像的一部分,但不是全部)以及整個精靈具有「不透明度」級別,這會影響整個精靈。OpenGL - 使用紋理的alpha通道和「全局」不透明度
我有後面的部分,這是一個簡單的使用GL_MODULATE和傳遞color4d(不透明度,不透明度,不透明度,不透明度)的問題。像夢一樣工作。
但問題出在第一部分;部分半透明的圖像。我想我可以扔掉一個glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);並啓用混合,但不幸的是它沒有這樣做。它所做的似乎是「美白」所述圖像的顏色,而不是使其變得半透明。任何通過它的其他精靈都表現得好像是一塊堅實的顏色塊,並直接切斷。
僅供參考,我禁用了照明,z緩衝區,顏色材質和alpha測試。以防萬一陰影模型。但除此之外,我使用默認的鄰接設置。我使用teximage2d來處理有問題的紋理,我確定格式和GL_RGBA都設置正確。
如何在混合過程中讓GL考慮紋理的Alpha通道?
你是否啓用與glEnable混合?此外,要設置精靈的不透明度,您不需要GL_MODULATE,只需使用color4d(1,1,1,alpha); – 2010-08-29 10:15:53
我同意@Bahbar。你所描述的應該工作(並且對我來說)。我想如果你發佈了一些你的代碼,它會有幫助。一個小點:我認爲你應該使用color4d(1,1,1,不透明度)。你使用的顏色意味着精靈會變得更加透明,同時會變暗。 – Rich 2011-05-12 14:44:13