OpenglES Blend 笔记
来源:互联网 发布:如何在mac里打开终端 编辑:程序博客网 时间:2024/06/03 21:43
OpenglES 关于 Blend 特性的一些总结:
- Blend特性默认是关闭的, 默认开启的特性只有抖动。
- Blend关闭时,如何进行混色(某种意义上,混色是渲染的一个必经步骤(从OpenglES的流程图上看的话),这个问题也可以表述为如果Blend被disable的话,默认的混色策略是什么)? Wiki上对于Blend被关闭时的混色大概是这样描述的: 在blend被关闭时,src的rgb值会被直接写到Color Buffer中,即src的alpha以及dst的rgba均不会被考虑,可以理解为glBlendFunc(GL_ONE, GL_ZERO)的效果。
- 上述策略经过测试验证,在glDisable的情况下,即使src的alpha设置为0(完全透明),也依然会被完全不透明的画出来(即alpha的信息完全被忽略了)
- glBlendFunc在glEnable(GL_BLEND)前调用可以生效么? 经过测试是可以的。从Opengl状态机模型去理解,BlendFunc和BlendEnable是两个独立的状态,尽管两者之间有依赖关系,但是不代表BlendEnable状态的变化应该影响BlendFunc状态的变化(注意,这里的意思是状态值,而非功能层面,显然在功能发挥上,BlendEnable是会影响BlendFunc)。不过这种用法应该视不标准的,不推荐,你完全可以先glEnable(GL_BLEND)再glBlendFunc,除非有什么特别的原因。
- 如果没有进行过glBlendFunc,而仅仅glEnable(GL_BLEND),那么会是什么混合效果? 从测试看是 (GL_ONE, GL_ZERO)。某种意义上讲,可以理解为BlendFunc的初始值是(GL_ONE, GL_ZERO)。这个值的效果和Blend被disable时的效果是一致的。
- 关于透明度以及GLSL的一些注意:
- GLSL中的变量(本地/varying/uniform),在你没有初始化赋值时,其值可能视任意的(和C/C++相对一致,但是如果你来自Java世界,那么需要记住并适应这一点)
- texture2D对一张RGB纹理进行抽样,但是后者返回的是vec4(意味着会携带alpha信息),这种情况下,结果的alpha应该是0(经过测试发现),如果这个时候你使用了(GL_SRC_ALPHA, XXXX), 图像会以透明的形式被画出来。
0 0
- OpenglES Blend 笔记
- OpenGLES demo - 7. Alpha Blend
- unity blend 笔记
- Android OpenGLES 学习笔记
- OpenGLES 学习笔记
- opengles学习笔记
- BLEND
- OpenGLES入门笔记 :OpenGLES光照基础总结1
- opengles
- opengles
- opengles
- Opengles
- OpenGLES
- Opengles 显示文字 (Opengl ES笔记)
- 《OpenGLES 2.0 Programming Guide》学习笔记
- 《OpenGLES 2.0 Programming Guide》学习笔记
- 《OpenGLES 2.0 Programming Guide》学习笔记
- OpenGLES入门笔记 :OpenGLES光照基础总结2 获取法向量
- 复制高亮代码到印象笔记
- 工厂模式
- 测试——使用Windows Live Writer写日志
- 装饰者模式
- 【转】Activity的生命周期
- OpenglES Blend 笔记
- Linux图谱
- 策略模式
- c语言中函数调用的原理
- linux--set用法
- 极简主义,风格化与小团队
- STL源码剖析学习笔记之空间的配置与释放
- 数据挖掘是神马
- table 转化成grid,及其字符串排序