You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整QtQuick3D View3D中导入模型的旋转轴?

解决方案

临时修复:通过父子节点层级调整旋转中心

QtQuick3D中所有变换(旋转、缩放)都是基于节点的本地坐标系原点。你的骰子模型枢轴偏移,最快的解决方式是用一个父Node包裹Model:

  1. 将Model的position设置为反向偏移值(比如你的Z轴偏移了10,就设z: -10),把模型拉回父节点的原点;
  2. 所有旋转动画直接作用在父Node上,此时旋转中心就是模型的几何中心。

修改后的核心代码片段:

Node {
    id: diceRoot // 父节点,用来做旋转操作
    position: Qt.vector3d(20, 20, 20) // 原来Model的位置移到父节点
    
    Model {
        id: _diceModel
        source: "/assets/assets/dice_001.mesh"
        materials: [_priDiceMaterial]
        eulerRotation: Qt.vector3d(0, 0, 0)
        position: Qt.vector3d(0, 0, -10) // 抵消Z轴的枢轴偏移
        AxisHelper {}
    }
}

之后给diceRoot添加旋转动画即可,示例:

NumberAnimation on eulerRotation.y {
    from: 0
    to: 360
    duration: 2000
    loops: Animation.Infinite
}

从源头上解决:调整导入设置

Balsam Asset Import Tool中,取消勾选fbxPreservePivots选项,同时勾选将枢轴重置到几何中心的相关选项(不同版本可能叫Center Mesh或Reset Pivot to Bounding Box Center)。这样导入后的.mesh文件会自动把旋转轴设置在模型中心,无需手动调整偏移。

关于模型文件的说明

  • FBX格式确实会存储模型的**枢轴(Pivot)**信息,也就是旋转/缩放的中心点,这个信息会被导入工具继承到.mesh文件中;
  • 如果原FBX模型的枢轴不在几何中心,导入后的.mesh也会保留这个偏移,这就是你看到旋转轴偏离的原因。

内容的提问来源于stack exchange,提问作者fever

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:05:53