久久精品人妻一区国产传媒国产精品|51黑料吃瓜网在线观看色噜噜色偷偷30根|久久久久久久久国产在亚洲中文字幕人妻|91av福利china人妻91九色|国语精品视频自产自拍|色婷婷av一区二区三区久久|国产91丝袜在线|亚洲二区中文字幕|91久久精品中文内射|中文 欧美 日韩,3d色噜噜狠狠一区二区三区,国产精品福利99,国产精品传媒网站

Unity2022.1擴展機器人工具箱優(yōu)化

文章來源: 作者:frank 發(fā)布時間:2022年05月13日 點擊數(shù): 次

Unity2022.1版本中Unity對其機器人工具箱進行了多項優(yōu)化并對諸多功能進行了改進以提升性能,。這些優(yōu)化包括:

使用新的逆動力學力傳感器工具模擬復雜的環(huán)境的機器人感知,;

通過完全改進的Physics Debugger探索動力學;

利用插值,、批處理查詢等方面的性能改進,。

下面讓我們來依次了解一下此次Unity都優(yōu)化了一些什么內(nèi)容。

Physics Debugger優(yōu)化

Physics Debugger是理解物理引擎內(nèi)部工作方式以及理解項目中觀察到的特定行為的重要工具,。一個好的Debugger是創(chuàng)作令人信服的且符合物理學原理項目的關鍵工具,。因此Unity徹底改造了Physics Debugger的用戶界面,并添加了一些有趣的新功能,。

為了在同一個空間中容納更多的信息,,在新版本中將屬性選項添加到選項卡中,并在其中添加了許多新的選項,。

以前,,在Debugger中剛體和關節(jié)體組件都有可展開的“Info”選項卡,用戶可以將其展開來查看附加信息,,如當前的線速度,。然而,展開“Info”部分后,,編輯器的整體性能就會顯著下降,。此外,,以前比較不同幾何體的參數(shù)很復雜,用戶需要打開兩個檢查器面板,。為了解決這一問題,,Unity將所有屬性移到了Physics Debugger窗口的“Info”選項卡中,窗口中顯示了每個選定對象的屬性,,用戶現(xiàn)在可以輕松地并排比較它們。

現(xiàn)在,,在調(diào)試器中可以在法線和分離距離交匯處旁顯示接觸點,。

Physics queries:如Physics.Raycast或Physics.CastSphere通常支持自定義,如自定義角色控制器或車輛控制器,。再過去的版本中它們是不可見的,因此調(diào)試起來很棘手,。為了解決這個問題,,Unity2022.1版本提供了Physics queries可視化功能,。

逆動力學

到目前為止,,Unity擁有的工具只支持正向動力學,,即,,給定一組物體和施加在物體上的力,以此計算物體的移動軌跡,。這一功能非常實用,,通過此次擴展機器人工具箱。Unity 2022.1中全新增加了對逆向動力學的支持,,即,,給定一個物體和軌跡,在模擬時計算導致該該物體沿軌跡移動所受的力,。

具體而言,,新功能包括:

獲得由驅(qū)動器施加到物體上的當前力。能明確顯示出驅(qū)動器為達到目標付出了多大力,。該力的大小取決于驅(qū)動器的剛度和阻尼,,以及當前的增量目標位置和增量目標速度;

獲得所需的合力來抵消重力,,對抗力和作用在物體上的離心力

獲得 joint force需要達到期望值的加速度,。

Interpolation與Extrapolation

當以相對較低的頻率進行模擬時剛體會用Interpolation與Extrapolation的形式來給人一種平滑運動的印象。這是通過計算每次更新的變換姿態(tài)來實現(xiàn)的,。在Interpolation的情況下,,最后兩個模擬姿態(tài)會被用于計算該幀新的變換姿態(tài)。在Extrapolation的情況下,,將會使用最后模擬的姿態(tài)和速度。但是,,Unity并沒有把這些姿態(tài)反饋給物理引擎,。姿態(tài)僅為系統(tǒng)提供圖形和動畫。因此,,Raycast不會檢測到Interpolation姿態(tài)的物體,。

