Opengl 使用VBO渲染位图字体最有效的方法是什么?

Opengl 使用VBO渲染位图字体最有效的方法是什么?,opengl,vbo,bitmap-fonts,Opengl,Vbo,Bitmap Fonts,使用顶点缓冲区对象渲染位图字体的最有效方法是什么 以下是我目前不知道的关于效率的方法: 创建大量VBO并存储带纹理四边形的数据一个纹理用于所有字符,一个四边形用于文本中的字母。 还为所有需要渲染但具有较大四边形和纹理的文本创建VBO。如果可以在不降低质量的情况下使文本适合较小的纹理,则纹理大小将等于或小于GPU限制。 使用所有字符的纹理四元数据创建一个不太大的VBO。并通过每个字母的多个绘制调用进行渲染。 我想你应该把动态和静态渲染的答案分开。我想补充一下,你应该考虑在纹理中缓存渲染的字符串。可

使用顶点缓冲区对象渲染位图字体的最有效方法是什么

以下是我目前不知道的关于效率的方法:

创建大量VBO并存储带纹理四边形的数据一个纹理用于所有字符,一个四边形用于文本中的字母。 还为所有需要渲染但具有较大四边形和纹理的文本创建VBO。如果可以在不降低质量的情况下使文本适合较小的纹理,则纹理大小将等于或小于GPU限制。 使用所有字符的纹理四元数据创建一个不太大的VBO。并通过每个字母的多个绘制调用进行渲染。

我想你应该把动态和静态渲染的答案分开。

我想补充一下,你应该考虑在纹理中缓存渲染的字符串。可以将绘制包含512个字符的字符串所需的顶点数从2048减少到4。在第一次渲染字符串或更改其格式/缩放时,您必须求助于最初建议的三种方法之一,但在完成后,您可以使用缓存的纹理。它将极大地减少冗余顶点计算。看看freetype gl库。它使用完全可编程的流水线作为单个VBO进行文本渲染。