ODA三维实体模型OdDb3DSolid、FacetModeler::Body使用对比

基于ODA做三维模型的生成与显示

        模型可选:OdDb3dSolid、OdDbSubDMesh、Body,其中OdDb3dSolid、OdDbSubDMesh依赖Kernel库,Body依赖FacetModeler库。显示库可以用Drawing或Visualize。

模型选型对比
模型显示效果生成速度显示速度布尔运算体积计算其它
OdDbSubDMesh

显示面内部的线

较快较快不支持不支持
OdDb3dSolid显示实体较慢支持支持布尔运算及体积计算依赖C3D或Spatial
FacetModeler:Body显示实体较快较快支持支持支持布尔运算和实体体积计算

        模型显示使用Drawing与Visualize对比,Drawing相比Visualize,内存占用大很多,显示时间慢很多。具体测试数据未记录,Debug下大概是上万个立方体内存占到1G多,显示时间近1分钟。ODA版本为22.12。

规则模型生成效率对比
模型数量测试环境生成用时显示用时
OdDb3dSolid25000个长方体Debug7分左右2分左右(Drawing显示)
FacetModeler:Body25000个长方体Debug1分半左右2.8秒(Visualize显示)

        通过对比,Body模型相较于3dSolid模型,生成时间大约为四分之一,显示时间大约为四十分之一。

布尔运算效率对比
模型数量测试环境生成用时显示用时
OdDb3dSolid5000个Release30分钟近2分钟(Drawing显示)
FacetModeler:Body5000个Release1分15秒3.8秒(Visualize显示)

        布尔运算为两个长方体扣减(弧形角的箱),Body的布尔运算运行时间大概是3dSolid的二十五分之一。

模型和库使用经验

        各类模型生成接口,拉伸、扫掠、放样等接口的支持度不同。C3D可以从它的官网下载3个月试用版,拉伸接口不稳定,布尔运算也不稳定,相比之下Spatial更适合生成3dSolid。

        Body放样接口只支持顶点一一对应的两个面,不支持两个不同多边形面(显示时面有镂空)。Body的布尔运算有BUG,遇到过两个实体共面因精度问题扣减失败,新版本好像已修复。拉伸接口不太方便,要自己实现有弧的多段线路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值