Gần đây tôi đã thử Three.js và tôi đã sử dụng addon xuất khẩu cho Blender để thử tạo mô hình trong máy xay sinh tố và xuất khẩu để tôi có thể sử dụng chúng trong ba .js.Lỗi mẫu thiết bị máy xay JSONLoader Three.js: thuộc tính 'length' undefined
Tôi đã thêm phần bổ sung vào máy xay sinh tố và chỉ sử dụng mô hình khối cơ bản của máy xay sinh tố, xuất nó sang .json như nhà xuất khẩu nói. Sau đó, tôi nhập khẩu các mô hình thành three.js tôi sử dụng điều này như một guide nhưng điều đó đã cho tôi một lỗi:
Uncaught TypeError: Cannot read property 'length' of undefined.
Ive đã tìm kiếm trực tuyến và thử một vài phương pháp khác nhau (như trong đó có một vật liệu trong các cuộc gọi chức năng bộ tải) nhưng không có gì có vẻ hiệu quả.
Tôi cũng đã kiểm tra stackoverflow cho câu trả lời nhưng cho đến nay không có gì có vẻ được giải quyết. Nếu bất cứ ai sẽ làm rõ những gì im làm sai tôi sẽ rất biết ơn.
mã cho chương trình three.js
tôi:
var WIDTH = 1000,
HEIGHT = 1000;
var VIEW_ANGLE = 45,
ASPECT = WIDTH/HEIGHT,
NEAR = 0.1,
FAR = 10000;
var radius = 50,
segments = 16,
rings = 16;
var sphereMaterial =
new THREE.MeshLambertMaterial(
{
color: 0xCCCCCC
});
var sphere = new THREE.Mesh(
new THREE.SphereGeometry(
radius,
segments,
rings),
sphereMaterial);
var pointLight =
new THREE.PointLight(0x660000);
var $container = $('#container');
var renderer = new THREE.WebGLRenderer();
var camera =
new THREE.PerspectiveCamera(
VIEW_ANGLE,
ASPECT,
NEAR,
FAR);
var scene = new THREE.Scene();
var loader = new THREE.JSONLoader(); // init the loader util
scene.add(camera);
pointLight.position.x = 10;
pointLight.position.y = 50;
pointLight.position.z = 130;
scene.add(pointLight);
camera.position.z = 300;
renderer.setSize(WIDTH, HEIGHT);
$container.append(renderer.domElement);
window.requestAnimFrame = (function() {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function (callback) {
window.setTimeout(callback, 1000/60);
};
})();
loader.load('test.json', function (geometry, materials) {
var material = new THREE.MeshFaceMaterial(materials);
var object = new THREE.Mesh(geometry, material);
scene.add(object);
});
(function animloop() {
requestAnimFrame(animloop);
renderer.render(scene, camera);
})();
Làm thế nào tôi có thể gỡ lỗi? –