目前,我正在实现一个字符串渲染算法,该算法基本上从具有四边形作为基础几何体的纹理图集中采样纹理像素。我必须在两种方法之间进行选择:
将字符串的每个字形渲染为单独的四边形。每个顶点都有一个位置和字体图集纹理坐标。片段着色器对地图集进行采样,否则显得微不足道。
将整个字符串渲染为一个四边形。顶点格式必须通过一些簿记信息(2个浮点数)进行扩展,并且片段着色器还要进行几个附加的乘法运算。大约有一个片段开销。 10%。
哪个可能更有表现?
最佳答案
对于大多数图形内容而言,屏幕上的文本相对较少,因此,除非您每帧渲染数千个字符字形,否则我不必担心太多。
您需要做的一件事是在CPU端将字形渲染批处理为少量的glDraw*()
调用。我已经看到很多内容每次绘制都会绘制一个字形,这简直太贵了-别那样!
关于c++ - 顶点更少,碎片更少,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42114073/