2013-08-23 172 views
0

OpenGL ES 2.0的顏色減法

glBlend(GL_ZERO, GL_ONE_MINUS_SRC_COLOR); 

我可以使像素2倍較暗由α(0.5)

乘以但是應該怎麼做,如果我要減去彩色

例如red - 0.1而不是​​

似乎着色器無法產生負面的顏色。 我不想渲染浮點紋理的渲染緩衝區。 太貴了。應用程序將運行緩慢。它不適用於所有大多數電話。

回答

1

我不能專門說,在OpenGL中沒有太多的東西,但仍然從我能提供的幫助中,我會做。

如果我理解正確,您需要一個在0到1之間的值(包括float-float)以從已經存在的顏色分量的值中減去。

爲此,請訪問此鏈接:http://www.andersriggelsen.dk/glblendfunc.php

它可以幫助你將生活在兩個圖像之間混合的檢查。

檢查混合功能:GL_FUNC_SUBTRACT

+0

你一定是贏家:)我等待着,因爲'GL_FUNC_SUBTRACT'似乎支持甚少。我不確定我是否可以在沒有測試或大多數平臺的情況下依靠它。太多報告「GL_FUNC_SUBTRACT」無法正常工作。 – Max

0

一個問題需要注意的是你不能使用GLUtils.texImage2D()在Android上加載阿爾法紋理。這是Google真正需要更好記錄的常見問題。問題在於Bitmap類將所有圖像轉換爲預倍數格式,但這不適用於OpenGL ES,除非圖像完全不透明。最好的解決方案是使用本機代碼。本文給出了更詳細的關於這一點:

http://software.intel.com/en-us/articles/porting-opengl-games-to-android-on-intel-atom-processors-part-1

+0

我不會減。但我不明白Java/Android問題與我的OpenGL ES混合問題有何關係。如果我可以添加紋理但是不能減去那麼Alpha不是問題。是的。我使用本地代碼並在iOS和Android上從PVR文件加載紋理。 – Max

+0

聽起來你正在繞過Bitmap類,所以這不是問題。 – ClayMontgomery