打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
图元拾取性能是否高于几何拾取?

详解软件中的拾取(选择)功能研发(2024年)

接着此文往下聊

从三个方面考虑:

  1. 硬件

  2. 图元

  3. 几何

1.硬件

硬件主要是像素操作,像素和屏幕分辨率有关。像素值是从1到几千的无符号整形值,比如最常见的1920*1080

以上图为例,拾取轮胎。轮胎记录的是所有像素值,当鼠标点击一个像素时,只需要计算鼠标像素值和轮胎像素值的距离。这种计算效率非常高,就算整个屏幕计算一遍,现在普通CPU计算时间也在微秒级别。硬件最喜欢的就是无符号整型运算,运算简单,占用空间少,性能好。目前这种简单的像素计算都在GPU上实现,如果有好一些的GPU,性能会更好。

单从硬件层面实现看,拾取和图形渲染相关,所以使用图形渲染必然是效率最高的。

2. 图元

这里的图元是指渲染引擎生成的数据,以OpenGL为例,显示的普遍使用三角形数据。一个长方形,就由两个三角形构成。

从图元数据看,所有的数据都是三角形,所以拾取计算以三角形和直线的求交为主。这种计算也是非常成熟的参数计算方法,性能较好。

一个用圆心和半径定义的圆形,图元数据是离散成16/32/64等多边形的三角形,离散精度越高,显示效果越好。如图:

离散成16边的圆形(Wireframe模式显示)

其它复杂的曲面也是离散成三角形,拾取时候计算曲面对应的一组三角面片。

3.几何

最后从几何角度来看。

以下一个非参数的曲面,拾取时需要计算其垂直直线曲面的交点。对于非参数的曲面,一般采用迭代算法。只要用迭代,性能必然差

单从性能方面考虑,图元拾取普遍高于几何拾取的

但在CAD/CAE以及前后处理软件中,需要处理各种业务逻辑和数据,业务场景,同时要考虑到软件架构和复杂度。

这里介绍了几何和图元的关系,点击链接查看:

几何内核和渲染引擎的关系


在实践中,一般不会单调用API,而是会做各种加速计算,比如

  1. 使用树结构

  2. 局部操作

  3. LOD( Level Of Detail)

  4. 数据合并

不管是几何还是图元,这些操作都会起到加速作用。


从软件架构看,如果使用几何拾取,则可以使用单向映射,即几何更新,刷新图元,而不是相反;

而如果使用图元拾取,则需要双向映射,甚至三向映射,比如点的拾取,图元精度不够,需要映射到几何顶层拓扑结构,再遍历映射到几何点,增加了系统复杂度。


性能是做拾取时需要考虑的内容,但是对于拾取技术的采用,需要综合考虑软件架构,技术选型,第三方组件以及业务实际需求,而不能单看拾取性能。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Dynamo初学常识梳理(二)
图形编程的基础知识
拓扑学奇趣
荣耀80值不值得买?对比荣耀70,区别一目了然
谁发明了这几张动图,原来几何这么简单!第一张我就震惊了!
四种3D打印文件的常见格式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服