更少的顶点与更少的碎片

Fewer vertices vs. fewer fragmens

本文关键字:碎片 顶点      更新时间:2023-10-16

目前我正在实现一种字符串渲染算法,该算法基本上是从纹理图集中采样纹素,其中四边形作为底层几何体。我必须在两种方法之间进行选择:

  • 将字符串的每个字形呈现为单独的四边形。每个顶点都有一个位置和字体图集纹理坐标。片段着色器对图集进行采样,否则是微不足道的。

  • 将整个字符串呈现为一个四边形。顶点格式必须通过一些簿记信息(2 个浮点数(进行扩展,并且片段着色器需要几个额外的乘法。片段开销约为 10%。

哪个可能性能更高?

对于大多数图形内容,屏幕上的文本相对较少,因此除非您每帧渲染数千个字符的字形,否则我不会太担心。

您需要做的一件事是在 CPU 端将字形渲染批处理为少量glDraw*()调用;我已经看到很多内容每次绘制渲染一个字形,这非常昂贵 - 不要那样做!