74d2f6cdaa5e13a052248c318d1ae4e65af42f7c
glm::eulerAngles 假定 XYZ 系约定,与 TransformComponent::Compose 的 YXZ 旋转序不一致:复合旋转下(如 Dynamic 实体被物理写入非零姿态) decompose 出的角度按错误序重组 → 写回的 R ≠ 拖拽时的 R → 下一帧 Manipulate 拿到歪矩阵 → 旋转乱跳、缩放串轴。 改为按引擎 YXZ 序(R = Ry·Rx·Rz)从旋转矩阵直接提取欧拉角: - 常规区:atan2 分子分母 cx 约掉,pitch 任意角精确(含 ±90° 邻域) - float 真奇异(|pitch|=90°):组合角归 yaw、roll=0(UE 同策略), ±90° 两支 atan2 符号不同 验证(round-trip 1e4 样本,矩阵 Frobenius 差判据): - 欧拉链 2.67e-04、全 SRT 链 3.56e-04(float32 极限) - 万向锁邻域专项覆盖
Description
No description provided
5.6 MiB
Languages
C++
56.3%
C
41.6%
GLSL
1.8%
CMake
0.3%