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

Cesium自定义GLB模型节点旋转时模型扭曲问题排查

问题分析与解决方案

核心模型问题

你的自定义模型旋转后出现扭曲,主要源于以下几点:

  1. 未烘焙缩放变换:在Blender中编辑模型时,节点的缩放操作未应用到网格顶点,导出GLB后节点矩阵携带缩放分量,与Cesium中旋转矩阵叠加时,非均匀缩放会直接导致模型扭曲。
  2. 轴心点未对齐旋转轴:顶部盒子或底部建筑的轴心点不在自身高度轴(Z轴)中心,旋转时绕偏移的轴心运动,视觉上呈现扭曲错位。
  3. 代码旋转轴与需求不匹配:需求是绕Z(高度)轴旋转,但代码中使用Cesium.Matrix3.fromRotationY(绕Y轴旋转),若模型局部轴与Cesium轴对应关系不一致,会加剧问题。

验证与修复步骤

1. 应用模型变换(解决缩放导致的扭曲)

打开Blender中的自定义模型:

  • 选中顶部盒子/底部建筑节点,按N打开属性面板,查看「变换」栏的缩放值,若不是(1,1,1),说明存在未应用的缩放。
  • 按Ctrl+A选择「缩放」,将缩放烘焙到网格顶点。
  • 对所有节点重复操作,确保缩放值均为(1,1,1),重新导出GLB测试。

2. 调整轴心点到模型中心

  • 选中顶部盒子节点,切换到编辑模式(Tab键),按Shift+S选择「游标到选中项中心」。
  • 切回对象模式,按Shift+S选择「原点到游标」,将轴心点移至模型几何中心。
  • 确认轴心局部轴与模型高度方向(Z轴)对齐。

3. 修正代码旋转轴逻辑

如果需求是绕Z(高度)轴旋转,将代码中的旋转矩阵改为:

const rotation = Cesium.Matrix3.fromRotationZ(angleRad);

(第三方模型正常可能是因为其局部Y轴恰好为高度方向,与你的自定义模型轴方向不一致)

补充说明

当建筑垂直面尺寸一致时,均匀缩放与旋转的叠加不会明显扭曲模型;但修改尺寸后变为非均匀缩放,缩放与旋转的复合计算就会触发扭曲——这和你观察到的现象完全吻合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:01:28