【问题标题】:threejs blend json export + Cannot read property 'type' of undefinedthreejs混合json导出+无法读取未定义的属性“类型”
【发布时间】:2015-09-11 17:17:12
【问题描述】:

当您打开一个新项目时,我尝试在 Chrome 浏览器中呈现 Blender v2.74 加载的默认 3D 立方体模板。 我使用threejs v1.4.0 附加组件将其导出为json。 我正在使用 Three.js 修订版 71。

参考以下文档,我尝试加载当前存储在数据库中的这个 json 模型。 (http://threejs.org/docs/#Reference/Loaders/JSONLoader)

一切似乎都很好,但它失败并出现以下错误:

未捕获的类型错误:无法读取未定义的属性“属性”

未捕获的类型错误:无法读取未定义的属性“透明”

生成的json是:

{
    "faces": [33,0,1,2,3,0,1,2,3,33,4,7,6,5,4,5,6,7,33,0,4,5,1,0,4,7,1,33,1,5,6,2,1,7,6,2,33,2,6,7,3,2,6,5,3,33,4,0,3,7,4,0,3,5],
    "name": "CubeGeometry",
    "metadata": {
        "faces": 6,
        "uvs": 0,
        "normals": 8,
        "type": "Geometry",
        "vertices": 8,
        "generator": "io_three",
        "version": 3
    },
    "normals": [0.577349,-0.577349,-0.577349,0.577349,-0.577349,0.577349,-0.577349,-0.577349,0.577349,-0.577349,-0.577349,-0.577349,0.577349,0.577349,-0.577349,-0.577349,0.577349,-0.577349,-0.577349,0.577349,0.577349,0.577349,0.577349,0.577349],
    "vertices": [1,-1,-1,1,-1,1,-1,-1,1,-1,-1,-1,1,1,-1,0.999999,1,1,-1,1,1,-1,1,-1],
    "uvs": []
}

用于加载 json 的代码是:

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

camera.position.z = 5;

// instantiate a loader
var loader = new THREE.JSONLoader();

// load a resource
loader.load(
    // resource URL
   $scope.parentScope.apiRootUrl + "/" + $scope.selectedItem.model3D,
    // Function when resource is loaded
    function (geometry, materials) {
        var material = new THREE.MeshFaceMaterial(materials);
        var object = new THREE.Mesh(geometry, material);
        scene.add(object);
    }
);

var render = function () {
    requestAnimationFrame(render);

    renderer.render(scene, camera);
};

render();

【问题讨论】:

    标签: javascript json 3d three.js blender


    【解决方案1】:

    您的 JSON 模型在您的 init() 方法之后正确加载,并且当 window.requestAnimationFrame( update ) 被调用时,它得到更新并且您的错误消失了。

    【讨论】:

    • 感谢您的反馈,我可能错过了一些东西。不确定您在说哪个 init()。
    • 我刚刚添加了 json 和我使用的 javascript 代码。
    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 2021-09-26
    • 2019-06-03
    相关资源
    最近更新 更多