我試圖用glAlphaBlend和他的所有參數使用alhpa蒙版。我在stackoverflow上發現了很多類似的答案,但我沒有意識到任何事情。我有三個圖像,背景(1),蒙版(2)和文字(3)。OpenGL Alpha蒙版
我想要的是繪製背景,減去我的面具到文本最終獲得圖像(A)。
Draw background
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT);
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_BLEND);
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE);
glBegin(GL_QUADS);
glColor4ub(0,0,0,255);
glVertex2d(mxIncrust0 - bgwidth, myIncrust0);
glVertex2d(mxIncrust0, myIncrust0);
glVertex2d(mxIncrust0, myIncrust0 + textheight);
glVertex2d(mxIncrust0 - bgwidth, myIncrust0 + textheight);
glEnd();
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
glEnable(GL_BLEND);
glBlendEquation(GL_FUNC_ADD);
glBlendFuncSeparate(GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA, GL_ZERO, GL_ONE);
Draw Text
但任何工作!
實現它的真正方法是什麼?
'但是任何東西都在工作!'這到底意味着什麼?你有什麼結果? SO上沒有媒體。 – Drop 2014-09-11 13:40:46
我明白,我想說,我嘗試了堆棧中的每個答案,但任何事情都做對了! – Maypeur 2014-09-11 13:44:42
然後告訴我們你有什麼。另外請注意,沒有「畫一個面具」這樣的東西。唯一繪製的是'Draw *'調用。你不需要畫一個面具。 Mask將在輸出合併階段與您的文本紋理結合(GL俚語中的「每樣本操作」)。在向我們展示繪製代碼和生成的截圖之前,我只能建議您查看一下opengl文檔:[Rendering Pipeline Overview](http://www.opengl.org/wiki/Rendering_Pipeline_Overview) – Drop 2014-09-11 13:49:28