这个问题很难明确回答。一般来说,这是微不足道的,但又不是。
绘制一个“上面有东西的平面矩形”是几个 API 调用,尽可能简单。在 OpenGL中以高效、高质量且无需大量预处理的方式绘制文本是完全不同的故事。
我要做的是使用iOS下的“正常系统支持”方式呈现文本(就像你在任何窗口中绘制一样,我不知道这个具体细节),但绘制到位图中而不是在屏幕上. 这应该得到支持,几乎每个操作系统都支持它至少 10-15 年。然后将此位图转换为纹理,绑定它,并使用 OpenGL 绘制你的普通平面四边形(设置一个具有 4 个顶点的顶点缓冲区,每个顶点一个纹理坐标,并绘制两个三角形 - 尽可能简单)。
这样做的巨大优势是您可以使用已安装的系统字体(或任何可用的字体),您不需要生成位图字体,也不需要考虑非常丑陋的事情,例如提示和适当的间距,并且混合不同的文本样式等更容易。当然,OpenGL 也内置了对文本的支持,但它也不是非常有效或很好。如果文本不是每毫秒都更改一次,那么最好使用操作系统提供的标准渲染器来渲染它(是的,这可能不会是硬件加速的,但是那又怎样......因为用户必须阅读文本,它可能不会每毫秒都改变)。
现在,如果你的“一张纸”也应该弯曲和扭曲,或者做一个页面剥离效果而不是一个扁平的矩形,它会变得更加复杂。在这种情况下,您需要对其进行镶嵌,这也可能比听起来更难。并非所有镶嵌看起来对于所有弯曲/扭曲都是最佳的,或者它们确实但没有最佳(读取为最小)顶点数。
在 GPU Gems 或 GPU Pro 书籍之一中有一篇关于“页面剥离”和此类镶嵌的文章,让我搜索...
那里:Andreas Bizzotto:“基于着色器的电子书阅读器 - 页面剥离效果”,GPU Pro2 pp. 278-299
也许你可以得到一份副本,或者有幸在 Google 图书之类的东西上找到它。