我正在读这篇文章,作者写道:
以下是通过两个简单步骤在每个平台上编写高性能应用程序的方法:
[...]
遵循最佳实践.在Android和OpenGL的情况下,这包括"批量绘制调用","不在片段着色器中使用丢弃"等内容.
我从来没有听说丢弃会对性能等产生不良影响,并且一直在使用它来避免在没有必要时使用详细的alpha时进行混合.
有人可以解释为什么以及何时使用丢弃可能被认为是一种不好的做法,以及discard + depthtest与alpha + blend相比如何?
编辑:在收到关于这个问题的答案后,我做了一些测试,通过渲染背景渐变,顶部有纹理四边形.
if(
gl_FragColor.a < 0.5 ){ discard; }" 行结尾的片段着色器给出了大约32 fps.