关于几何图形引擎的精度

通常我们会讲一个图形引擎的精度如何如何。比如一个服务于建筑业的图形引擎的精度通常会比较低,无法满足制造业的需求。并且低精度图形引擎建立的模型,导入到高精度引擎时很可能出现:本该相交的曲线没有相交,几何拓扑不一致等情况,这都是和建模精度相关的(为了解决这些问题,图形引擎大多都有容差建模模块)。

由此产生了思考,为何会存在建模精度,限制引擎们达到更高的建模精度的原因是什么?

我们知道,图形引擎一般都会有一个全局的精度(比如parasolid的默认精度为1e-8),这个大概就是该引擎的建模精度。包括求交等复杂算法,利用迭代或者其他方法获取结果,当达到建模精度时就停止了运算,输出了结果。比如对一个建模精度为1e-6的图形引擎,两个点的距离在1e-6内就认为重合了;布尔差运算时如果产生了一个1e-7的薄层,则该引擎会认为切透了,该薄层不存在,但对parasolid这种精度为1e-8的引擎来说,薄层是存在的。这就是不同图形引擎建模时的差异。

那么既然有这么一个精度,所有引擎都直接将全局精度这个值直接提高不就好了吗?大家都是高精度图形引擎?答案当然是否定的。主要原因如下:

1.对图形引擎中的很多算法,求解精度和求解时间都是正相关甚至是指数增长的。如果一个图形引擎只是应用于建筑业这种精度要求不高的场景,那么高精度完全不必要,只会拖累建模速度和效率。

2.图形引擎中还有一些算法,从算法本身来讲,其设计逻辑就注定了它达不到更高的精度,如果需要达到更高的精度,必须重新设计算法。而更高精度的算法,设计起来往往更难,也往往是各高精度引擎的核心技术。

因此,低精度引擎的升级远不止修改一个全局精度参数就能解决的,直接修改会导致诸多算法要么求解时间大幅增长,要么各种中间过程得不到结果,进而引发一系列失败、无效状况,导致整个引擎瘫痪。

也正因如此,图形引擎建模精度就成了各产品的重要卖点。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值