*UPDATE*这必须是文件及其导出方式的问题,我只是不知道这个问题是什么。我已经下载了一些更多的示例模型,它们都呈现得很好。
在加载Three.js和.mtl文件时,我遇到了一个问题。
我有一堆对象和它们对应的从3ds导出的材料文件。我不是导出这些文件的人,我不是3d建模者,但是如果这是文件的问题,我可以要求建模者再次导出它们。
我使用过THREE.js几次,从未遇到过这个问题,我使用以下方法加载.mtl和.obj文件:
mtlLoader.load("stands/objects/Table&Chairs.mtl", function(materials){
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.load("stands/objects/Table&Chairs.obj", function(object){
scene.add(object);
object.position.set(-5, 0, 4);
});
});我的问题是对象加载很好,没有错误,但是没有显示。对象没有呈现到场景中。
如果我从其他来源下载一些示例资产并切换正在上载的文件,而不更改其他任何内容,则对象呈现。
这让我相信,这可能是文件导出方式的一个问题。
呈现我的.obj的屏幕显示

显示正在呈现的示例.obj的屏幕

任何可能导致这种情况的帮助都将不胜感激。
我已经上传了这里的对象和材料。
我的是桌椅,示例是Tent_Poles_01文件。
发布于 2018-11-22 13:07:48
关于.OBJ文件的伟大之处在于,您可以在您选择的文本编辑器中打开它们,并查看其中的内容。这将给你一个大致的位置和规模的概念:
换句话说,第一个怀疑是您的模型呈现在可见视点之外的某个地方。
通常,当你和一位3D艺术家一起工作时,你会事先讨论你想要工作的比例,并让他们把模型和原点很好地对齐。
您可以(某种程度上)在代码中纠正这一点,但它将不那么实用。
mesh.geometry.center()将重新计算(0,0,0)周围的几何.但请注意,这通常不是你想要的。例如,一张桌子在它默认的居中位置会在地板的一半处。https://stackoverflow.com/questions/53426294
复制相似问题