2016-03-20 2 views
0

Так что я пытаюсь получить JSONLoader работать с threejs.orgКопировать/вставить JsonLoader из Threejs.org не работает

Three.js работает точно, потому что у меня нет никакой проблемы, создавая куб. Но когда я пытаюсь загрузить js-файл throuh JSONLoader, ничего не происходит.

<html> 
    <head> 
     <title>My first Three.js app</title> 
     <style> 
      body { margin: 0; } 
      canvas { width: 100%; height: 100% } 
     </style> 
    </head> 
    <body> 
     <script src="three.js"></script> 
     <script> 
      var scene = new THREE.Scene(); 
      var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000); 

      var renderer = new THREE.WebGLRenderer({ alpha: true }); 
      renderer.setSize(window.innerWidth, window.innerHeight); 
      document.body.appendChild(renderer.domElement); 

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

      // load a resource 
      loader.load(
       // resource URL 
       'logo.js', 
       // Function when resource is loaded 
       function (geometry, materials) { 
        var material = new THREE.MultiMaterial(materials); 
        var object = new THREE.Mesh(geometry, material); 
        scene.add(object); 
       } 
      ); 

      camera.position.z = 5; 

      var render = function() { 
       renderer.setClearColor(0x000000, 0); 
       requestAnimationFrame(render); 
       renderer.render(scene, camera); 
      }; 

      render(); 
     </script> 
    </body> 
</html> 

Как уже упоминалось в названии, код является копией, вставленной с собственного веб-сайта threejs и должен работать.

Может кто-нибудь помочь мне понять, что происходит не так?

здесь скрипку со сценарием logo.js https://jsfiddle.net/380z6096/

объект был экспортируемой из 3ds Max с 3ds Max JSExporter

Я использую XAMPP и хром.

+0

(1) Установить прозрачный цвет вне цикла визуализации. (2) Установите «alpha: true» только в том случае, если вам нужен прозрачный фон для вашей сцены. – WestLangley

+0

Извините, ничего не изменил. и я хочу, чтобы фон был прозрачным. – Nulle

ответ

0

Ваша камера находится внутри вашей геометрии.

Вы можете определить размеры вашей геометрии, как так

geometry.computeBoundingSphere(); 
console.log(geometry.boundingSphere); 

или

geometry.computeBoundingBox(); 
console.log(geometry.boundingBox); 

Шкала вашей геометрию

object.scale.multiplyScalar(0.01); 

Или переместить камеру назад.

three.js r.75

+0

Можете ли вы снять его с другого нориха для новичка? Где я должен поставить свою камеру, если не там, где она сейчас? – Nulle

+1

(1) Камера должна находиться вне геометрии. (2) Ваша модель птицы в порядке. (3) Материал, загруженный из модели, является «MeshLambertMaterial», для которого требуются огни сцены. У вас их нет, поэтому модель чернет на черном фоне. – WestLangley

+0

Да, он не работает, и я вроде бы отказался от этой темы. – Nulle