2013-04-09 11 views
2

Я пытаюсь загрузить файл obj с помощью OBJloader.js Я пытаюсь загрузить файл «plane.obj», который существует внутри той же папки, где существуют файлы html, и «OBJLoader .js "также существует в одной папке.Three.js OBJLoader не загружает файл obj

Страница ничего не отображается.

Вот код:

var scene = new THREE.Scene(); 
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); 
var geometry = new THREE.CubeGeometry(1,1,1); 
var material = new THREE.MeshBasicMaterial({color: 0x00ff00}); 
var cube = new THREE.Mesh(geometry, material); scene.add(cube); camera.position.z = 5; 
function render() { 
    requestAnimationFrame(render); 
    cube.rotation.x += 0.01; 
    cube.rotation.y += 0.01; 
    renderer.render(scene, camera); 
} 
var texture = THREE.ImageUtils.loadTexture('tex.jpg'); 
var loader = new THREE.OBJLoader(); 
loader.load('plane.obj', function (object) { 
    scene.add(object); 
}); 
render(); 
+0

Неверная ошибка в консоли? – mrdoob

+0

Можете ли вы убедиться, что plane.obj загружается с другим зрителем? Также вы можете удалить куб из сцены. Если plane.obj слишком мал, он может падать внутри куба и потребовать некоторый масштабный коэффициент. – gaitat

+0

Спасибо Mrdoob и Gaitat. Я проверил консольную ошибку, и ее «запросы на кросс-начало поддерживаются только для HTTP». Я думаю, что мне придется запускать эту страницу с сервера (http: // localhost и т. Д.). – user2259784

ответ

0

Это, вероятно, вызвано пытается загрузить ресурс из файловой системы. Вероятно, вы получаете одинаковое нарушение безопасности политики происхождения и должны обслуживать свою страницу и ресурсы из того же протокола, домена и порта. Есть несколько простых способов сделать это - я использую простое приложение для http-сервера через Node JS. проверьте How to run things locally для получения дополнительных возможностей.

0

Ну, это оказалось для меня причиной отсутствия света на сцене. Кроме того, неправильное положение камеры также может привести к «невидимым» OBJ-моделям. Попробуйте добавить следующие строки:

var ambientLight = new THREE.AmbientLight(0xffffff); 
scene.add(ambientLight); 
Смежные вопросы