iOS:OpenGL ES 2.0渲染具有glScissor性能的纹理

我用OpenGL绘制图像,并将重绘其纹理(非填充区域)的瓷砖。

在这里输入图像描述

哪种情况会更快?

  1. 设置完整纹理的矩形glViewport,绘制完整的纹理,并使用glScissor与更新区域的矩形。
  2. 使用更新区域的矩形设置glViewport,并绘制纹理图块,并计算纹理坐标。

我在Apple的文档中发现,剪切testing是在片段着色之后调​​用的。 这是否意味着,片段着色器将与全纹理的像素一起工作? 比案例2要慢多less?

解决:我已经在这里查看了OpenGL ES 2.0的管道scheme。 剪切testing在片段着色之前完成,并允许优化渲染。

根据这个stream水线图,在剪切片着色器之前应用了剪刀testing(我无法在链接的页面上find剪刀testing的提及 – 也许你将它与在片段着色器之后发生的模板testing混淆了)所以在着色器执行和纹理获取方面,选项1不应该比选项2更昂贵。 对剪刀testing不合格的碎片,可能仍然有光栅化成本。 一如既往,唯一可以肯定的就是testing。