体素化(Voxelization)

来源:互联网 发布:php初级项目开发案例 编辑:程序博客网 时间:2024/06/03 18:52

体素化(Voxelization)是将物体的几何形式表示转换成最接近该物体的体素表示形式,产生体数据集,其不仅包含模型的表面信息,而且能描述模型的内部属性。表示模型的空间体素跟表示图像的二维像素比较相似,只不过从二维的点扩展到三维的立方体单元,而且基于体素的三维模型有诸多应用。


由于使用的需要,需对模型进行体素化操作,这里采用了一种简单但却有效的操作方法。首先设定模型体素化的分辨率,假设为 N * N * N,之后的操作主要包括两部分:

1.      对模型表面的体素化

这一步的操作比较简单,首先计算出模型的AABB包围盒,然后根据空间分辨率对包围盒进行划分,得到每个大小为(X/N) * (Y/N) * (Z/N)空间像素列表。然后对构成3D模型的多边形或三角形列表进行遍历,得到这些基本体元所对就应的包围盒,然后由AABB求交运算得到这些基本体元所能影响到的体素单元,将这些体素单元做为待判断的基本对象。为了做进一步的精确判定,使用三角形与AABB的求交算法确定这些基本体元所能影响到最终体素,并将这些体素标记为非空,这样就完成了对3D模型表面的体素化操作。

2.      对模型内部的体素化

将模型表面体素化的操作进行完之后即可得到对模型体素表示的一个“外壳”,接下来要做的操作就是进行模型的内部体素化操作。这里采用一种简单的方法。首先将对应的3D模型建立空间八叉树,这棵八叉树主要用于进行基本体元面片的求交操作。然后对模型AABB中的所有空体素,从其中心位置以轴对齐方向来发射两条射线,这两条射线的方向相反,但基本方向都是轴对齐的。对于这两条的射线利用空间模型的八叉树来得到其与3D模型的相交位置,并得到相交点的法向量及到相交点的距离,然后根据这两点法向量之间的关系来判断得到当前体素是在3D模型的内部或是在3D模型的外部。将这样的操作施加于每一个空的体素之后就可以完成对3D模型内部的体素化操作。

但是将这样的操作施加于每一个空的体素速度比较慢,故而此处可以采用扫描的方法来进行加速处理。如果判断得到某个体素的位置为模型内部后,就可以根据射线的方向及这两条射线与模型的交点处的距离来对当前体素相邻的体素进行扫描,这样不需要再做判断就可以标记出相邻体素的状态,这样就加速了整个模型内部的体素化操作。


但是上述这种方法具有局限性,对于非完全闭合的3D模型,这种方法不能很好地进行内部体素化操作,不过自己工程的需要中,这种方法就已经适用了,而且简单易行。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米6x卡槽小怎么办 红米note砖头怎么办 mi4c不支持4G怎么办 小米手机抢不到怎么办 洗衣机外壳凹了怎么办 塑料手机套变黄怎么办 淘宝上没货了怎么办啊 华为手机音量低怎么办 手机电池冲鼓了怎么办 手机电池起鼓了怎么办 手机信息总提示怎么办 一体机电池不耐用怎么办 血糖偏高怎么办雅培益力佳SR 投诉电话打不通怎么办 宝宝换奶粉拉肚子怎么办 微店没有客源怎么办 itunes文件被保护怎么办 魅族e1黑屏了怎么办 窗帘打孔的扣环怎么办 棉质裤子掉色怎么办 孕期喝咖啡了怎么办 实体店买到假手机怎么办 派派提现没有那么多好友怎么办 派派提现没有支付宝怎么办 电脑电源不够用怎么办 电脑电源不够会怎么办 中行信用卡异常了怎么办 美借还款后秒拒怎么办 海尔空调关不了怎么办 华为p9无服务怎么办 贝贝买到假货怎么办 京东不予退货怎么办? 咸鱼收到货不对怎么办 闲鱼没收到货怎么办 淘宝购物不到货怎么办 百世快递不派送怎么办 圆通快递不派送怎么办 无卡存款没到账怎么办 中国银行分行冻结信用卡怎么办 银行信用卡没还怎么办 免税店提货单丢了怎么办