部分难点在于OpenGL不提供字体引擎或专门用于渲染文本的任何功能.换句话说,OpenGL不适合渲染任务的部分,只是因为OpenGL缺少了任务所需的许多部分.
要在OpenGL下呈现文本,通常从一些字体引擎开始(例如)采用TrueType或OpenType字体,并从其信息(例如,FreeType)中呈现字形.然后你需要一个文本显示引擎来弄清楚如何渲染字符以正确地显示你的字符串.在像英语这样的简单案例中,它必须处理字距调整和领导等事情.在像一些阿拉伯语脚本这样的复杂情况下,您基本上需要在文本呈现和字体呈现之间进行反馈循环,因为字形可以采用不同的形式,具体取决于字符串中的上下文.
简而言之,编写一个通过OpenGL渲染其文本的文本编辑器意味着从头开始重新构建大量的文本渲染堆栈.
如果您对渲染质量不太关心,那么您可以通过将几种字体渲染到位图并使用它们显示文本来实现.这可以简化代码,但简单的实现意味着生成类似于MS-DOS命令行的输出.即使匹配Windows 3.0的输出质量也需要相当多的工作.这并不是说它无法完成 - 但它可能使编写文本编辑器编辑部分的难度相形见绌.
| 归档时间: |
|
| 查看次数: |
389 次 |
| 最近记录: |