我需要扩展一个OpenGL渲染系统以支持国际字符(特别是希伯来文、阿拉伯文和西里尔文)。
开发平台是Windows(XP | Vista | 7),但遗憾的是使用的是Embercardero Delphi 2010。
我目前使用wglOutLineFont(...)构建我的字体显示列表和glCallLists(length(m_Text), UNSIGNED_SHORT, PWchar(m_Text) )
来渲染我的字符串。
虽然这对于Latin-1字符来说是可行的,但提前构建完整的Unicode字符集非常耗时(在我的机器上大约需要8.5分钟),因此我正在寻找更有效的解决方案。我考虑将范围限制在u+0020 - u+077f(拉丁文、希腊文、西里尔文、阿拉伯文和希伯来文)之间,只包括我需要的字形,但这只是对当前需求的解决方案,一旦需要其他编码,就会变得不足够。
好消息是,我不必担心从左到右或从右到左的方向,因为我们的应用程序已经可以处理这个问题。
我希望这是一个众所周知的问题,所以我想问问是否有关于这个问题的参考资料在网上,或者您是否可以分享一些见解?
编辑
一个澄清:我使用的是多边形字体表示法。每个字体都是预先以单位大小(1.0)构建的,并且在渲染之前使用glScalef(...)
进行适当的缩放。我决定不进行预光栅化,因为用户可能会放大很多(这个应用程序用于CAD),因此光栅化伪影将变得可见。
此外,由于场景很少超过几百个字符(主要是标签和测量),所以从预光栅化中获得的速度增益微不足道。