更少的顶点与更少的碎片
Fewer vertices vs. fewer fragmens
目前我正在实现一种字符串渲染算法,该算法基本上是从纹理图集中采样纹素,其中四边形作为底层几何体。我必须在两种方法之间进行选择:
-
将字符串的每个字形呈现为单独的四边形。每个顶点都有一个位置和字体图集纹理坐标。片段着色器对图集进行采样,否则是微不足道的。
-
将整个字符串呈现为一个四边形。顶点格式必须通过一些簿记信息(2 个浮点数(进行扩展,并且片段着色器需要几个额外的乘法。片段开销约为 10%。
哪个可能性能更高?
对于大多数图形内容,屏幕上的文本相对较少,因此除非您每帧渲染数千个字符的字形,否则我不会太担心。
您需要做的一件事是在 CPU 端将字形渲染批处理为少量glDraw*()
调用;我已经看到很多内容每次绘制渲染一个字形,这非常昂贵 - 不要那样做!
相关文章:
- 如何循环打印顶点结构
- OpenGL在启用深度测试时不会丢弃我的碎片
- D3D11-将混合权重和索引传递到顶点着色器
- 从返回的顶点缓冲区查询顶点结构
- Vulkan 中的动态顶点缓冲区格式设置
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- 如何将一半传递给顶点着色器?
- 在 DirectX 11 中从 GPU 读回顶点缓冲区(并获取顶点)
- QT QOpenGLWidget:如何在不使用数据块复制的情况下修改VBO中的单个顶点值?
- 使用 OpenGL 4.5 更改所选顶点的颜色
- Direct3D 11 - HLSL - 获取顶点索引 ID
- 创建异构顶点数据数组的可移植方法
- 使用 glvertex4i 传递网格面索引时的顶点着色器错误
- 无法从 cso 文件创建顶点着色器(从 fx 文件创建)
- OpenGL 相机移动程序顶点着色器问题
- 使用 std::list 存储顶点并使用 SFML 绘制它们
- 为什么顶点数组对象会导致错误?
- 如果有一个几何设计着色器,则如何将信息从顶点着色器传递到碎片着色器
- 更少的顶点与更少的碎片