2017-08-31 19 views
1

に鏡面反射(輝き)を追加します。私はそれにいくつかの鏡面または光沢を追加したい。三のJS、私はthree.js内のオブジェクトに適用しています質感を持っているテクスチャ

が、私はしかし、この

new THREE.MeshPhongMaterial({ 
    color: 0x996633, 
    specular: 0x050505, 
    shininess: 100 
}); 

ように見える例を参照してください、私のコードは次のようになります。

// texture 
var texture = new THREE.Texture(); 
var imgLoader = new THREE.ImageLoader(manager); 
imgLoader.load('assets/uv.png', function (image) { 
    texture.image = image; 
    texture.needsUpdate = true; 
}); 

// model 
var loader = new THREE.OBJLoader(manager); 
loader.load('assets/obj.obj', function (object) { 
    object.traverse(function (child) { 
     if (child instanceof THREE.Mesh) { 
      child.material.side = THREE.DoubleSide; 
      child.material.map = texture; 
     } 
    }); 
    object.position.y = - 95; 
    scene.add(object); 
}, onProgress, onError); 

私は私はありませんので、どこ輝きや鏡面の設定を追加することを確認していませんTHREE.MeshPhongMaterialを使用して、または私はTHREE.MeshPhongMaterialを使用しなかった場合、どのようTHREE.textureとそれを結合します。

答えて

1

私は、それがロードされるときに、オブジェクトの材料をオーバーライドすることをお勧め。

var loader = new THREE.OBJLoader(manager); 
loader.load('assets/obj.obj', function (object) { 
    object.traverse(function (child) { 
     if (child instanceof THREE.Mesh) { 
      child.material = new THREE.MeshPhongMaterial({ 
       color:  0x996633, 
       specular: 0x050505, 
       shininess: 100, 
       map:  texture, 
       side:  THREE.DoubleSide 
      }); 
     } 
    }); 
    object.position.y = - 95; 
    scene.add(object); 
}, onProgress, onError); 
0

three.js(概要を取得するためにthese examples hereを参照)、すべての動作が異なりますし、構成するために異なるプロパティを使用した材料のかなり多くを提供します。光沢のある外観にしたい場合は、おそらくMeshStandardMaterialまたはMeshPhongMaterialのいずれかになります。このコンクールでは、素材の設定に使用できるプロパティも表示されます。

MeshStandardMaterialは、フォン・材料の新しいバージョンのようなものです。 MeshPhongMaterialは良い近似値ですが、より正確な(物理的に言って)より計算量の多いオプションです。

あなたはおそらく不足している情報の一部は、あなたが好きなように完全に材料を交換する

if (child instanceof THREE.Mesh) { 
    var oldMaterial = child.material; 
    child.material = new THREE.MeshStandardMaterial({ 
     side: THREE.DoubleSide, 
     map: texture 
     // ..if neccesary, copy properties like color from oldMaterial 
    }); 
} 

ようなものになるだろうというあなたの例ではので、あなただけの、材料を置き換えることができるということです。