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

Cannonjs四元数转GLMatrix旋转模型视图:fromQuat方法失效求助

Cannon.js四元数转glMatrix模型视图矩阵问题

我正在使用glmatrix 3.4.0版本,在将Cannonjs中的四元数转换为GLMatrix的旋转模型视图矩阵时遇到问题,尝试了多种方式但效果不佳,具体代码如下:

mat4.identity(object.mvMatrix);
this.mvPushMatrix(object.mvMatrix, this.mvMatrixStack);

mat4.translate(object.mvMatrix, object.mvMatrix, object.position.worldLocation);

// case 0: Nor perfect
// I use local.physics.currentBody.quaternion.toAxisAngle()[0] AXIS
// local.physics.currentBody.quaternion.toAxisAngle()[1] ANGLE

// var t = vec3.fromValues(object.rotation.axis.x,object.rotation.axis.z, object.rotation.axis.y);
// mat4.rotate(object.mvMatrix, object.mvMatrix, (object.rotation.angle), t);

// case 1: BAD
var QP =object.physics.currentBody.quaternion;
var QUAT = quat.fromValues(QP.x, QP.y, QP.z, QP.w)
mat4.fromQuat(object.mvMatrix, QUAT)

// case 3: not perfect
// mat4.fromRotation(
//   object.mvMatrix,
//   (object.rotation.angle),
//   vec3.create(object.rotation.axis.x, object.rotation.axis.y, object.rotation.axis.z));

各方案效果说明:

  • Case 0与Case 3:效果不理想
  • Case 1:出现异常,所有物体似乎都指向原点,相机也无法正常工作

效果截图:

  • Case 0、2效果:enter image description here
  • Case 1效果:case 1  very strange fixed no camera works also - look like all pointed at 0,0,0 position

项目源码:matrix-engine项目

恳请各位提供解决建议!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:52:19