2015-01-08 79 views
0

我有以下three.js所代碼:TextGeometry不顯示,有誰能告訴我爲什麼?

<html> 
    <head> 
     <title>My first Three.js app</title> 
     <style> 
      body { margin: 0; } 
      canvas { width: 100%; height: 100% } 
     </style> 
    </head> 
    <body> 
     <script src="js/three.min.js"></script> 
     <script src="js/optimer_regular.typeface.js"></script> 
     <script> 
      //Basic Three components 
      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); 
      //Let´s add a cube 
      var geometry = new THREE.BoxGeometry(1, 1, 1); 
      var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); 
      var cube = new THREE.Mesh(geometry, material); 
      scene.add(cube); 

      camera.position.z = 5; 
      //Let´s add a text 
      var material2 = new THREE.MeshPhongMaterial({ 
       color: 0x00ff00 
      }); 
      var textGeom = new THREE.TextGeometry('Sitescope', { 
       font: 'optimer', 
       weight: 'normal' 
      }); 
      var textMesh = new THREE.Mesh(textGeom, material2); 
      scene.add(textMesh); 
      //Render scene 
      function render() { 
       requestAnimationFrame(render); 
       cube.rotation.x += 0.01; 
       cube.rotation.y += 0.01; 
       renderer.render(scene, camera); 
      } 
      render(); 
     </script> 
    </body> 

,當我運行我的代碼,我的立方體呈現很好,但我的文字沒有出現在任何地方。 我在javascript控制檯中得到的唯一輸出是: THREE.WebGLRenderer 69.

任何人都可以告訴我爲什麼我的文本不會出現? (我是Three.js的初學者)謝謝!

回答

0

當使用THREE.MeshPhongMaterial()時,您需要場景中的燈光。否則模型會變黑。如果你的場景背景也是黑色的,你永遠不會知道模型是否被繪製。看看這個fiddle。我正在使用THREE.MeshNormalMaterial()。用PhongMaterial替換它來查看我在說什麼。您可以看到正在用黑色繪製文字,因爲它位於綠色立方體的上方。

+0

感謝您的回答gaitat,我用THREE.MeshNormalMaterial()替換了THREE.MeshPhongMaterial(),就像您在小提琴中所做的一樣,但我的文本尚未顯示。我究竟做錯了什麼? –

+0

你的代碼與小提琴有什麼不同?新小提琴http://jsfiddle.net/264jawhe/1/ – gaitat

+0

我注意到,不同之處在於camera.position.set參數。當我使用你的值,那麼文本顯示,但不是多維數據集。 –

相關問題