郝嘉 宋萬強 中國航空研究院
CFD又稱計算流體動力學,利用計算資源采用離散數值計算方法,開展有關力學問題的數值模擬。在圖形著色中,由于運算量大,導致實時性差、網格著色效果不理想。CFD 算法憑借其優異的快速運算特性對圖形網格著色,具有豐富的細節渲染能力。針對傳統著色算法的現有問題,提出了基于CFD 網格的全新著色算法,其優勢在于可以精準地表達復雜結構的幾何圖形,將多個模塊中的集合圖形在網格上進行標點,確保網格全著色并高速運行。
利用CFD 算法對空間進行網格著色標注,建立直角空間坐標體系。如下圖1 所示。
圖1 網格空間標定
根據上圖可知,在規定的空間網格中,向上正方向為空間坐標的豎向極坐標,記為Z0 軸,同時將Z1 與Z2 之間的距離記為誤差可調節區域,同理在網格中標注出坐標軸的X 軸與Y 軸。假定如上選定的坐標不存在誤差,即可根據CFD 技術原理,得到網格著色的最遠距離。該距離在空間軸上坐標可表示為:
根據圈定的著色邊緣,設定S 為全著色面積,建立基于CFD 的網格矩陣,如下所示。
上式中:在圖形邊界內(記為C(G)),S 表示為以x 為邊緣的矩陣面積,若,可使用矩陣找到唯一C 點坐標G 與矩陣映射;反之,對于,可滿足顏色位移性質。使用游走著色方法在計算區域對交互區域實施顏色游走,定義游走線條為子曲線,網格面積由n條游走曲線構成,計算顏色種群之間的融合區域。如下公式所示。
公式中: 表示為網格頂點 與 的相似程度,該變量代表了頂端游走的概率,臨邊數值越高,著色中沿邊著色概率越大,網格著色完整程度越高; 表示為圈定的網格著色邊緣點;表示為網格著色區域,當著色中出現顏色邊界滲色,即傳播區域超出網格邊界臨界數值時,出現顏色混淆。提取網格著色出現的特征顏色,剔除著色中顏色上出現的特異值,處理著色中出現的噪聲,著色跳轉概率與子曲線顏色加權值對應,建立連續著色網格區域,連接出現明確拓撲區域信息,將Sk作為網格著色鄰域,分析方差計算著色點局部屬性,圈定指定網格曲線。計算公式如下。
公式中:當 屬于約束條件下時,按照原定曲線著色的概率p在(0,1)之間,建立由 k 為網格頂點的空組集合,按照頂點遞減順序將k 頂點隨機放置在曲線子集中,取前v 個點作為網格著色進化結果,判斷是否滿足網格全著色,輸出最終著色結果,實現網格全著色。
為驗證CFD 網格著色算法的實用性,通過對同一視頻流進行不同的算法處理,對比顯示著色效果。分析兩種算法所獲得的數據,對比CFD 網格著色算法與傳統著色算法在網格著色中的差異性,通過分析網格著色的完成程度,檢驗新提出的算法性能。
搭建實驗測試平臺,使用CFD 算法對NASA-TRAPWING 網格實施著色,如圖2 所示。
圖2 NASA-TRAPWING 網格示意圖
提取實驗中網格著色完成度數據,分析網格著色完整度,記錄5組實驗數據,記為實驗組。使用傳統網格著色算法實施相同步驟操作,忽略著色中出現影響著色完整度的噪聲,自動收錄實驗數據,記為對照組,記錄實驗數據,對比兩組著色圖。
依照實驗結果,計算兩種網格著色算法對網格著色的完整度,如下圖3 所示。
圖3 著色完整度對比圖
從圖3 中數據可以看出,實驗組的CFD 網格著色完整程度最低為78.22%,而傳統算法著色度最高為56.74%,實驗組完整度明顯高于對照組。
另外,由于傳統算法進行著色完整度較差,隨著實驗次數的增多,可能出現圖形失真的情況。
結合CFD 方法對網格進行著色,可使復雜圖形快速高畫質顯示。CFD 網格著色算法通過網格空間標定計算網格著色面積得到矩陣,計算著色融合區域,分析網格著色融合屬性,從而盡可能地實現網格全著色。通過對比實驗,進一步驗證了CFD 網格著色算法在實際應用中可提升著色的完整程度以及計算效率。在后續的研究中,還可以深入分析局部法向量等對將網格著色中權重值的影響,更大程度實現網格全著色,提升圖形運算質量和效率。