1.一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法,其特征在于實(shí)現(xiàn)步驟如下:
第一步,預(yù)處理過程,讀取需處理的模型,所述模型包括元球模型和表面模型,元球模型是基礎(chǔ)模型,用來做驅(qū)動(dòng),表面模型是渲染模型;同時(shí)預(yù)處理過程還要進(jìn)行渲染環(huán)境和驅(qū)動(dòng)方法的初始化;
第二步,變形過程,根據(jù)第一步讀取模型中的數(shù)據(jù)做位置動(dòng)力學(xué)方法驅(qū)動(dòng),該變形過程為循環(huán)過程,即處理完后,若不進(jìn)入第三步切割過程或發(fā)生結(jié)束事件,則重復(fù)該變形過程;
第三步,切割過程,該過程的產(chǎn)生決定于第二步執(zhí)行完后產(chǎn)生切割事件,切割事件的產(chǎn)生決定于手術(shù)刀和模型產(chǎn)生碰撞,切割過程后若不結(jié)束,將進(jìn)入第二步變形過程;在切割過程中,需要一個(gè)混合驅(qū)動(dòng)處理過程,混合驅(qū)動(dòng)處理過程為使用一種從元球到點(diǎn)集再到元球的切割模式,元球切割分為四個(gè)部分,首先碰撞元球轉(zhuǎn)化為點(diǎn)集,然后點(diǎn)集構(gòu)建無網(wǎng)格系統(tǒng),同時(shí)進(jìn)行剩余元球系統(tǒng)和無網(wǎng)格系統(tǒng)的耦合運(yùn)動(dòng),最后點(diǎn)集轉(zhuǎn)化為元球;表面切割伴隨元球切割發(fā)生,分為表面分裂,裂隙生成和重新綁定;
第四步,渲染過程,從第一步開始已經(jīng)準(zhǔn)備就緒,伴隨第二步和第三步發(fā)生,需要輸入變形過程或切割過程的數(shù)據(jù),不斷進(jìn)行渲染,最后輸出模型對(duì)應(yīng)的顯示圖像。
2.根據(jù)權(quán)利要求1所述的一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法,其特征在于:所述第一步,預(yù)處理過程,具體實(shí)現(xiàn)如下:
(1)讀入三種類型的文件,所述三種類型的文件為標(biāo)準(zhǔn)三角面片OBJ文件,標(biāo)準(zhǔn)紋理圖片TGA文件和自定義元球SPH文件,其中SPH文件是通過OBJ文件生成的,SPH文件提供元球信息,所述元球信息包括元球球心位置和半徑信息;OBJ文件按照通用方式存儲(chǔ)了三角面片的頂點(diǎn)信息和面片信息;TGA文件存放紋理信息;所述三種文件中的數(shù)據(jù)讀取后分別用相應(yīng)的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ);
(2)渲染環(huán)境初始化,包括搭建OpenGL渲染環(huán)境和3D觸覺設(shè)備Phantom Device的渲染環(huán)境初始化;
(3)驅(qū)動(dòng)方法初始化,包括基于位置的動(dòng)力學(xué)方法和無網(wǎng)格方法的參數(shù)和依賴變量的初始化。
3.根據(jù)權(quán)利要求1所述的一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法,其特征在于:所述第二步,變形過程,具體實(shí)現(xiàn)如下:
(1)變形過程,根據(jù)第一步讀取的模型的數(shù)據(jù),采用基于位置的動(dòng)力學(xué)(PBD)方法進(jìn)行驅(qū)動(dòng)元球,在位置動(dòng)力學(xué)方法中,添加拉伸約束,單元約束和能量約束,設(shè)置好固定元球,以達(dá)成收斂效果;
(2)表面三角面片的頂點(diǎn)與元球做高斯綁定,即該頂點(diǎn)的運(yùn)動(dòng)由周圍元球的運(yùn)動(dòng)情況決定,影響元球數(shù)最多為3個(gè),影響方式為該元球球心到頂點(diǎn)的距離與半徑的比率的高斯值加權(quán)作用在該頂點(diǎn)上。
4.根據(jù)權(quán)利要求1所述的一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法,其特征在于:所述第三步,切割過程,具體實(shí)現(xiàn)如下:
(1)當(dāng)手術(shù)刀碰到元球時(shí),將元球轉(zhuǎn)化為點(diǎn)集,采樣越密集結(jié)果越準(zhǔn)確;同時(shí)移除碰撞的元球,產(chǎn)生一個(gè)剩余元球系統(tǒng);
(2)利用步驟(1)產(chǎn)生的點(diǎn)集構(gòu)建無網(wǎng)格系統(tǒng),使用無網(wǎng)格方法進(jìn)行驅(qū)動(dòng),使用的無網(wǎng)格方法為簡(jiǎn)化的無網(wǎng)格方法,計(jì)算速度較快;
(3)利用步驟(1)產(chǎn)生的剩余元球系統(tǒng)與步驟(2)產(chǎn)生的無網(wǎng)格系統(tǒng)進(jìn)行混合驅(qū)動(dòng),兩個(gè)系統(tǒng)存在耦合運(yùn)動(dòng),一個(gè)系統(tǒng)產(chǎn)生運(yùn)動(dòng)時(shí)將運(yùn)動(dòng)信息反饋給另一個(gè)系統(tǒng);
(4)當(dāng)手術(shù)刀離開元球模型時(shí),需要將點(diǎn)集恢復(fù)為元球,恢復(fù)方法為采集表面無網(wǎng)格點(diǎn),利用維諾圖方法對(duì)該頂點(diǎn)進(jìn)行分析得到中心骨架,在骨架上進(jìn)行元球填充;
(5)表面分裂,處理三角形與線段相交的幾種不同的情況,分別分裂為更合適的三角形,分裂遵循基本原則,即分裂后的表面依然使用三角形填充,并將切割線段兩邊的多邊形分別分割為三角形,然后在裂隙處采集無網(wǎng)格點(diǎn),對(duì)這些無網(wǎng)格點(diǎn)進(jìn)行三角化處理,形成裂隙網(wǎng)格,最后更新所有三角形的綁定情況,包括新生成的三角形和裂隙附近的三角形;
(6)權(quán)利要求4的時(shí)間邏輯:步驟(1)執(zhí)行的時(shí)間點(diǎn)為手術(shù)刀和元球發(fā)生碰撞,可能會(huì)被執(zhí)行多次,每當(dāng)一次步驟(1)執(zhí)行完后立即持續(xù)執(zhí)行步驟(2)和(3),當(dāng)手術(shù)刀不再和元球發(fā)生碰撞,即切割完畢,執(zhí)行步驟(4);而步驟(5)和其余4個(gè)步驟為并行關(guān)系,手術(shù)刀與表面發(fā)生碰撞時(shí)需要進(jìn)行分裂處理,步驟(4)恢復(fù)元球時(shí),同時(shí)處理裂隙生成,在步驟(4)和裂隙生成都執(zhí)行完后進(jìn)行重新綁定處理。
5.根據(jù)權(quán)利要求1所述的一種基于元球模型和混合驅(qū)動(dòng)方法的實(shí)時(shí)數(shù)字器官切割方法,其特征在于:所述第四步,渲染過程,具體實(shí)現(xiàn)如下:
(1)繪制模型表面信息,表面信息包括三部分,紋理信息,頂點(diǎn)信息和面片信息,模型讀取時(shí)已經(jīng)給定了表面的初始信息,紋理信息是固定不變的,而頂點(diǎn)信息是隨著變形過程和切割過程不斷做改變,面片信息也會(huì)隨著切割過程的步驟做改變,渲染過程為變形過程和切割過程共同的伴隨步驟;表面信息需要繪制兩遍,一遍用OpenGL繪制在屏幕上,一遍用Phantom庫(kù)繪制進(jìn)力反饋設(shè)備中;
(2)選擇性繪制體信息,提供體繪制開關(guān),在查看切割效果時(shí)打開體信息繪制,體信息包括元球信息以及元球拓?fù)湫畔?,元球信息也在預(yù)處理過程中模型讀取時(shí)給定,之后隨著變形過程和切割過程的步驟不斷做改變,元球拓?fù)湫畔樵虻慕化B情況,在有交疊的元球之間,會(huì)在它們球心連接一條線段表示它們存在拓?fù)湫畔ⅰ?/p>