2013-07-25 113 views
0

我是新手,我想我錯過了一些東西。
有人可以檢查嗎?
HTML頁面:http://xalien95.altervista.org/pkmnxy_engine/alisopoli.html
模型和紋理:http://xalien95.altervista.org/pkmnxy_engine/alisopoli/
我可以看到模型(用怪異的顏色),而不是紋理(它與多種材料網狀)。

提前感謝!用JSONloader加載紋理

編輯: 我與所有的材料類型的嘗試:

  • THREE.MeshBasicMaterial
  • THREE.MeshDepthMaterial
  • THREE.MeshLambertMaterial
  • THREE.MeshNormalMaterial
  • THREE.MeshPhongMaterial

但是沒有人工作,所以我認爲我錯過了一些東西(或者材料路徑不同)。 這裏的腳本:

var camera, scene, renderer, mesh, loader; 

     init(); 
     animate(); 

     function init() { 

      camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 1, 10000); 
      camera.position.z = 1000; 

      scene = new THREE.Scene(); 

      loader = new THREE.JSONLoader(); 

      loader.load("./alisopoli/alisopoli.js", function(geometry, materials) { 
       var faceMaterial = new THREE.MeshPhongMaterial(materials); 
       mesh = new THREE.Mesh(geometry, faceMaterial); 
       mesh.scale.set(100, 100, 100); 
       mesh.position.y = -150; 
       mesh.position.x = 0; 
       mesh.rotation.x = 60; 
       scene.add(mesh); 
      }); 


      var ambientLight = new THREE.AmbientLight(0x555555); 
      scene.add(ambientLight); 

      //var directionalLight = new THREE.DirectionalLight(0xffffff); 
      //directionalLight.position.set(1, 1, 1).normalize(); 
      //scene.add(directionalLight); 

      renderer = new THREE.WebGLRenderer(); 
      renderer.setSize(window.innerWidth, window.innerHeight); 

      document.body.appendChild(renderer.domElement); 

     } 

     function animate() { 

      requestAnimationFrame(animate); 

      //mesh.rotation.y += 0.005; 

      renderer.render(scene, camera); 
     } 

提前感謝!

+0

'var faceMaterial = new THREE.MeshFaceMaterial(materials);'此外,出口商似乎已經分配了一個'lightMap'給每個材質。將它們設置爲'null'。如果你仍然有問題,從一個更簡單的項目開始,直到你得到它的工作。嘗試提出有助於他人的問題。 – WestLangley

+0

@WestLangley謝謝!有用! 現在我遇到了THREE.DoubleSide和紋理的alpha通道問題。我試圖添加 'faceMaterial.side = THREE.DoubleSide;' 但它不起作用。 再次感謝你:) – xAlien95

回答

0

怪異的顏色,因爲要分配的加載過程中的每一個網格「MeshNormalMaterial」。你應該檢查three.js的json加載器的例子或以某種方式得到正確的材料,而不是分配MeshNormalMaterials到子網格

+0

我不知道如何進行;我試圖在其他示例中的搜索和本人得到這個'變種材料=新THREE.MeshPhongMaterial({地圖:THREE.ImageUtils.loadTexture( '1.png'),環境:0x999999,顏色:0XFFFFFF,鏡面:0XFFFFFF,反光:25 ,morphTargets:true});'。 我該怎麼辦? 感謝您的快速回復 – xAlien95