使用 Three.js 加载模型

Posted

技术标签:

【中文标题】使用 Three.js 加载模型【英文标题】:loading model with Three.js 【发布时间】:2012-08-11 05:11:32 【问题描述】:

我有一个 3ds 格式的 3d 模型。我将其转换为 obj 格式,然后转换为 js 格式。现在我想将它加载到另一个 js 文件中。这是我的加载代码:

var loader = new THREE.JSONLoader();
loader.load(  model: "untitled.js", callback: createScene  );



function createScene( geometry ) 

geometry.materials[0][0].shading = THREE.FlatShading;
geometry.materials[0][0].morphTargets = true;

var material = new THREE.MeshFaceMaterial();

var mesh = new THREE.Mesh( geometry, material );
mesh.scale.set(50, 50, 50);

scene.addObject( mesh );

Web 开发者控制台显示错误:TypeError: a.split is not a function Three.js:119

我该如何解决这个问题? 谢谢

【问题讨论】:

你是用什么来制作js文件的? (是 JSON 3 模型格式吗?) ref:github.com/mrdoob/three.js/wiki/JSON-Model-format-3.0 我使用blender和不同的python插件文件并将其导出为js文件 看你的代码我也看不出来,不过好像和解析有关,试着注释一下createScene的内容,看看是否还有错误。如果仍然有问题,则 json 创建是错误的。您可以尝试手动修复它... 错误仍然出现,即使 createScene 内容被注释了 【参考方案1】:

应该改为:

loader.load( "untitled.js", createScene );

【讨论】:

现在它说 geometry[0][0].materials 未定义。我认为 untitled.js 文件不行

以上是关于使用 Three.js 加载模型的主要内容,如果未能解决你的问题,请参考以下文章

从 DB 加载 3d 模型并在 Three.js 中使用它

在 Three.js 中为加载的 glb 模型分配纹理

将模型导入three.js - 性能

如何在 TypeScript 中使用 three.js 加载 OBJ 模型

如何为three.js模型加载器将对象转换为json文件

Three.js - 使用 .FBX 模型时出现“未知格式”错误