2017-04-13 19 views
0

スムーズシェーディングは私のモデルには効果がないようです - ポリゴンは明瞭に見え、three.jsインスペクタのスムーズシェイプとフラットシェーディングの切り替えは効果がありません。 objに頂点の通常のデータがあるので、geometry.computeVertexNormals()を使用する必要はありません。これは、他のいくつかの投稿で提案されているようです。 THREE.WebGLRendererTHREE.SmoothShadingはジオメトリに影響しません

どれリードを使用して

感謝:)これは私のローダ機能である

obj,mtl,img files

var mtlLoader = new THREE.MTLLoader(); 
     mtlLoader.setBaseUrl(pathToLoad); 
     mtlLoader.setPath(pathToLoad);      
     mtlLoader.load('model_mesh.obj.mtl', function (materials) { 
      materials.preload(); 
      var objLoader = new THREE.OBJLoader(); 
      objLoader.setMaterials(materials); 
      objLoader.setPath(pathToLoad); 
      objLoader.load('model_mesh.obj', function (obj) { 
       obj.name = pathToLoad.substring(12, 17); 
       testArray.push(obj); 
       scene.add(obj); 
       loadNextPath(); 
      }); 
     }); 

screenshot, polygons visible

答えて

1

問題は、あなたのモデルであります。これは、「平坦な」頂点の法線を持ちます。

enter image description here

、あなたのモデルを修正したくない場合は、この1のようなパターンを使用することにより、滑らかな頂点法線を再計算することができます

loader.load('model_mesh.obj', function(object) { 

    var mesh = object.children[ 0 ]; 

    mesh.geometry = new THREE.Geometry().fromBufferGeometry(mesh.geometry); 

    mesh.geometry.mergeVertices(); 

    mesh.geometry.computeVertexNormals(); 

    scene.add(object); 

}); 
関連する問題