在 OpenGL 中快速呈现文本
Fast text rendering in OpenGL
我想了解如何在OpenGL中快速呈现文本的建议。
目前,我正在读取一种真实类型的字体,并动态生成一个纹理,其中包含所有 ASCII 字符,用于使用的每种字体,每种字体大小。每个纹理仅生成一次,并保留以供以后使用。
在绘制阶段,我逐行绘制所有内容。
我在内存上有一个静态数组,计算字距调整,修改线的顶点位置和纹理坐标。然后我绑定相应的纹理并渲染线条。
不幸的是,这似乎非常缓慢。有没有更好的方法?
IMO 的最佳方法是使用距离字段。将使用更少的空间,速度快,轻松支持几种漂亮的文本效果,并且非常容易实现(特别是因为您似乎已经准备好了字体 ->纹理部分)。
将呈现的文本绘制到纹理,然后将该纹理绘制到屏幕上。 在帧之间存储纹理。您需要对删除屏幕上不再可见的文本进行一些管理,但这应该更快。
图形库通常将其抽象为一个 String 类,一旦您将其绘制到屏幕上,它就会记住它绘制的纹理,并在内部字符串更改时使其失效。
这是一个非常好且快速的库,用于使用 freetype 和 OpenGL 渲染动态文本: freetype-gl
FTGL 库可能会提供您需要的一切。
>可以使用新的opengl文本渲染库freetype-direct-gl
,它使用自由字体轮廓直接渲染缩放后的字体,因此无需创建位图纹理或在CPU中进行复杂的计算。
相关文章:
- 如何在OpenGL菜单系统中实现文本的智能渲染
- opengl 飞行模拟器应用程序中的文本呈现问题
- 文本在窗口 Opengl 上不可见
- 用SDL TTF显示带有SDL2和OpenGL的文本
- 将浮点数保存在文本文件中,然后从文本文件加载回去(OpenGL和C++)
- OpenGL 将来自 ttf 的渲染器文本与背景纹理组合在一起时出错
- 如何使用 Opengl 库显示文本文件中的 3D 点
- 如何在C 中的OpenGL中通过矩形显示文本
- SDL2 OpenGL SDL2_TTF:显示文本
- 使用 Opengl 的 MFC 应用程序中的分散文本
- 使用 OpenGL 版本 3+ 呈现文本/UI
- 在3D世界中的显示器上固定位置绘制2D文本-OpenGL
- 来自x、y和z文本文件的OpenGL线框
- 如何在OpenGL中覆盖文本
- 在 OpenGL 中快速呈现文本
- OpenGl 显示动画并绘制文本
- 使用 OpenGL 将位图文本居中到矩形
- 使用 GLUT 在 3D OpenGL 世界中显示固定位置的 2D 文本
- 在OpenGL中使用文本 - GLUT
- 渲染矢量文本OpenGL