OpenGL ES 2.0 混合

混合技术

混合技术就是将俩个片元调和,主要用于将通过各项测试准备进入帧缓冲的片元(源片元)与原有片元按照设定的比例加权计算出最终片元的颜色值。

OpenGL ES 2.0中是通过设置混合因子来指定两个片元的加权比例的。

经过加权计算后,最终片元的某些通道值可能会超过1.0,此时渲染管线会自动执行截取操作,将大于1.0的通道值设置为1.0

OpenGL ES系统预置因子值

常量名 RGB混合因子 A混合因子
GL_ZERO [0,0,0] 0
GL_ONE [1,1,1] 1
GL_SRC_COLOR [Rs,Gs,Bs] As
GL_ONE_MINUS_SRC_COLOR [1-Rs,1-Gs,1-Bs] 1-As
GL_DST_COLOR [Rd,Gd,Bd] Ad
GL_ONE_MINUS_DST_COLOR [1-Rd,1-Gd,1-Bd] 1-Ad
GL_SRC_ALPHA [As,As,As] As
GL_SRC_MINUS_SRC_ALPHA [1-As,1-As,1-As] 1-As
GL_DST_ALPHA [Ad,Ad,Ad] Ad
GL_SRC_MINUS_DST_ALPHA [1-Ad,1-Ad,1-Ad] 1-Ad
GL_SRC_ALPHA_STAURATE [f,f,f] f=min(As,1-Ad) 1

常量中有SRC的代表各通道值来自源片元,有DST的代表各通道值来自目标片元,另外GL_SRC_STAURATE只能用作源因子。

纹理灰度值:从RGB通道中采样出的颜色值求平均。

            //开启混合
            GLES20.glEnable(GLES20.GL_BLEND);  
            //设置混合因子
            GLES20.glBlendFunc(GLES20.GL_SRC_COLOR, GLES20.GL_ONE_MINUS_SRC_COLOR);

 

posted @ 2016-03-19 10:36  Msnow  阅读(462)  评论(0编辑  收藏  举报