一種基於瞬態顯示延遲處理的計算機切割模擬方法與流程
2023-10-09 11:28:39 1
本發明屬於計算機科學技術領域,更具體地,涉及一種基於瞬態顯示延遲處理的計算機切割模擬方法。
背景技術:
虛擬手術系統是一個專門用來模擬在手術過程中可能遇到的各種情況的虛擬實境應用系統。通過醫學可視化技術將醫學影像資料重構為人體的三維圖形,並利用場景渲染技術生成逼真的手術場景。
軟組織的切割是醫學領域虛擬手術的重要組成部分,不僅需要滿足逼真性,還必須遵循生物組織的物理特性及實時變化,是一個極具挑戰的課題。
軟組織切割中,實時性、穩定性和真實感是衡量切割效果的三個關鍵因素。從場景的渲染角度來說,圖像必須要以30HZ以上的刷新率才能保證圖像顯示的平滑與連續,而要是後續的觸覺設備也能輸出穩定平滑的力覺信息,需要觸覺設備設備的刷新率達到300-1000HZ。
目前國外Morten Bro-Nielsen等人提出去除法,即通過碰撞檢測找出和手術器械發生碰撞的四面體單元,將他們從模型中刪除。雖然實現簡單,執行速度快,可以滿足虛擬手術逇實時性要求,但由於除掉切口的四面體單元會產生嚴重的鋸齒現象,使得真實感很差。DanielBielser等人首先提出採用細分被切割的四面體預先分裂為17個小的四面體單元,並將四面體的切割分為5種拓撲結構,將這5中拓撲結構映射到1:17的細分中。此算法極大提高了仿真的真實性,但是會使得切割的時候四面體的數量急劇增加,隨著切割的時間的增長,由於四面體單元過多,導致計算時間過長,最終會失真,後來雖然提出了最少的四面體網格劃分的算法,減少了劃分時的數量,但是由於網格劃分的判斷複雜,而且拓撲的更新都會對手術的動態顯示產生延遲,因此還是會存在手術的真實感問題。
技術實現要素:
本發明的目的在於克服現有技術中的不足,提供一種基於瞬態顯示延遲處理的計算機切割模擬方法,利用一個瞬態顯示的模塊,將在切割過程中觸碰到的單元,先進行偽切割效果,即將碰撞產生的切痕與碰撞上的三角面片添加到瞬態顯示的模塊中,然後直接顯示切割的效果,在發現碰撞檢測連續2秒鐘都沒有發生碰撞後,認為用戶在觀察模型與進行思考,而沒有進行切割,此時,在後臺中對瞬態顯示中的三角面片對應的四面體進行四面體細分,進行拓撲分離,同時更新節點信息,將偽顯示的切割效果更新為真實切割效果,這樣使得在切割的過程中不會因為計算與拓撲分離使得切割的真實感下降,同時不會受到網格數量的影響使得隨著切割的進行,會發生掉幀卡頓的現象,而進行真正切割處理的時候則是在操作人員不進行切割的時候,這樣增強了切割過程中的真實感與實時性。
一種基於瞬態顯示延遲處理的計算機切割模擬方法,具體步驟如下:
(1) 讀取網格的數據,得到四面體網格的單元集合與表面三角面片集合以及點的集合;
(2) 啟動表面三角面片顯示線程;
(3) 在具體步驟(2)之後,調用瞬態顯示模塊,顯示模塊內部標記的表面三角面片同時直接顯示出切割痕跡,如果系統沒有關閉,將繼續調用步驟(2),繼續重複顯示;
(4) 在步驟(1)後,進行步驟(2)的同時啟動碰撞檢測的線程;
(5)如果步驟(4)的碰撞檢測結果為發生碰撞,則將碰撞的單元進行標記處理,添加到瞬態顯示的模塊中,判斷系統是否有關閉信號,沒有關閉信號將繼續調用步驟(4),否則停止調用,等待系統關閉;
(6)如果步驟(4)沒有發生碰撞檢測,而且未發生碰撞檢測的時間小於2秒,判斷系統是否有關閉信號,沒有關閉信號則繼續調用步驟(4),否則停止調用,等待系統關閉;
(7)如果步驟(4)沒有發生碰撞檢測,而且未發生碰撞檢測的時間大於等於2秒,則開始對瞬態顯示模塊內的標記節點啟動切割的四面體網格劃分,進行拓撲重構,判斷系統是否有關閉信號,沒有關閉信號則繼續調用步驟(4),否則停止調用,等待系統關閉。
優選的技術方案中,所述的步驟(2)啟動表面三角面片顯示線程,是指啟動一個線程,線程內部一直在重複運行顯示所有表面網格的程序,直到系統結束之前,一直都在顯示著三角面片集合。
優選的技術方案中,所述的步驟(3)調用瞬態顯示模塊,顯示模塊內部標記的表面三角面片同時直接顯示出切割痕跡是指調用一下瞬態顯示模塊,模塊內部有著顯示內部特殊標記的表面三角面片,特殊標記就是碰撞檢測中,標記碰撞時在當前三角面片的切痕,在瞬態顯示模塊內部,將標記的三角面片顯示同時將標記的切痕按照厚度顯示出來,有直接切割的效果。
優選的技術方案中,所述的步驟(5)將碰撞的單元進行標記處理,添加到瞬態顯示的模塊中是指將碰撞的單元,將其碰撞時記錄的切痕以及自身的三角面片序號都記錄到瞬態顯示的模塊中存儲。
優選的技術方案中,所述的步驟(7)開始對瞬態顯示模塊內的標記節點啟動切割的四面體網格劃分,進行拓撲重構是指:根據標記的三角面片序號找到其四面體網格序號,然後根據標記的切痕,進行最小四面體分離,然後再添加回四面體集合中,將新增加的表面網格也添加到表面網格中。
本發明的有效技術效果是:利用一個瞬態顯示的模塊,將在切割過程中偽顯示切割效果,即將碰撞產生的切痕與碰撞上的三角面片添加到瞬態顯示的模塊中,然後直接顯示切割的效果,如果碰撞檢測連續2秒鐘都沒有檢測到碰撞,系統認為用戶在觀察模型與進行思考,而沒有進行切割操作,此時,在後臺對瞬態顯示中的三角面片對應的四面體進行四面體細分,進行拓撲分離,同時更新節點信息,將原先偽顯示的切割效果更新為真實切割效果,因此在真實切割過程中不會發生四面體網格細分的計算與相應的網格拓撲分離,而真正的四面體網格細分,產生真正的切割則是在操作人員不進行切割的時候在後臺中進行,從而提高了切割的效率,增強了切割真實感與實時性,提高了切割的流暢性避免了掉幀和卡頓的現象。
附圖說明
圖1為本發明瞬態顯示延遲處理的計算機切割模擬方法的步驟流程示意圖。
具體實施方式
為了更為具體地描述本發明,下面結合附圖及具體實施方式對本發明進行詳細說明。
如圖1所示,一種基於瞬態顯示延遲處理的計算機切割模擬方法,包括如下步驟:
(1)讀取網格的數據,得到四面體網格的單元集合與表面三角面片集合以及點的集合;
讀取四面體的數據,生成四面體網格的集合,三角面片的集合,與點的集合。
(2)啟動表面三角面片顯示線程,是指啟動一個線程,線程內部一直在重複運行顯示所有表面網格的程序,直到系統結束之前,一直都在顯示著三角面片集合。
(3) 在具體步驟(2)之後,調用瞬態顯示模塊,顯示模塊內部標記的表面三角面片同時直接顯示出切割痕跡,如果系統沒有關閉,將繼續調用步驟(2),繼續重複顯示,在系統啟動三角面片顯示的程序後,就會調用瞬態顯示的模塊,這個也會調用一個一直在程序運行期間一直在運行的顯示程序,只是顯示的是被標記的三角面片以及切割痕跡,而切割的痕跡與三角的面片信息則是在一個結構體中,所有的是三角面片按照進入模塊的先後加入到一個隊列中,進行存儲同時方便瞬態的顯示繪製到屏幕中。在瞬態顯示模塊的內部存儲的三角面片顯示一輪後,查看系統是否有關閉的信息,如果要關閉,則關閉瞬態顯示模塊,關閉步驟(2)中的三角面片顯示模塊,如果沒有關閉,則繼續調用步驟(2)中的顯示程序,進行不斷的迭代。
(4)在步驟(1)後,進行步驟(2)的同時啟動碰撞檢測的線程;
在系統進行步驟(1)的時候,有兩個線程是同時啟動的,一個是步驟(2)中的線程,一個就是碰撞檢測線程。碰撞檢測的線程,是指在一個線程內,始終在運行著切割程序,切割程序則一直在檢測手術刀的表面網格是否與被切割的四面體網格有碰撞,如果發生碰撞,則返回碰撞的三角面片信息以及切痕。
(5) 如果步驟(4)的碰撞檢測結果為發生碰撞,那麼將碰撞的單元進行標記處理,添加到瞬態顯示的模塊中,判斷系統是否有關閉信號,沒有關閉信號將繼續調用步驟(4),否則停止調用,等待系統關閉;如果步驟(4)的碰撞檢測的結果是檢測到了某個單元有碰撞,那麼理論就應該會調用切割的算法,會發生切割的痕跡,所以處理方式是將碰撞時記錄的切痕以及自身的三角面片序號都記錄到瞬態顯示的模塊中存儲,屆時會由瞬態顯示模塊來將這些切痕顯示到屏幕中,產生切割的效果。在標記添加結束後,查看系統是否有關閉的信息,如果系統要關閉,則停止碰撞檢測的線程,等待系統關閉,如果系統沒有關閉信息,則繼續調用步驟(4),繼續進行碰撞的檢測。
(6)如果步驟(4)沒有發生碰撞檢測,而且未發生碰撞檢測的時間小於2秒,判斷系統是否有關閉信號,沒有關閉信號則繼續調用步驟(4),否則停止調用,等待系統關閉;如果步驟(4)沒有檢測到碰撞,而且上一次檢測到碰撞的時間小於2秒的情況下,默認不作處理,不認為用戶停止連續的切割操作,此時查看系統是否有關閉的信息,如果系統要關閉,則停止碰撞檢測的線程,等待系統關閉,如果系統沒有關閉信息,則繼續調用步驟(4),繼續進行碰撞的檢測。
(7) 如果步驟(4)沒有發生碰撞檢測,而且未發生碰撞檢測的時間小於等於2秒,則開始對瞬態顯示模塊內的標記節點啟動切割的四面體網格劃分,進行拓撲重構,判斷系統是否有關閉信號,沒有關閉信號則繼續調用步驟(4),否則停止調用,等待系統關閉;如果步驟(4)沒有檢測到碰撞檢測,而且距離上一次的碰撞發生時間大於2秒,對瞬態顯示模塊內的標記節點啟動切割的四面體網格劃分,進行拓撲重構。拓撲重構指的是根據標記的三角面片序號找到其四面體網格序號,然後根據標記的切痕,進行最小四面體分離,然後再添加回四面體集合中,將新增加的表面網格也添加到表面網格中,查看系統是否有關閉的信息,如果系統要關閉,則停止碰撞檢測的線程,等待系統關閉,如果系統沒有關閉信息,則繼續調用步驟(4),繼續進行碰撞的檢測。