使用三角形缓存提高 TrueType 字体矢量化性能

对于包含大量文本的图纸,渲染 TrueType 字体会显著影响整个图纸的渲染性能。

下图展示了一张包含大约 1,800 个使用 TrueType 字体的文本实体的图纸。
 

triangle cache example

 

上图显示了不使用三角形缓存的渲染结果。下图展示了对同一图形启用三角形缓存后的渲染结果。

 

result

 

如果在绘图中多次使用相同的 TrueType 字符,这些字符的细分(tessellation)可能会花费很长时间,具体取决于字符的复杂性。最初,字符以壳图元(轮廓和孔洞)的形式存储在字体缓存中。为了优化目的,壳图元可以存储三角形。因此,最终的字符矢量化无需执行细分。

OdGiContext 类的 virtual bool useTtfTriangleCache() const; 方法控制此缓存的使用。对于 Drawings SDK,为了防止 useTtfTriangleCache() 方法过载,添加了 setUseTtfTriangleCache() 方法来控制 OdGiContextForDbDatabase 类中的相应标志。因此,调用 setUseTtfTriangleCache() 足以控制此缓存的使用。

OdaMfcApp 示例应用程序包含使用此功能的示例。下图演示了如何启用或禁用三角形缓存。

 

The OdaMfcApp sample application contains an example

 

此功能从 ODA SDK 21.0 版本开始提供。

今天就开始行动

免费试用 ODA 软件 60 天。
无风险,无需信用卡。

免费试用