我有一些麻煩渲染具有8位alpha通道的紋理 - 即,它被平化爲1位,glBlendFunc()似乎沒有做任何事情。OpenGL多位Alpha紋理
這裏是直接模式的呼叫:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glBegin(GL_QUADS);
{
glTexCoord2f(0, 0);
glVertex2f(0, 0);
glTexCoord2f(1, 0);
glVertex2f(356, 0);
glTexCoord2f(1, 1);
glVertex2f(356, 356);
glTexCoord2f(0, 1);
glVertex2f(0, 356);
}
glEnd();
不用說,有各種各樣的OpenGL狀態已設定在幕後,並明確一個
有沒有我不知道的狀態會干擾混合階段?
我有blendfunc嗎?這似乎是正確的從我看過的互聯網網頁 - 我已經檢查了GDEBugger的紋理,所以圖像確實已經加載了一個8位阿爾法通道,以及嘗試圖像沒有alpha通道和一個位alpha通道。
任何幫助將不勝感激!
編輯:
在回答的答案:我使用的土壤圖像加載庫,我要把通過其源看看,看看它是如何做的事情。現在,我只是將這個圖像渲染到已經渲染的場景的頂部 - 它絕對不是深度問題 - 事實上深度緩衝區測試已關閉。
看起來正確,有什麼不看的權利是你的紋理代碼,發佈您的通話glTexImage2D。 – 2011-01-13 15:22:23
正如我所說,它通過一個庫 - 我可能會嘗試找到並示例alpha圖像加載器並嘗試它 - 應該更快地重建靜態和調試它通過 – Tomas 2011-01-13 15:41:39