2012-06-24 17 views
0

我正在使用glBlendFunc()嘗試逼近photoshop的差異合成特徵來合成另一幅圖像。我希望兩張圖像的相似處都是黑色,而任何不同的東西都會彈出。如何使用glBlendFunc來近似Photoshop差異合成?

據我所知glBlendfunc()是上下文中合成的任何圖像的關聯。那是對的嗎?

回答

1

我真的不能想到用glBlendFunc做到這一點。你可以使用這樣的事情:

glBlendEquation(GL_FUNC_SUBTRACT); 
glBlendFunc(GL_ONE, GL_ONE); 

但是,當第二個紋理的大小是與第一(任何減法運算結果爲負將被鉗位爲零)放大它只會工作。

我建議只使用多采樣着色器同時對兩個紋理進行採樣,並將結果輸出爲絕對差值。

gl_FragColor = abs(texture2D(tex1, uv) - texture2D(tex2,uv)); 
+0

是texture2D的DirectX函數?我正在嘗試做什麼,我可以在OSX上使用CoreImage過濾器來完成,但我試圖繞過使用CoreImage出於性能原因。 – kernelK

+1

texture2D是一個GLSL函數。你是否熟悉着色器編程? @kernelK – Tim

+0

我不幸。但現在我知道這是GLSL的一部分,我會繼續往前看。 – kernelK