基于3D表面网格的切割算法

  基于3D表面网格的切割算法

   本文主要讲的内容有四个部分:(1)引言,介绍虚拟切割算法的相关内容;(2)最长边细化算法,主要是为切割算法做铺垫,使网格足够细化后再进行切割,从而使切割路径更光滑;(3)切割算法,通过最长边细化后的网格进行切割;(4)实验结果,主要展示细化后切割算法的实现。

一、引言部分

    近年来,随着医学成像技术的发展,计算机虚拟现实技术在医学中的应用得到了飞速的发展。计算机利用这些图像信息进行三维图像重建,为外科医生进行手术模拟提供了客观、准确、直观、科学的手段。其中手术模拟器已经发展到可以创造虚拟的环境让医生学习手术操作的技巧,虚拟切割操作在手术模拟器中起着重要的作用。

    目前虚拟切割方法分为两种:(1)体切割方法---四面体网格切割;(2)面切割方法---三维表面网格切割。

根据切割操作的实现切割技术可分为两类:

(1)删除交叉网格---简单地将那些与切割工具相交的网格元素删除(特点:实现简单,不          过网格边界会产生锯齿状的切割边界)

(2)重构交叉网格---通过重新划分网格,重建了工具穿过这些相交网格元素的路径(特点:增加了计算交互路径的附加成本,但能提供一个良好的可视化的交互路径)

对于切割方法最重要的一个要求就是能精确表示外科手术工具的交互路径。

    为了得到精确的交互路径的表示而且在变形计算方面不用付出巨大代价,已经有一种策略并且该策略在四面体网格上已经实现了,即:细化删除策略,这种策略是切割工具与表面相交的网格元素细化之后在删除。

由于进行了网格细化过程,这样删除的网格元素的体积比较小,但是这种方法仍然有缺点:(1)形成了一不光滑的切割,对于真正的模拟器来说仍然不合适;

   (2)在三维表面网格方面还没有实现。

本文我们提出了一种基于表面网格切割的新策略:细化分离策略。这种策略是分离精确网格元素之后的细化操作。与传统方法相比,该方法能精确的表示工具的交互路径。

在介绍本方法之前,我们先介绍一下里瓦拉在三角形网格细化方面的回溯最长边细化算法。

因为最长边细化算法是本文所提出方法的基础。

二、最长边细化算法

 首先最长边细化算法是如何得到了呢?为什么要进行最长边细化算法?这是本小节的关键。其实是因为要满足一定的要求才提出的最长边细化算法,这个要求就是一个细化的网格应满足的主要特性有:一致性、形状规范和光滑。所谓一致性就是指该三角形网格没有任何的T交叉点。T交叉点是一个不一致的点,这个点被定义为三角形内部的点或与其他两个毗邻三角形的共同顶点。形状规范就是不会出现畸形或者狭长的三角形网格或者其他多边形网格,光滑就是没有锯齿形。下面展示什么是一致性的网格和不一致的网格,如下图a,b所示:

 

 

 

 

 

 

 

 


    满足以上要求,里瓦拉提出了回溯最长边二分细化算法。该方法仅仅平分三角形的最长边,这可以保证要构建细化的三角形的几何属性只依赖最初始的网格。

为了保持网格的一致性,局部细化包括对本身三角形和与该三角形最长边相邻的三角形的细化。

最长传播路径是在回溯最长边细化算法中用到的一个概念。

它的定义如下:对于任何符合三角形T的任一三角形t0,t0的最长边传播路径将会在所有三角形t0, t1, t2, ...tn−1, tn,中有序的列出。例如ti 是三角形ti−1的最长边相邻的三角形(即两个三角形有公共边,而这公共边是ti−1的最长边),i 从1到n。三角形t0的最长边传播路径表示为为LSPP(t0)。

下面将介绍回溯最长边细化算法:

 

回溯最长边二分法(T,t)

 

   当 t 保持没有被二分, 执行

 

    寻找LSPP(t) [三角形t的最长边传播路径]

 

   如果LSPP(t)的最后一个三角形t*是一个终端边界三角形,对t* 执行二分操作

 

   否则对LSPP(t)的(最后)一对三角形进行二分操作。

图形 解释了回溯最长边细化算法:图形a 给出了初始化的三角形划分;图形b执行了第一步操作;图形c执行了第二步;图形d执行了最后一步三角形划分。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


三、切割算法

本文所提的方法中,在物体的网格模型中找到相邻的三角形是很重要的,所以我们利用翼边缘数据结构来表示物体的三维表面。翼边缘数据结构是一种网络数据结构,它具有三种类型数据记录:顶点、边和面.沿着数据结构包含的数据指针可以找到所有元素的邻接关系,而无须搜索整个网面,也无须将每一元素的所有邻接元素都存储起来。

有很多方法可以改变物体的拓扑结构,比如破坏网格元素或者分离它们。在本文提出的方法中,为了得到外科手术工具运动的精确的表示,不是简单的对三角形进行分离,而是利用上节讲的最长边细化算法,把三角形细分为更小的三角形然后进行细化。虚拟切割在分离的更小的三角形上执行。

首先对外科手术工具碰撞的三角形利用回溯最长边细化算法进行细化。离碰撞点最近的顶点作为切割进行的起始顶点。如图所示:

 

 

 

 

 

 

 

 

 

 

 


假设虚拟切割是在三维网格模型的顶点进行的,我们把这个顶点称为参考顶点,下一步的切割按照以下步骤重复执行:

1.在切割路径上找到下一个顶点:与参考顶点相邻并将与工具运动方向距离最近的顶点为下一个顶点。如图展示了如何选择下一个顶点:

 

 

 

 

 

 

 

 

 


2.改变拓扑结构:对于共享下一个顶点的三角形将会利用最长边细化算法进行细化,知道它的最长边l在d/2d/2是为了保证细化过程的终止。

 

 

 

 

 

 

 

 

 

 

 

 

 


3.改变沿切割路径的两个三角形的相邻信息:参考点被复制,并且共享参考点的两个相邻三角形的信息更新为不相邻。下图说明了这个过程,其中把C当作参考点。

 

 

 

 

 

 

 

 

 

 

 

 


四、实验结果

 

   我们构建了如图所展示的系统来实现本文所提出的方法。在三维空间中的虚拟物体的处理是通过触觉接口装置实现的。在3D显示屏幕上展示了真实的视觉效果。

 

 

 

 

 

 

 

 

 

 

 


   下图展示了用三维表面三角网格建模的手的虚拟切割的线框表示:图片a给了初始的手的展示,图b给出了虚拟切割的结果。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


    下图展示了用三维表面三角网格建模的手的虚拟切割的阴影表示:图片a给了阴影下初始的手的展示,图b给出了阴影下虚拟切割的结果。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


下图展示了一个放大的结果,切割路径微妙的展现出来;非常小的处理幻影胳膊的手的抖动     下图展示了一个放大的结果,切割路径微妙的展现出来;非常小的处理幻影胳膊的手的抖动也能被捕获和并用曲线的形式描述出来。这表明本文所提出的方法在外科手术工具的运动准确的描述的高效性。实际上,如果手表面的摩擦力被考虑的话,操作幻影胳膊的手真实的移动,将变得更加光滑。但是,这并不影响所提出方法的效果。

 

 

 

 

 

 

 

 

 


实验总结:本文介绍了一种全新的在三维表面网格方面的切割方法,该方法可以精确展示外科手术工具的移动。实验结果展示了该方法的性能。

 

你可能感兴趣的:(图形学相关论文)