簡體   English   中英

SceneKit –幾何穿透

[英]SceneKit – Geometry penetration

我將3D模型導入ScenekKit,然后更改肢體的Euler角度並讓肢體執行動作。 但是,這時衣服和四肢會滲透。 我該如何處理這種情況?

在此處輸入圖片說明

我認為您必須使用continuousCollisionDetectionThreshold實例屬性。 該值為您提供了人體必須經過的最小距離,以便SceneKit應用更精確的算法(但會花費更多的CPU / GPU)來檢測與其他物體的接觸。

var continuousCollisionDetectionThreshold: CGFloat { get set }

SceneKit的物理引擎可以采用兩種碰撞檢測

  • 通過discrete collision檢測,當SceneKit在渲染每一幀之前模擬物理過程時(請參見timeStepSCNSceneRendererDelegate ),它將根據該時間間隔內物體的速度來更新每個物理物體的位置,然后檢查該物體在其新位置是否相交其他身體。

  • 通過continuous collision檢測,SceneKit會計算物體在每一幀中要遍歷的體積,然后檢查該體積是否與其他物體相交。 此屬性的值defaults to 0.0 ,從而始終導致離散沖突檢測。 當此值不為零時,只要身體在timeStep內行進超過指定距離,SceneKit就會應用連續碰撞。

離散碰撞檢測可提供高性能,但對於小型快速移動的物體可能會導致結果不准確。 連續碰撞檢測具有性能成本,並且僅適用於球形物理形狀,但可以提供更准確的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM