2017-04-02 132 views
1

我正在製作遊戲引擎,最近纔將其更新爲核心配置文件OpenGL。這樣做後,我發現不贊成用於字體紋理的GL_LUMINANCE_ALPHA。用GL_RG代替它後,我的區域應該是紅色的,而區域應該是白色的綠色!替換爲核心配置文件中的GL_LUMINANCE_ALPHA?

GL_RG result...

當然這不是我想要的!有沒有什麼辦法可以將面具調整到我想要的樣子?

回答

2

OK,我找到了答案由剛與調酒屏蔽值打打鬧鬧,這裏是我如何恢復它恢復正常:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_RED); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_RED); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED); 
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_GREEN); 

這使得再看看完全正常!

+2

在着色器中這樣做會更容易嗎? – BDL

+1

@BDL:當然,如果你想爲單色紋理編寫一個特殊用途着色器代碼路徑。在紋理對象上設置swizzle蒙版允許着色器重用,並保持特定格式的東西本地化。 – datenwolf