【发布时间】:2016-05-19 18:21:06
【问题描述】:
我正在尝试使用 objLoader 将 .obj 加载到 Three.js 中。
var loader = new THREE.OBJLoader( manager );
loader.load( 'obj/gate-2.obj', function ( object ) {
object.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
child.material.map = texture;
}
} );
使用搅拌机模型一切正常,但是每当我尝试使用自己的自定义 3Ds Max 模型时,.obj 不会在浏览器中加载并给出错误。是我导出错误还是 Three.js 不支持 3Ds Max .obj 导出器?
错误信息
Error: Unexpected line: s 2
parseOBJLoader.js:339
(anonymous function)OBJLoader.js:24
(anonymous function)three.min.js:376:387
【问题讨论】:
-
先尝试一次,只导出像立方体这样简单的东西。然后检查它是否有效......你使用的是什么版本的 Three.js。
-
@Wilt 我假设是最新版本,因为我前几天才下载它,模型在搅拌机中重新渲染时可以工作,我不确定问题但是现在试试立方体!
-
好吧,
s 2将是一个平滑设置。 loader是否支持平滑?我会假设它只会跳过它不理解的行。我认为这是为了平滑组。 -
OBJLoader 可以处理从 3ds max 导出的 .obj 文件,但here 概述的单独对象除外。导出一个非常简单的对象并将 .obj 文件的内容粘贴到您的问题中
-
查看 OBJLoader.js 的代码,平滑组的正则表达式只能处理“s 1”,但不能处理“s 2”、“s 3”等其他设置。我不不知道这意味着什么,因为我对 obj 格式或 3DSMax 不够熟悉。但是我在尝试将从 3DSMax 导出的 OBJ 导入到threejs时遇到了同样的问题。
标签: javascript three.js 3dsmax