對對象進行建模的方法和設備的制造方法
【專利說明】對對象進行建模的方法和設備
[0001]本申請要求于2014年8月26日提交到韓國知識產權局的第10-號韓國專利申請以及于2015年4月28日提交到韓國知識產權局的第10-號韓國專利申請的優先權權益,所述韓國專利申請的公開通過引用包含于此。
技術領域
[0002]以下描述的示例實施例涉及一種用于對對象進行建模的方法和設備。
【背景技術】
[0003]關于計算機圖形(CG)領域中(尤其是視覺效果(VFX)領域中)的流體仿真,正在對數值求解流體流動進行研究。納維-斯托克斯方程將流體視為微小粒子的總和,并表現粒子之間的相互作用和運動。當假定相對理想的情況時,納維-斯托克斯方程可被改變為伯努利原理。為了基于納維-斯托克斯方程進行流體建模的真實再現,將滿足不可壓縮條件。
[0004]此外,將保證對于人眼足夠自然的可變形對象的仿真、實時模型響應和計算的精確性。因此,可使用考慮可變形對象的物理特性、邊界條件和施加的外力的模型。
[0005]在CG領域中,可分開執行流體的仿真和可變形對象的仿真。然而,在一般環境中,流體和可變形對象共存并互相影響。
【發明內容】
[0006]通過提供一種對對象進行建模的方法來實現前述和/或其它方面,所述方法包括:檢測使用粒子建模的第一對象與使用粒子建模的第二對象之間的相鄰區域;針對相鄰區域定義網格;基于存儲在網格的網格點中的信息,計算相鄰區域中的第一對象與第二對象之間的作用力;基于計算出的作用力對第一對象和第二對象進行建模。
[0007]所述定義的步驟可包括:提取相鄰區域中的第一對象或第二對象的輪廓與網格的和所述輪廓相鄰的網格點之間的距離值;將提取的距離值存儲在網格點中。
[0008]所述計算的步驟可包括:驗證在相鄰區域中第一對象的粒子與第二對象的粒子之間是否發生碰撞;基于驗證的結果計算第一對象的粒子與第二對象的粒子之間的作用力。
[0009]所述驗證的步驟可包括:基于存儲在與第一對象的粒子的位置相鄰的網格點中的距離值驗證是否發生碰撞。
[0010]所述驗證的步驟還可包括:驗證第一對象的粒子是否滿足體積保持條件。
[0011]所述計算第一對象的粒子與第二對象的粒子之間的作用力的步驟可包括:當驗證發生了碰撞時,檢測在相鄰區域中的第一對象的粒子和第二對象的粒子之中的第一對象的碰撞粒子;重新定義檢測到的第一對象的碰撞粒子的位置;基于第一對象的碰撞粒子的重新定義的位置,計算響應于碰撞而施加到第二對象的作用力。
[0012]所述重新定義的步驟可包括:將檢測到的第一對象的碰撞粒子的位置重新定義為第一對象的碰撞粒子不穿透第二對象的位置。
[0013]所述將檢測到的第一對象的碰撞粒子的位置重新定義的步驟可包括:基于存儲在與包括檢測到的第一對象的碰撞粒子的單元對應的網格點中的梯度和距離值,計算第一對象的碰撞粒子的運動方向和最短運動距離,使得第一對象的碰撞粒子不會穿透第二對象;基于計算出的運動方向和計算出的最短運動距離,重新定位第一對象的碰撞粒子。
[0014]所述方法還可包括:基于存儲在網格點中的距離值和計算出的最短運動距離計算第一對象的碰撞粒子的運動速度;將計算出的運動速度存儲在與包括檢測到的第一對象的碰撞粒子的單元對應的網格點中。
[0015]所述計算響應于碰撞而施加到第二對象的作用力的步驟可包括:計算估計的在第一對象的碰撞粒子的重新定義的位置由第二對象施加到第一對象的碰撞粒子的力;基于計算出的力計算響應于碰撞而施加到第二對象的作用力。
[0016]所述方法還可包括:將計算出的作用力存儲在網格的與第一對象的碰撞粒子的重新定義的位置對應的網格點中。
[0017]第一對象和第二對象可以是同質的或異質的。
[0018]第一對象可對應于流體,第二對象可對應于可變形對象。
[0019]通過提供一種用于對對象進行建模的設備來實現前述和/或其它方面,所述設備包括:網格轉換模塊,被配置為檢測使用粒子建模的第一對象與使用粒子建模的第二對象之間的相鄰區域,并針對相鄰區域定義網格;對象建模模塊,被配置為基于存儲在網格的網格點中的信息計算相鄰區域中的第一對象與第二對象之間的作用力,并基于計算出的作用力對第一對象和第二對象進行建模。
[0020]網格轉換模塊可被配置為提取相鄰區域中的第一對象或第二對象的輪廓與網格的和所述輪廓相鄰的網格點之間的距離值,并將提取的距離值存儲在網格的網格點中。
[0021]對象建模模塊可包括:驗證器,被配置為驗證在相鄰區域中第一對象的粒子與第二對象的粒子之間是否發生碰撞;檢測器,被配置為基于驗證的結果檢測在相鄰區域中的第一對象的粒子和第二對象的粒子之中的第一對象的碰撞粒子;重新定義器,被配置為重新定義檢測到的第一對象的碰撞粒子的位置;計算器,被配置為基于第一對象的碰撞粒子的重新定義的位置,計算響應于碰撞而施加到第二對象的作用力。
[0022]重新定義器可被配置為:基于存儲在與包括檢測到的第一對象的碰撞粒子的單元對應的網格點中的梯度和距離值,計算第一對象的碰撞粒子的運動方向和最短運動距離,使得第一對象的碰撞粒子不會穿透第二對象,并且基于計算出的運動方向和計算出的最短運動距離,重新定位第一對象的碰撞粒子。
[0023]計算器可被配置為計算估計的在第一對象的碰撞粒子的重新定義的位置由第二對象施加到第一對象的碰撞粒子的力,基于計算出的力計算響應于碰撞而施加到第二對象的作用力,并將計算出的作用力存儲在網格的與包括檢測到的第一對象的碰撞粒子的單元對應的網格點中。
[0024]通過提供一種用于對對象進行建模的設備來實現前述和/或其它方面,所述設備包括:存儲器,被配置為記錄用于控制所述設備的操作的程序;至少一個處理器,被配置為執行所述程序。所述程序可被配置為檢測使用粒子建模的第一對象與使用粒子建模的第二對象之間的相鄰區域,針對相鄰區域定義包括多個單元的網格,并基于相鄰區域中的第一對象與第二對象之間的作用力來對第一對象和第二對象進行建模,可基于存儲在網格的網格點中的信息計算所述作用力。
[0025]示例實施例的其它方面將在下面的描述中部分地闡明,并且從所述描述部分地將是清楚的,或者可通過本公開的實施被了解。
【附圖說明】
[0026]從以下結合附圖對示例實施例的描述,這些和/或其它方面將變得清楚且更容易理解,在附圖中:
[0027]圖1示出根據示例實施例的在對對象進行建模的方法中使用的相鄰區域;
[0028]圖2示出根據示例實施例的對對象進行建模的方法;
[0029]圖3示出根據示例實施例的在對對象進行建模的方法中針對相鄰區域定義網格的操作;
[0030]圖4示出根據示例實施例的在對對象進行建模的方法中計算第一對象與第二對象之間的作用力的操作;
[0031]圖5示出根據示例實施例的在對對象進行建模的方法中計算第一對象與第二對象之間的作用力的操作;
[0032]圖6示出根據示例實施例的用于對對象進行建模的設備;
[0033]圖7示出根據示例實施例的用于對對象進行建模的設備;
[0034]圖8示出根據示例實施例的對對象進行建模的方法;
[0035]圖9示出根據示例實施例的基于每個模塊的操作順序在用于對對象進行建模的設備中處理相鄰區域和作用力的處理;
[0036]圖10示出根據示例實施例的在用于對對象進行建模的設備中通過網格模塊的中繼處理流體與可變形對象之間的相互作用的處理;
[0037]圖11示出根據示例實施例的用于對對象進行建模的設備的操作方法;
[0038]圖12示出根據示例實施例的在用于對對象進行建模的設備中的流體建模模塊的操作方法;
[0039]圖13示出根據示例實施例的在用于對對象進行建模的設備中的可變形對象建模模塊的操作方法;
[0040]圖14示出根據示例實施例的在用于對對象進行建模的設備中的網格模塊的操作方法。
【具體實施方式】
[0041 ] 現在將詳細描述實施例,實施例的示例在附圖中被示出,其中,相似的標號始終表示相似的元件。以下通過參照附圖來描述示例實施例以解釋本公開。
[0042]雖然本公開可進行各種修改并具有若干實施例,但是特定實施例將在附圖中被示出并被詳細解釋。然而,本公開不意圖被限制,而意在各種修改、等同物和替代物也包含在權利要求的范圍內。
[0043]這里使用的術語僅用于解釋特定實施例,因此不意圖進行限制。單數表達包括復數表達,除了這兩種表達在上下文彼此不同之外。這里,術語“包括”或“具有”意圖指示存在說明書中公開的特征、數字、步驟、操作、組件、元件或者它們的組合。相反,術語“包括”或“具有”應被理解為不預先排除存在一個或更多個其它特征、數字、步驟、操作、組件、元件或它們的組合,或者另外的可能性。
[0044]除非被不同地定義,否則這里使用的所有術語(包括技術術語或科學術語)具有與和本公開的領域相關的技術領域的技術人員通常理解的含義相同的含義。與在通用的字典中定義的術語相同的術語應該被理解為術語具有與現有技術的上下文含義相同的含義。并且,只要術語沒有在本公開中被明確定義,術語就不應被解釋為理想化或過于正式的含義。
[0045]在下文中,將參照附圖更詳細地解釋特定實施例。相同的組件或彼此對應的組件將被提供相同的標號,并將省略