【问题标题】:three.js - Uncaught TypeError: Cannot read property 'x' of undefinedthree.js - 未捕获的类型错误:无法读取未定义的属性“x”
【发布时间】:2012-10-01 22:49:01
【问题描述】:

我在 github 上找到了参考代码以及关于 stackoverflow 上的对象旋转的其他问题。

var vector = new THREE.Vector3( 1, 0, 0 );
        var axis = new THREE.Vector3( 1, 0, 0 ).normalize();
        var angle = Math.PI / 2;                

        function rotateAroundWorldAxis(object, axis, angle) {                                               
            var matrix = new THREE.Matrix4().makeRotationAxis( axis, angle );
            matrix.multiplyVector3( vector );
            object.matrix = matrix;
            object.rotation.setEulerFromRotationMatrix(object.matrix);
        }

        function render() {                     
            rotateAroundWorldAxis(tubeMesh, axis, angle);
            renderer.render( scene, camera );
        }

我无法弄清楚错误“Uncaught TypeError: Cannot read property 'x' of undefined”的原因可能是什么。 在谷歌浏览器中显示为

  • 未捕获的类型错误:无法在三分钟 js:56 处读取未定义的属性“x”
  • THREE.Matrix4.makeRotationAxis at three.min.js:56
  • rotateAroundWorldAxis at my_model.htm:290
  • 在 my_model.htm:297 处渲染
  • 动画

错误在three.min.js 的第 1 行。 56. 我正在使用 r51 of three.js 库。

【问题讨论】:

  • 嗨。不确定你现在是否已经解决了,但你可能想尝试使用 ThreeJS 的未压缩版本(即 three.js 而不是 three.min.js )。然后你可以准确地看到错误发生在哪里,以及它试图做什么。我自己最近也遇到了同样的错误,但我认为这与从 Blender 导出的模型中的顶点组分配给不再存在的骨骼有关。我删除并重新创建了我的顶点组,它解决了问题。

标签: three.js


【解决方案1】:

如果我们遇到同样的问题(three.js 试图读入 uv-mapping 数组),您可以通过以下方式解决:

UV-mapping(在搅拌机中)添加到您的模型中。
它基本上需要:

  1. 在对象上标记接缝。
  2. 展开模型。
  3. 在启用 UV 的情况下导出模型。

对于第 1 步和第 2 步,您可以按照this 很好的演练。
(注意:除了文章中的步骤,在我的版本(2.59)中,我必须先创建材质和纹理。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-24
    • 2020-11-26
    • 2014-01-28
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2015-01-06
    相关资源
    最近更新 更多