Javascript THREE.js未使用.mtl呈现.obj-导出THREE.js的文件
***更新***这一定是文件和导出方式的问题,我不知道是什么问题。我下载了更多的示例模型,它们都呈现得很好 加载.obj和.mtl文件时,我遇到了Three.js的问题 我从3ds中导出了一组对象及其相应的材质文件。我不是导出这些文件的人,我也不是3d建模师,但是如果这些文件出现问题,我可以要求建模师再次导出它们 我曾多次使用THREE.js,但从未遇到过此问题,我使用以下方法加载.mtl和.obj文件:Javascript THREE.js未使用.mtl呈现.obj-导出THREE.js的文件,javascript,three.js,.obj,3ds,Javascript,Three.js,.obj,3ds,***更新***这一定是文件和导出方式的问题,我不知道是什么问题。我下载了更多的示例模型,它们都呈现得很好 加载.obj和.mtl文件时,我遇到了Three.js的问题 我从3ds中导出了一组对象及其相应的材质文件。我不是导出这些文件的人,我也不是3d建模师,但是如果这些文件出现问题,我可以要求建模师再次导出它们 我曾多次使用THREE.js,但从未遇到过此问题,我使用以下方法加载.mtl和.obj文件: mtlLoader.load("stands/objects/Table&Chai
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);
});
});
我的问题是对象加载很好,没有错误,但是没有显示任何内容。对象未渲染到场景中
如果我从其他来源下载一些示例资源,并在不更改任何其他内容的情况下切换出正在上载的文件,则对象将呈现
这让我相信这可能是文件导出方式的问题
正在渲染的my.obj的屏幕显示
显示正在渲染的示例.obj的屏幕
如果您能提供帮助,了解是什么原因导致了这种情况,我们将不胜感激
我已经上传了物品和材料
我的是桌椅,示例是Tent_Poles_01文件。关于.OBJ文件的伟大之处在于,您可以在自己选择的文本编辑器中打开它们,看看里面有什么。这将使您大致了解位置和比例:
- 查看帐篷模型中的顶点,每个维度的大小大约为2个单位,以原点为中心
- 查看桌椅模型中的顶点,它们的大小为几百/千个单位,并且从(+6000,0,-2000)开始李>
mesh.geometry.center()
将围绕(0,0,0)重新居中几何体。。。但请注意,这通常不是你想要的。例如,表格将以默认的居中位置穿过楼板的一半保罗·简,这对我帮助很大,我真的很感谢你向我解释这一点。我已经和3d艺术家讨论过缩小这些模型的问题。他以1:1的比例工作,所以其他一些模型有20米宽:难怪我没有在我的视野中看到它们。再次感谢你!
var currentSize = new THREE.Box3().setFromObject(model).getSize();
mesh.geometry.scale(
targetWidth / currentSize.X,
targetHeight / currentSize.Y,
targetDepth / currentSize.Z)