2016-04-02 4 views
-1

この問題の解決策はありますか?材料定義をMeshPhoneからMeshLambertに変更した場合、すべてが期待どおりに機能します。そうでなければ、(しかし、一部のコンピュータでのみ、私の開発マシンはうまく動作します)。これがロードされる場所ThreeJS MeshPhongMaterialが黒をレンダリングします(MeshLambertMaterialが正しく描画されます)

http://peppr-configurator.herokuapp.com/#/

関数 'MaterialConfService' の 'loadDefaultMaterialForObjectは' です。

var threeMaterial = new THREE.MeshPhongMaterial({ 
    specular: material.properties.specular, 
    emissive: material.properties.emissive, 
    shininess: material.properties.shininess, 
}); 

「MeshLambertMaterialの作品は「MeshPhongMaterial」をスワップアウトが、私はハイライトのためのフォンを必要としています。

誰かがここで何が起こっているかもしれない手がかりを持っていますか?

+1

を参照してください。また、どのように私たちがミニコードをデバッグすると思いますか? – gaitat

+0

私の謝罪。私は未完成のソースコードを含むバージョンをアップロードしました(すべてを1つのファイルに入れました)。 560行目の 'MaterialConfService'では、マテリアルを構築します。私が 'MeshLambertMaterial'のために 'MeshPhongMaterial'を交換すると、すべてが期待通りに機能します。今、すべてが黒くレンダリングされます。 –

+0

それは、それが黒をレンダリングするマシンで何らかのエラーを出すのですか? – leota

答えて

3

は、エラーを再現することができませんでしたが、私はここに開始する:

影を落としてエラーに

の原因となることができませんTHREE.PointLight
var pLight = new THREE.PointLight(0xffffff,0.25); 
    //pLight.castShadow = true; 
    pLight.position.set(50,100,50); 
    _this.scene.add(pLight); 

    var pLight02 = new THREE.PointLight(0xefeeeee,0.2); 
    //pLight02.castShadow = true; 
    pLight02.position.set(-50,100,50); 
    _this.scene.add(pLight02); 

    var pLight03 = new THREE.PointLight(0xffffff,0.2); 
    //pLight03.castShadow = true; 
    pLight03.position.set(0,75,-75); 
    _this.scene.add(pLight03); 

はlight.castShadow =真をコメントアウトしてみ

詳細については、https://github.com/mrdoob/three.js/issues/1192

+0

ありがとうございます。今晩これを調べます! –

関連する問題