AIS optimization tricks – short list

本文汇总了AIS性能优化技巧,强调自定义AIS对象以提高内存效率和渲染性能。建议避免过多的AIS_InteractiveObject,合理组合几何图形,减少绘图调用,利用 Graphic3d_Buffer::InvalidatedRange() 更新部分渲染,以及禁用自动三角剖分以提升显示质量。同时,介绍了针对选择和高亮显示的不同方法,并提到了BRepMesh_IncrementalMesh的多线程选项。
摘要由CSDN通过智能技术生成

本帖只是一个AIS性能技巧的集合,没有深入解释。这个列表可能会在未来更新。

自定义的AIS对象是关键。

随着OCCT的标准AIS演示,可以有一个良好的开始,但学习如何创建自己的对象和使用现有的演示构建器是实现复杂应用中的多样性和实现最佳性能的必要条件。

AIS_InteractiveObject很昂贵。

将小演示组合成单个对象以减少内存消耗并提高渲染性能。

一个AIS_InteractiveObject并不意味着一个可选择的实体 - 您可以定义对象部分的选择。

将太多几何图形放入单个AIS_InteractiveObject中也不好 - 考虑将太大的对象分割成较小的部分。

将共享共同方面的小原始数组合并成较大的数组。

如果在对象中有数百或数千个Graphic3d_Group :: AddPrimitiveArray()调用,则说明您做错了什么。

每个Graphic3d_Group :: AddPrimitiveArray()映射到单独的绘图调用。 这些调用很昂贵 - 对渲染性能的影响将类似于每个数组创建许多AIS_InteractiveObject(但内存开销较小)。

绘制单个原始数组通常比多个更快。

例如,从形状的多个TopoDS_Face创建单个Graphic3d_ArrayOfTriangles,而不是面与数组之间的一对一映射;其他数组也适用于相同的情况。

避免重新计算整个AIS对象以更改演示方面。

如果要更改AIS对象的单个子部分的颜色 - 将它们放入单独的Graphiv3d_Group中并分配唯一的Graphic3d_Aspects。

在对象构建时创建这些方面(而不是在::Compute()方法内)。 这将允许仅通过调用AIS_InteractiveObject :: SynchronizeAspects&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间简史u

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值