OpenGL ES 2.0片段着色器透明度处理实践

段着色器里的透明度判断,OpenGL ES 2.0 里没法靠固定管线搞定,得你自己手动。discard关键字挺好用的,能帮你在透明度不达标的时候直接扔掉像素,不让它渲染。

RenderMonkey 里有个RM_AlphaTest例子挺直观的,配合书上第 10 章和图 10-5 看,一目了然。效果就像你设了个阈值,透明度低的直接跳过,省事。

想深入研究的话,片段着色器操作这篇写得还行,讲了管线里的流程,蛮实用的。再看看混合透明度那篇,也有些细节技巧。

还有哦,discard虽然方便,但也要注意它影响性能,尤其是你在做多层混合的时候。如果你用在移动设备上,还是得测试下帧率。

如果你在做 OpenGL ES 项目,是那种需要控制透明区域不渲染的,真的可以试试这个方式,简单粗暴,效果还不错。

pdf 文件大小:2.32MB