0
由於其伴隨的.mtl文件,我已經成功加載了一個帶有正確材質的.obj模型映射到模型。但目前裝載的模型非常黑暗,所以將發射顏色改爲白色將是一個好主意,但我找不到一種方法來實現。我有這樣的:如何更改使用OBJ + MTLLoader加載的模型的材質屬性?
MTLLoader.setTexturePath('../models/');
MTLLoader.setPath('../models/');
var url = "model.mtl";
MTLLoader.load(url, function(materials) {
materials.preload();
OBJLoader.setMaterials(materials);
OBJLoader.setPath('../models/');
OBJLoader.load('model.obj', function (object) {
scene.add(object);
});
});
我試着這樣做:
object.traverse (function (child) {
if (child instanceof THREE.Mesh) {
child.material = new THREE.MeshLambertMaterial({emissive: 'white'});
}
});
哪個對自己創造一個發光材料的作品,但我忽略文件.mtl。我有兩種方法可以將它們結合起來嗎?我似乎無法在任何地方找到與此相關的任何內容。提前致謝。
我得到錯誤「無法讀取屬性‘setHex’未定義」,你知道哪裏出了問題? –
然後它是沒有材料的'THREE.Mesh'。添加另一個網格材質檢查:'if(child.material instanceof THREE.Material){/ * ... * /}'。 –
謝謝,我還根據我的喜好手動編輯了MTLLoader,在這種情況下也很有效。 –