gpt4 book ai didi

swift - 从 .dae 转换后 .scn 模型旋转 90 度

转载 作者:行者123 更新时间:2023-11-28 06:05:09 24 4
gpt4 key购买 nike

我在 Xcode 中打开了一个 .dae 以在 SceneKit 中显示它。一切正常。

为了添加一些节点,我使用 Xcode 将其自动转换为 .scn 格式。

但是,当我现在运行应用程序时,模型旋转了 90 度,这可能是因为 y 轴的方向不同。

是否有解决此问题的选项,无需手动将所有内容旋转 90 度?

当然,我可以将 XZY 设置为 270 度的 Euler angle。然而,这不是一个干净的解决方案,因为我还必须为我对模型所做的任何操作调整参数。有没有办法将这个 270 度设置为新的默认值 = 0 度?

最佳答案

rotationeulerAnglesorientation 属性 – 都会影响节点变换属性的旋转方面。对其中一个属性的任何更改都会反射(reflect)在其他属性中。

var rotation: SCNVector4 { get set }
var eulerAngles: SCNVector3 { get set }
var orientation: SCNQuaternion { get set }

尝试更改向量中的组件 (xyz) 的顺序匹配 (eulerAngles) 旋转轴。对于 macOS xyz 字段是 CGFloat 类型,对于 iOS 它们是 Float 类型。

此向量中分量的顺序与旋转轴匹配:

  1. Pitch(X 分量)是围绕节点的X 轴 的旋转。

  2. Yaw(Y 分量)是围绕节点的Y 轴 的旋转。

  3. Roll(Z 分量)是围绕节点的Z 轴 的旋转。

SceneKit 相对于节点的枢轴属性以组件的相反顺序应用这些旋转:

  1. 第一个Roll
  2. 然后偏航,
  3. 然后推介

最好的解决方案是在 3D 包中使用 ZYX 旋转顺序 准备您的 3D 模型。

关于swift - 从 .dae 转换后 .scn 模型旋转 90 度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48444705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com