我正在處理GLES 1.1中的項目。它必須是GLES 1.1。乘以其alpha的每個像素Open GLES 1.1(預乘)然後反轉
但它必須做一些預乘,即得到每一個像素,並從rgba = r * a,b * a,g * a,a改變它。然後再反轉它。
如果我有着色器,這將是沒有問題,但當然是gles 1.1我不知道。
通過readpixels做到這一點,然後在CPU上做並放回它的速度非常慢,所以我試圖想辦法我可以作弊。
現在的一種方式,我可以做預乘是通過採取glTexEnvi
的優勢glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC0_RGB, GL_TEXTURE0);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
glTexEnvi(GL_TEXTURE_ENV, GL_SRC1_RGB, GL_TEXTURE1);
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_ALPHA);
但隨後事後,我需要扭轉操作。對於我來說,我想不出一種扭轉它的方法。
如果一切都有相同的alpha我可以濫用glLighting功能,但可悲的是,他們沒有。
我感覺我有點註定了。
也許我可以只使用共享的背景下,做GLES 2.0的一個片段......但我覺得會與自己的開銷
如果有人對此有任何意見或想法,在所有我將不勝感激聽他們!