C++ OpenGL中的快速文本绘制

C++ OpenGL中的快速文本绘制,c++,opengl,glsl,C++,Opengl,Glsl,我想就如何在OpenGL中快速渲染文本提出建议 目前,我正在读取一个true type字体,并为使用的每种字体和每种字体大小动态生成一个包含所有ASCII字符的纹理。每个纹理只生成一次,并保留供以后使用 在绘制阶段,我一行一行地绘制所有内容 我在内存中有一个静态数组,计算紧排ect,修改线的顶点位置和纹理坐标。然后绑定相应的纹理并渲染线条 不幸的是,这似乎非常缓慢。有更好的方法吗?将渲染文本绘制到纹理,然后将该纹理绘制到屏幕上。在帧之间存储纹理。您需要对删除屏幕上不再可见的文本进行一些管理,但这

我想就如何在OpenGL中快速渲染文本提出建议

目前,我正在读取一个true type字体,并为使用的每种字体和每种字体大小动态生成一个包含所有ASCII字符的纹理。每个纹理只生成一次,并保留供以后使用

在绘制阶段,我一行一行地绘制所有内容

我在内存中有一个静态数组,计算紧排ect,修改线的顶点位置和纹理坐标。然后绑定相应的纹理并渲染线条


不幸的是,这似乎非常缓慢。有更好的方法吗?

将渲染文本绘制到纹理,然后将该纹理绘制到屏幕上。在帧之间存储纹理。您需要对删除屏幕上不再可见的文本进行一些管理,但这应该要快很多


图形库通常将其抽象为一个字符串类,一旦您将其绘制到屏幕上,该类将记住它绘制的纹理,并在内部字符串发生变化时使其无效。

IMO最好的方法是使用。将使用更少的空间,速度快,容易支持几个漂亮的文本效果,并且非常容易实现(特别是因为您似乎已经准备好了字体->纹理部分).

该库可能会提供您所需的一切。

这是一个非常好且快速的库,用于使用freetype和OpenGL渲染动态文本:

您可以使用一个新的OpenGL文本渲染库,它使用freetype字体轮廓直接渲染缩放字体,因此,不需要在CPU中创建位图纹理或进行复杂的计算。

“不幸的是,这似乎非常慢。”定义“非常慢”。这是呈现文本的标准方式。您是通过即时模式还是其他方式绘制四边形?我们需要查看您的代码,以了解您是否只是实现了错误的代码,或者是否与您的算法有关。此外,已经存在用于和的易于使用的工具。