我正在使用LibGDX繪製一個簡單的繪畫應用程序,並且無法使用我正在使用的安裝程序正確「繪製」。我嘗試這樣做的方法是使用精靈進行繪製,並在合適時使用LibGDX的FBO命令將這些單個精靈添加到背景紋理中。LibGDX - 使用FBO進行紋理貼圖
我遇到的問題是與混合有關的問題,因爲當將精靈添加到我正在構建的紋理中時,精靈的任何透明像素都將被繪製到之前的像素之上大幅度增加,顯然看起來不太好。以下是結果的外觀,使用帶有綠色>紅色漸變的圓圈作爲「畫筆」。最上面一行是現在背景紋理的一部分,而最下面一行仍然是純粹的精靈繪製形式。
http://i238.photobucket.com/albums/ff307/Muriako/hmm.png
基本上,每個精靈的透明區域增亮低於他們什麼,我需要讓他們完全透明的。我混淆了許多不同的混合模式組合,找不到更好的混合模式組合。例如GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA沒有這個問題,但是每個精靈的透明像素似乎在alpha中被降低,甚至從下面的圖層中取出一些顏色,這看起來更加惱人。
我很樂意根據要求發佈任何代碼片段,但是自從我開始嘗試解決這些問題後,我的代碼變得有點混亂,所以我寧願只根據需要提供必要的位。
這些精靈按照它們放置的順序被繪製,所以它們總是在它之前添加的任何東西之上。我在原來的帖子中犯了一個小錯誤,我現在已經修正了這個錯誤,但是我使用了「GL_ONE,GL_ONE_MINUS_SRC_ALPHA」來獲得屏幕截圖中顯示的效果。使用你建議的相同混合模式,我可以在原始文章中看到我提到的效果,儘管之前它不正確。對不起,可能造成的任何混淆! – Cyanide 2012-07-31 21:57:38