為了避免在轉換模式過程中出現(xiàn)物理學問題,整個機制必須完全遵循物理學原理,。在內(nèi)部法則調(diào)用后,,SyncTransforms會在姿態(tài)寫入之前調(diào)用每個更新權限,以清除所有變換更新,。這就導致了兩類問題:

如果場景中至少有一個Interpolation物體,,所有物理組件的所有變換變化在每次更新時都會與物理引擎同步(即使它們在每次更新時都需要同步一次);

如果對具有帶Interpolation的剛體組件的變換進行了更改,,則該對象的Interpolation會中斷,,因為用戶進行的變換更改會傳播到physics engine,并更改最后一個模擬的姿態(tài)(姿態(tài)不會單獨存儲,,只是物理引擎當前使用的姿態(tài)),。

為了解決這些問題,Unity更新了Interpolation的代碼,,這樣就不需要同步每幀的所有變換,。該優(yōu)化進一步提高了性能;新的Interpolation代碼比以前運行更快(取決于場景的復雜性),。

處理論壇上的反饋

論壇致力于討論physics tech的各種實驗預覽,,在Unity 2022.1版本中將實現(xiàn)的一些優(yōu)化:

在許多項目中,尤其是大型項目,,經(jīng)常使用許多GameObject layers,,因此描述層組合和產(chǎn)生物理接觸對的矩陣也會變得相當大。在Unity 2022.1版本中,,突出顯示了當前選定的行和列,,這讓使用更加方便。

Joint用于連接兩個剛體,,并定義它們相對運動的約束,。從Unity 2020.2開始,Joint也可以用于將剛體鏈接到關節(jié)體,。為了實現(xiàn)這一點,,每Joint類都擁有了一個附加屬性,,這在檢查器中能夠看到。同時鏈接到剛體和關節(jié)體是不可能的,,所以當一個選項已經(jīng)被設置時,,同時顯示這兩個選項會占用垂直空間。在新版本中將會只顯示已設置的屬性從而節(jié)省空間,。

運動學剛體是一種特殊類型的物體,,它可以影響其他物體,但不會讓其他物體影響自己,,除非其被頻繁移動,。因此,它類似于一個static collider,。運動學剛體的典型的用例是角色控制器,、物理動畫驅(qū)動以及對于手腕運動的虛擬現(xiàn)實模擬等。這是通過設置一個運動目標來控制的,,物體將在一個模擬幀中達到該運動學目標,。這里與static collider的主要區(qū)別在于,運動學目標不是通過瞬間瞬移(改變姿態(tài))達到目的,,而是通過計算一幀內(nèi)達到目標所需的線速度和角速度,,并在事后將數(shù)據(jù)傳遞給求解器。通過這種方式,,可以有助于正確地實現(xiàn)約束雅可比矩陣,,因此任何附加的jointchain都將正確地做出反應(沒有故障)。在Unity2022.1版本中,,Unity公開了一個新方法可以實現(xiàn)在一次操作中設置運動學目標的位置和旋轉,。

Unity 2021.2中引入的Contact modification功能可以在Contact Point details被用于為求解器創(chuàng)建contact constraints之前更改由narrow phase生成的Contact?Point details。在Unity 2022.1版本中,,開發(fā)團隊為接觸對中的物體速度添加了新的getters,。

PhysX版本目前已經(jīng)更新到了4.1.2,這是迄今為止4.x系列中的全新版本,。但這是一個小版本,,只能解決關鍵的錯誤和崩潰。

當一個動態(tài)物體與一個collider重疊時,,求解器的目標是找到corrective impulse,,在滿足所有約束的同時將它們分開。在內(nèi)部,,此impulse是針對一對接觸點中的每個接觸點單獨計算的,,但是之前版本的Unity只有一個返回所有點總和的總值。隨著新版本的發(fā)布,Unity將公開接觸點的一個新屬性,,允許檢索每個接觸點的impulses的結構,。

Physics批處理查詢功能,可直接用于支持某些用例,,但目前功能不多,。此功能還在繼續(xù)發(fā)展,新版本的Physics批處理查詢功能支持更多的用例,,比如具有更復雜的線程模式的用例,,查詢的類型也更加多樣化。Unity2022.1版本添加了一個新的批處理查詢類型(Physics.ClosestPointCommand),,并支持在任何物理場景中運行批處理查詢。