gpt4 book ai didi

delphi - opengl 中的多语言 Unicode 渲染

转载 作者:行者123 更新时间:2023-12-03 14:53:32 25 4
gpt4 key购买 nike

我必须扩展 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(拉丁语、希腊语、西里尔语、阿拉伯语和希伯来语)的范围,以仅包含我需要的字形,但这只是满足我当前需求的解决方案,一旦出现就会变得不够需要其他编码。

从好的方面来说,我不必担心从左到右或从右到左的方向,因为我们的应用程序已经可以处理这个问题。

我认为这是一个众所周知的问题,所以我想问一下网上是否有这方面的引用资料,或者您是否可以分享一些对此的见解?

编辑澄清一下:我使用多边形字体表示。每个 Font 都预先以单位大小 (1.0) 构建,并在渲染之前使用 glScalef(...) 进行适当缩放。我确实决定不进行预光栅化,因为用户可能会放大得很近(该应用程序用于 CAD),因此光栅伪影将变得可见。

此外,由于场景很少超过数百个字符(主要是标签和测量值),因此预光栅化带来的速度增益可以忽略不计。

最佳答案

不要预先构建显示列表:- 创建一个中间 Sprite ,根据需要构建列表并缓存它们。尝试预先计算列表 - 或预先生成每种字体大小、字体和所有字符的光栅化纹理是不切实际的,特别是当您缩放到远东字符集时。

关于delphi - opengl 中的多语言 Unicode 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2445653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com