你好,我想弄清楚如何添加一個MTL文件到我的OBJ three.js。我有我的OBJ加載,並回來解決這個問題。現在,當我添加使用MTLLoader
加載的MTL文件的代碼時,它並沒有通過mtlLoader.load(url, ....)
(正如在添加了這一點代碼之後,現在只有場景內沒有任何東西被渲染)。我正在使用警報來跟蹤代碼的進度,並在此聲明之前收到警報,但未收到警報。我發現的所有解決方案都包括使用OBJMTLLoader
,它不再是當前版本的three.js(r74)的一部分。如何在three.js中添加一個MTL紋理到OBJ
回答
此代碼是從加載OBJ + MTL正式例如採取:
objLoader.setMaterials(materials);
:
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setBaseUrl('obj/male02/');
mtlLoader.setPath('obj/male02/');
var url = "male02_dds.mtl";
mtlLoader.load(url, function(materials) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.setPath('obj/male02/');
objLoader.load('male02.obj', function (object) {
object.position.y = - 95;
scene.add(object);
}, onProgress, onError);
});
http://threejs.org/examples/#webgl_loader_obj_mtl
你可以通過現在分配材料到OBJ如果你想操縱這些材料,mtlLoader
在回調中給你的是一個的實例。例如,您可以通過materials.getAsArray()
獲取材料。查看所有可能函數的源代碼:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/MTLLoader.js#L138-L417
我目前正試圖執行此代碼。在發佈之前我曾嘗試過,但我的問題仍然存在。我已經提出了一個警告聲明,看看是否正在創建一個MTLLoader(是),但是我在'mtlLoader.load(url,function(materials){'但是它永遠不會達到這個聲明之後直接在行上放置一個警告ststement。 – RPBruiser
有必要設置基本Url和Path,然後用* only *模型名稱調用加載程序。可能是您的mtl文件存在問題,您可以嘗試加載隨three.js一起提供的model + mtl文件使用你的代碼,看看會發生什麼 –
我的mtl沒有問題,我已經在多個3D模型查看器中打開它,並且它們全部都沒問題。 – RPBruiser
- 1. 如何使用obj + mtl加載多個jpg紋理文件THREE.js
- 2. 如何從three.js中的OBJ + MTL文件加載紋理?
- 3. THREE.JS從OBJ/MTL文件加載紋理的一半
- 4. three.js所如何映射在MTL紋理,OBJ文件
- 5. 應用MeshBasicMaterial與Three.js加載的obj + mtl
- 6. 如何使用mtl文件和紋理加載obj文件
- 7. THREE.js用Promises添加紋理
- 8. 如何上傳obj與mtl和紋理桶?
- 9. 添加紋理到json對象 - three.js
- 10. 在運行時在three.js中更改加載的.obj的紋理
- 11. 在three.js中加載紋理
- 12. 如何將紋理添加到three.js中的對象?
- 13. 如何將紋理添加到three.js中的三角形?
- 14. Three.js OBJ MTL加載程序在IOS上不可見
- 15. 如何在three.js中將點添加到obj文件中?
- 16. Cinder如何紋理一個.obj trimesh
- 17. Three.js紋理加載
- 18. 如何使用THREE.js將紋理添加到collada文件(.dae)?
- 19. Three.js - 從OBJ文件加載的網格上加載jpg紋理
- 20. Three.js加載.mtl和.obj - 對象保持白色
- 21. Three.js透明對象和顏色變化(加載.obj + .mtl)
- 22. 在Three.js中加載託管在Google Cloud Storage上的obj和mtl文件
- 23. 如何爲obj加載紋理?
- 24. 如何使用Three.js預加載紋理?
- 25. 如何在three.js中顯示GIF紋理?
- 26. onProgress與Three.js紋理加載
- 27. Three.js - 無法加載紋理
- 28. Three.js紋理加載失敗
- 29. Three.js JSONLoader;紋理未加載
- 30. Wavefront .obj .Mtl結構
不確定爲什麼OBJMTLLoader已從r74示例中刪除,但沒有任何東西阻止您查看它如何使用MTLLoader加載紋理,只需[查看源代碼這裏](https://github.com/mrdoob/three.js/blob/r73/examples/js/loaders/OBJMTLLoader.js)。或者,甚至可能仍然使用OBJMTLLoader類,如果它仍然工作在r74 – 2pha
[這是提交](https://github.com/mrdoob/three.js/commit/ad41d295eeb6cb77cb56e931fea881fe71fcb6ab#diff-12ac5f8fb38da21d5a5eaa89ee22f155),刪除OBJMTLLoader和[這裏是問題](https://github.com/mrdoob/three.js/pull/7524) – 2pha