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效果:

- Case 1效果:

项目源码:matrix-engine项目
恳请各位提供解决建议!
内容的提问来源于stack exchange,提问作者Nikola Lukic
相关产品推荐
相关产品推荐

