标签: opengl fragment-shader
我差不多完成了一个只使用顶点数组且没有着色器的应用程序。我使用glAlphaFunc绘制了很多多边形,它出乎意料地慢了。这是因为它被硬件折旧和不支持,或者如果我有一个纹理着色器和一个丢弃片段的alpha测试那么它会慢吗?
答案 0 :(得分:2)
启用alpha混合后,每个片段都会被着色并混合到帧缓冲区中,无论其深度值如何,这意味着大量的写入操作。但是,如果没有alpha混合,管道可以在片段着色之前利用Z缓冲区来丢弃在早期Z测试中失败的那些片段。这可以大大减少写入操作。