我知道THREE.js拥有各种3D图形格式的导入器。
是否有适合显示在3dStudioMax中创建的模型的导入程序?如果没有,有没有办法将一个3dStudioMax模型转换成可以在THREE.js中导入的东西?
答案 0 :(得分:18)
您有两种选择:
1)使用ThreeJSExporter.ms,但考虑到不再保留:
https://github.com/mrdoob/three.js/tree/master/utils/exporters/max
2)(推荐)在3DS Max中使用OBJ导出器选项。然后使用convert_obj_three.py脚本:
https://github.com/mrdoob/three.js/blob/master/utils/converters/obj/convert_obj_three.py
我在Three.js的Github上的更多详细信息:
答案 1 :(得分:6)
下面是一个MAXScript脚本,它将选定对象的网格转换为JSON。在本帖子发布时,它可以在Google代码托管的3ds Max developer community的SVN中找到。
tmesh = snapshotAsMesh selection[1]
out_file = createfile "$scripts\\output.json
num_faces = tmesh.numfaces
num_verts = tmesh.numverts
fn PrintPoint pt = (
format "%, %, %, " pt.x pt.y pt.z to:out_file
)
fn PrintPointUV pt = (
format "%, %, " pt.x pt.y to:out_file
)
fn PrintPointInt pt = (
x = int(pt.x) - 1
y = int(pt.y) - 1
z = int(pt.z) - 1
format "%, %, %, " x y z to:out_file
)
format "{\n" to:out_file
-- Vertex Positions
-- format " \"vertexPositions\" : [" to:out_file
format " positions : [" to:out_file
for i = 1 to num_verts do
(
vert = getVert tmesh i
PrintPoint vert
)
format "],\n" to:out_file
-- Vertex Normals
-- format " \"vertexNormals\" : [" to:out_file
format " normals : [" to:out_file
for i = 1 to num_verts do
(
vert = getNormal tmesh i
PrintPoint vert
)
format "],\n" to:out_file
-- Vertex Texture Coordinates
-- format " \"vertexTextureCoords\" : [" to:out_file
format " uv : [" to:out_file
for i = 1 to num_faces do
(
-- Iterate over faces
tvface = getTVFace tmesh i
for j = 1 to 3 do (
-- Get a specific texture vertex
tvert = getTVert tmesh tvface[j]
PrintPointUV tvert
)
)
format "],\n" to:out_file
-- Face Indexes
-- format " \"indices\" : [" to:out_file
format " indices : [" to:out_file
for f = 1 to num_faces do
(
face = getFace tmesh f
PrintPointInt face
)
format "],\n" to:out_file
format "}" to:out_file
close out_file
delete tmesh
edit out_name
答案 2 :(得分:2)
我有一段时间没有使用过three.js,但我知道它会导入3dsmax可以轻松导出的OBJ,并且有一个python脚本可以将.obj转换为three.js .json网格。
我注意到在最新版本中,json格式有一个MaxScript Exporter,所以从那开始。它应根据所选网格生成.js文件,但目前无法访问PC进行测试。
答案 3 :(得分:1)
您可以使用3ds文件格式保存最大文件。打开3ds模型 使用A3dsViewer。单击导出到工具栏中的HTML5和 您将能够在浏览器中预览模型。
答案 4 :(得分:0)
现在,到了2018年,我们确实拥有glTF和一个非常不错的3ds max导出器,由巴比伦社区开发并积极维护:
描述和安装方法在此处进行了广泛的描述:
https://doc.babylonjs.com/resources/3dsmax_to_gltf
然后可以在three.js中轻松使用gltf模型,请参见一些示例:
https://threejs.org/examples/webgl_loader_gltf.html
https://threejs.org/examples/#misc_exporter_gltf
享受!