一种用于计算组织切割后新生成模型顶点纹理坐标的方法与流程

文档序号:11951354阅读:924来源:国知局
一种用于计算组织切割后新生成模型顶点纹理坐标的方法与流程
本发明涉及计算机图形学等领域,尤其是虚拟手术中生物组织器官纹理映射领域。
背景技术
:在虚拟手术场景中,要建立真实的视觉反馈系统,除了要正确逼真地进行器官模型建模外,还要通过人体器官的各种纹理细节来丰富其表现特征。切割是外科手术操作中必不可少的一部分。切割就会使模型三角形网络发生变化,就会沿着切割路径去除一部分面片和生成新的顶点,组建新的三角形网络。这个切割过程就会造成新的生成的顶点没有纹理坐标,造成切割周边的部分没有纹理,失去了真实感。在虚拟手术中的模型的纹理坐标是通过Maya软件经过几种不同的纹理映射方法和经过手动调整生成的,因此无法通过某一个纹理映射关系计算出新生成模型顶点的纹理坐标。技术实现要素:为了克服先有的虚拟手术无法通过某一个纹理映射关系计算出新生成模型顶点的纹理坐标的不足,本发明提供了一种用于计算组织切割后新生成模型顶点纹理坐标的方法,在虚拟手术切割操作后切口附近的纹理不失真、不扭曲、不重叠,实现更好的视觉反馈,对切割中新生成的模型顶点,快速、基本复现切口周边原有纹理。本发明所采用的技术方案如下所示:一种用于计算组织切割后新生成模型顶点纹理坐标的方法,所述的计算新生成顶点纹理坐标的方法包括如下步骤:(1)记录所有包含切割路径点集合R,并搜索包含切割路径的三角形面片的索引号,记录三角形面片索引号集合L;(2)判断新生成的模型顶点是否在某一个三角形面片内:遍历判断新生成的模型顶点是否在集合L中的某一个三角形面片内,并且记录相应三角形面片的索引号I;(3)计算新生成的模型顶点P与所在三角形三个顶点的关系,如果新生成模型顶点在三角形内,计算出与新生成顶点的关系,如果不在所记录的三角形面片内部,则利用点在平面的投影点,计算出与三角形顶点的关系,过程如下:由步骤(2)可知,如果新生成的模型顶点在记录集合L中的某一个的三角形面片内,则记录满足条件的相应的m和k的值,则会有P=A+m*(C-A)+k*(B-A);如果新生成的模型顶点不在三角形面片索引集合L中,则P在所有索引集合L所组成平面的外部,当P位于平面的外部时,根据P在距离最近三角形面片上的投影点P′与所在三角形顶点的关系,间接得到P与所在三角形顶点的关系;(4)计算新生成的模型顶点P的纹理坐标与相应三角形面片顶点{vi0,vi1,vi2}的纹理坐标之间关系,即可计算出新生成模型顶点的纹理坐标(u,v)。进一步所述步骤(3)中,求投影P′的过程如下:步骤3.1设集合L组成平面的法向量s:{a,b,c},集合L中每个面片的法向量为:si:{ai,bi,ci},则投影面的法向量为:a=Σi=1naib=Σi=1nbic=Σi=1nci]]>因此可以设每个三角形面片si可以采用三个顶点{vi0,vi1,vi2},顶点分别设为vi0(xvi0,yvi0,zvi0),vi1(xvi1,yvi1,zvi1),vi2(xvi2,yvi2,zvi2)且顶点顺序按逆时针排列,则平面的法向量si为:aii+bij+cik=ijkxvi1-xvi0yvi1-yvi0zvi1-zvi0xvi2-xvi0yvi2-yvi0zvi2-zvi0]]>步骤3.2由步骤3.1得到平面的法向量s:{a,b,c},接着下来,需要遍历找到P点沿着s负方向与L集合中某一个三角形面片相交,求相交过程如下:经过P点s方向的射线方程:F=P+ts每个三角形面片的平面方程为:si*(F-vi0)=0联立连个方程式得到:t=si·vi0-si·Psi·s]]>若t>=0,则射线与平面相交,且交点为P+ts,则P′=P+ts,再根据步骤(2)计算P′在所在三角形面片顶点的关系。则可得到新生成顶点P与所在投影三角形面片顶点的关系。再进一步,所述步骤(4)中,计算出新生成模型顶点的纹理坐标(u,v)的过程如下:假设ΔABC顶点的纹理坐标Auv=(u0,v0),Buv=(u1,v1),Cuv=(u2,v2)新生成模型顶点P的纹理坐标为Puv(u,v),由步骤(3)所得新生成顶点和所在三角形面片的关系式:P=A+m*(C-A)+k*(B-A),则有如下关系式:Puv=Auv+m*(Cuv-Auv)+k*(Buv-Auv)因此得到新生成模型顶点P的纹理坐标为Puv(u,v)。本发明的有益效果体现在:本发明采用了计算新生成模型顶点的纹理坐标与相应三角形面片的顶点纹理坐标的关系的方法,可以不用根据某种纹理映射关系求取新的模型顶点纹理坐标,从而可以忽略中间的纹理映射关系,同时保证了纹理坐标的准确性,纹理无失真的效果。附图说明图1是三角形网络选取的切割路径的示意图。图2是切割后新生成的模型顶点的示意图。图3是三角形内部点的关系矢量图。具体实施方式下面对本发明做进一步的说明。参照图1~图3,一种用于计算组织切割后新生成模型顶点纹理坐标的方法,所述的计算新生成模型顶点纹理坐标的方法包括以下步骤:(1)记录所有包含切割路径点集合R,并搜索包含切割路径的三角形面片的索引号,记录三角形面片索引号集合L;如说明书附图,图1所示三角形网络选取的切割路径,设切割路径顶点p0p1p2…pn-1pn,如说明书附图,图2所示切割后新生成的模型顶点,设切割后新生成的模型顶点集合R包含模型顶点q0q1q2…qn-1qn,记录包含切割路径顶点的所有三角形面片的索引号,设索引集合为L={t0t1…tn-1tn};(2)判断新生成的模型顶点是否在某一个三角形面片内:遍历判断新生成的模型顶点是否在集合L中的某一个三角形面片内,并且记录相应三角形面片的索引号I,具体过程如下:如说明书附图,图3所示三角形内部点的关系矢量图,分别设三角形ΔABC顶点A(x0,y0,z0),B(x1,y1,z1),C(x2,y2,z2)和平面内任意点P(x,y,z),对于平面内任意点P(x,y,z)都可以有如下方程表示:P=A+m*(C-A)+k*(B-A)那么如果P位于ΔABC内部,m和k必须满足三个条件m>=0,k>=0和m+k<=1,因此我们需要继续计算m,k的值。令则有公式:V2→=m*V0→+v*V1→]]>因为一个方程,两个未知数,无法解出m和k,等式两边分别点乘得到等式:V2→·V0→=(m*V0→+k*V1→)·V0→]]>V2→·V1→=(m*V0→+k*V1→)·V1→]]>解得方程可以得到:Dir=(V0→·V0→)(V1→·V1→)-(V1→·V0→)(V0→·V1→)]]>m=((V1→·V1→)(V2→·V0→)-(V1→·V0→)(V2→·V1→))/Dir]]>k=((V0→·V0→)(V2→·V1→)-(V1→·V0→)(V2→·V0→))/Dir]]>根据求解的结果,判断是否满足P位于ΔABC内部的条件,就可以得到P是否在三角形ΔABC内部;(3)计算新生成的模型顶点与所在三角形顶点的关系,如果模型顶点在三角形内,计算出新生成顶点的关系,如果不在所记录的三角形面片内部,则利用点在平面的投影点,计算出与三角形顶点的关系,计算过程如下:由步骤(2)可知,如果新生成的模型顶点在记录集合L中的某一个的三角形面片内,则记录满足条件的相应的m和k的值,则会有P=A+m*(C-A)+k*(B-A);如果新生成的模型顶点不在三角形面片索引集合L中,则P在所有索引集合L所组成平面的外部,当P位于平面的外部时,可以根据P在距离最近三角面片上的投影点P′与所在三角形顶点的关系,间接得到P与所在三角形顶点的关系。因此先求投影点P′,详细步骤如下:步骤3.1设集合L组成平面的法向量s:{a,b,c},集合L中每个面片的法向量为:si:{ai,bi,ci},则投影面的法向量为:a=Σi=1naib=Σi=1nbic=Σi=1nci]]>因此可以设每个三角形面片si可以采用三个顶点{vi0,vi1,vi2},顶点分别设为vi0(xvi0,yvi0,zvi0),vi1(xvi1,yvi1,zvi1),vi2(xvi2,yvi2,zvi2)且顶点顺序按逆时针排列,则平面的法向量si为:aii+bij+cik=ijkxvi1-xvi0yvi1-yvi0zvi1-zvi0xvi2-xvi0yvi2-yvi0zvi2-zvi0]]>步骤3.2由步骤3.1得到平面的法向量s:{a,b,c},接着下来,需要遍历找到P点沿着s方向与L集合中某一个三角形面片相交,求相交过程如下:经过P点s方向的射线方程:F=P+ts每个三角形面片的平面方程为:si*(F-vi0)=0联立连个方程式得到:t=si·vi0-si·Psi·s]]>若t>=0,则射线与平面相交,且交点为P+ts,则P′=P+ts,再根据步骤(2)计算P′在所在三角形面片顶点的关系。则可得到新生成顶点P与所在投影三角形面片顶点的关系;(4)计算新生成的模型顶点的纹理坐标与相应三角形面片顶点的纹理坐标之间关系,具体实现过程如下:假设ΔABC顶点的纹理坐标Auv=(u0,v0),Buv=(u1,v1),Cuv=(u2,v2)新生成模型顶点P的纹理坐标为Puv(u,v),由步骤(3)所得新生成顶点和所在三角形面片的关系式:P=A+m*(C-A)+k*(B-A),则有如下关系式:Puv=Auv+m*(Cuv-Auv)+k*(Buv-Auv)因此得到新生成模型顶点P的纹理坐标为Puv(u,v)。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1