2010-08-09 170 views
3

我有重疊上橡皮擦在OpenGL ES iphone

現在如果移動我的手指在最上面的圖像的部分彼此。(其中卡被放置在彼此的頂部上的方式)的兩個圖像的圖像應該變得透明(該部分的不透明度應該變爲0)。

我是OpenGL ES開發新手。

請幫助我或給我任何建議來完成此功能。

在此先感謝

回答

1

你會需要渲染到紋理使用幀緩衝對象(宗教組織)。渲染到所需的紋理,但只渲染到alpha通道,這是使用glColorMask完成的(使用它可以隱藏除alpha之外的所有顏色通道),然後將圖案繪製到alpha通道中,將alpha設置爲0.0,然後顯示紋理像平常一樣。

+0

感謝您的回覆 我在像GLPAINT(iphone示例代碼)一樣在iphone中實現繪畫應用程序。你有什麼想法如何實現撤消我的繪畫。 – bazooka 2010-08-12 11:50:04

+0

你的意思是這樣嗎? 'FrameBuffer.clearAllFrameBuffers(Gdx.app); fbo1.begin(); Gdx.gl20.glClearColor(0,0,0,0); batch.begin(); rubber.draw(batch,0); Gdx.gl20.glColorMask(false,false,false,true); coverHeart.draw(batch,1); Gdx.gl20.glColorMask(true,true,true,false); batch.end(); fbo1.end();' 我正在使用libgdx框架。我試圖在裏面畫一個空心方形的心。但是這個東西不起作用。你能指導我一下嗎? – Rafay 2012-06-16 15:04:08

0

我只是做了類似的事情,我發現了一個解決方案,GLBlending:

if (eraseMode) { 
    glBlendFunc(1.0,0.0); 
} 
else { 
    glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); 
} 

有些化妝品都需要解決這個問題,但它是一個簡單的解決方案,符合基本需求。