OpenglES Blend 笔记

这篇笔记探讨了OpenGL ES中的Blend特性,包括默认关闭时的混色策略、 BlendFunc在启用混合前的设置、未指定 BlendFunc 的混合效果,以及GLSL中透明度处理的注意事项。测试结果显示,当Blend关闭,颜色会直接写入Buffer,不受Alpha影响; BlendFunc可以在启用混合前设置且生效;未设定 BlendFunc 时默认为 (GL_ONE, GL_ZERO);未初始化的GLSL变量可能含有任意值,可能导致意外的透明效果。" 133409918,19687619,使用jQuery动态添加表格行,"['jQuery', '前端框架', 'HTML', 'JavaScript']
摘要由CSDN通过智能技术生成

OpenglES 关于 Blend 特性的一些总结:

  1. Blend特性默认是关闭的, 默认开启的特性只有抖动
  2. Blend关闭时,如何进行混色(某种意义上,混色是渲染的一个必经步骤(从OpenglES的流程图上看的话),这个问题也可以表述为如果Blend被disable的话,默认的混色策略是什么)? Wiki上对于Blend被关闭时的混色大概是这样描述的: 在blend被关闭时,src的rgb值会被直接写到Color Buffer中,即src的alpha以及dst的rgba均不会被考虑,可以理解为glBlendFunc(GL_ONE, GL_ZERO)的效果
  3. 上述策略经过测试验证,在glDisable的情况下,即使src的alpha设置为0(完全透明),也依然会被完全不透明的画出来(即alpha的信息完全被忽略了)
  4. glBlendFunc在glEnable(GL_BLEND)前调用可以生效么? 经过测试是可以的。从Opengl状态机模型去理解,BlendFunc和BlendEnable是两个独立的状态,尽管两者之间有依赖关系,但是不代表BlendEnable状态的变化应该影响BlendFunc状态的变化(注意,这里的意思是状态值,而非功能层面,显然在功能发挥上,BlendEnable是会影响BlendFunc)。不过这种用法应该视不标准的,不推荐,你完全可以先glEnable(GL_BLEND)再glBlendFunc,除非有什么特别的原因。
  5. 如果没有进行过glBlendFunc,而仅仅glEnable(GL_BLEND),那么会是什么混合效果? 从测试看是 (GL_ONE, GL_ZERO)。某种意
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值