OpenGL ES颜色混合
来源:互联网 发布:怕出头知乎 编辑:程序博客网 时间:2024/06/06 00:58
1、新建 MyBlendRenderer.java
//颜色 混合//启用混合时,新颜色与颜色缓冲区的原有颜色进行组合,通过对这些颜色进行不同的组合,可以产生许多不同的特殊效果//已经存在颜色缓冲区中的颜色称为 目标颜色//作为当前渲染命令的结果进入缓冲区的颜色值称为 源颜色。它可能与目标颜色进行交互,也可能不交互/** S:源颜色混合因子* D:目标颜色的混合因子* Cs:源颜色* Cd:目标颜色* Cf:结果颜色 * Cf =(Cs *S) +(Cd *d)*/public class MyBlendRenderer extends MyAbstractRenderer{ public void onSurfaceCreated(GL10 gl, EGLConfig arg1) { //设置清屏色(背景) gl.glClearColor(0, 0, 0, 1); //启用顶点缓冲区 gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); //深度测试 gl.glEnable(GL10.GL_DEPTH_TEST); //单调模式 没有过度 gl.glShadeModel(GL10.GL_FLAT); }protected void drawBefore(GL10 gl) {//清除 颜色 深度 gl.glClear(GL10.GL_COLOR_BUFFER_BIT |GL10.GL_DEPTH_BUFFER_BIT);}protected void draw(GL10 gl) {float br =0.4f;float fr =0.2f;float z =0.4f;float []back ={0 ,br ,-z,0 ,0 ,-z,br ,br ,-z,br ,0 ,-z,};float []front ={-fr ,fr ,z,-fr ,-fr ,z,fr ,fr ,z,fr ,-fr ,z};//颜色混合gl.glEnable(GL10.GL_BLEND);//设置混合因子//int sfactor, //int dfactorgl.glBlendFunc(GL10.GL_SRC_ALPHA,GL10.GL_ONE_MINUS_SRC_ALPHA );gl.glColor4f(0, 0, 1, 1f);gl.glVertexPointer(3, GL10.GL_FLOAT, 0, BufferUtil.arr2ByteBuffer(back));gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, back.length/3);gl.glColor4f(0, 1, 0, 0.5f);Draw.drawCube(gl, 0.2f);gl.glColor4f(1, 0, 0, 0.5f);gl.glVertexPointer(3, GL10.GL_FLOAT, 0, BufferUtil.arr2ByteBuffer(front));gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, front.length/3);}}2、运行效果
0 0
- OpenGL ES颜色混合
- 颜色混合opengl
- 颜色混合opengl
- 颜色混合opengl
- 颜色混合opengl
- 颜色混合opengl
- OpenGL颜色混合
- 颜色混合opengl
- OpenGL: 颜色混合
- 颜色混合opengl
- 颜色混合OpenGL
- opengl颜色混合
- 颜色混合opengl
- OPENGL颜色混合
- opengl颜色混合
- 转 颜色混合opengl
- 颜色混合opengl (转)
- 颜色混合opengl--glBlendFunc函数
- Java日志框架——查看“完整的执行的SQL语句”
- Google编码规范
- hdu 1868 Consecutive sum Java 水题系列
- ReentrantLock解析
- 瓦片地图-Cocos2dx
- OpenGL ES颜色混合
- ScriptManager和UpdatePanel控件的使用
- 【细说PHP学习】第十三章 PHP的错误和异常处理
- HPU 1700:做不出来踢协会!!!
- 从Struts2源码学习Struts2的工作原理
- 1034. 有理数四则运算(20)
- liferay6.2系统管理员篇-liferay的内容管理系统WCM来进行站点快速建立
- hibernate mysql映射类型
- noip1998 进位制表 (模拟)