繁体   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