2011-09-06 48 views
0

我需要使用alpha蒙版在openGL中合併兩個圖像。opengl在重新縮放之後應用alpha蒙版

但我需要阿爾法面具應用後的圖像已重新調整到顯示器的大小 - 即。阿爾法面具在屏幕上不是圖像座標。

我認爲有一種方法在opengl 2.0中做目標alpha緩衝區,但我不記得它的名字。

回答

1

你還沒有說過這個alpha蒙版究竟是從哪裏來的,或者你是如何生成它的。它可以是紋理中的靜態alpha掩碼,也可以是您在framebuffer中構建的東西。

如果它來自紋理,可以使用着色器或甚至紋理環境多紋理輕鬆完成此操作。將圖像「重新調整大小」設置爲一個紋理,並將alpha蒙版設置爲另一個紋理(如GL_INTENSITY紋理,如果使用的是核心GL 3.1+,則爲GL_RED)。從主紋理採取RGB,但輸出alpha應該來自您的面具紋理。然後alpha混合/測試/等正常。

如果alpha是你已經構建到framebuffer中的東西,那麼這只是使用correct blend parameters的問題。有GL_SRC_*混合參數,但也有GL_DST_*混合參數。你正在尋找的東西基於GL_DST_ALPHAGL_ONE_MINUS_DST_ALPHA

+0

該alpha是一個簡單的奇數/偶數行模式,因此它可能是一個紋理(或着色器,如果我真的必須 - 在這種情況下,只會使用CUDA)。我需要的技巧是在調整圖像紋理後調整混合 –