Подтвердить что ты не робот

Импортируйте модель из 3dStudioMax в THREE.js

Я знаю, что у THREE.js есть импортеры из различных 3D-графических форматов.

Есть ли импортер, подходящий для отображения модели, созданной в 3dStudioMax? И если их нет, есть ли способ конвертировать 3dStudioMax-модель в нечто, которое можно импортировать в THREE.js?

4b9b3361

Ответ 1

Ниже представлен MAXScript script, который преобразует выбранную объектную сетку в JSON. Во время этого сообщения он был доступен в SVN сообщества разработчиков 3ds Max на хостинге Google.

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

У вас есть два варианта:

1) Используйте ThreeJSExporter.ms, но учтите, что больше не выполняются:

https://github.com/mrdoob/three.js/tree/master/utils/exporters/max

2) (рекомендуется) Используйте опцию экспортера OBJ в 3DS Max. Затем используйте convert_obj_three.py script, доступные здесь:

https://github.com/mrdoob/three.js/blob/master/utils/converters/obj/convert_obj_three.py

Более подробная информация в моей статье о Three.js Github:

https://github.com/mrdoob/three.js/issues/893

Ответ 3

Я не использовал three.js через некоторое время, но я знаю, что он импортирует OBJ, который 3dsmax может легко экспортировать, и есть python script, который преобразует .obj в тэг..js.json.

Я заметил, что в последней версии есть MaxScript Exporter прямо в формате json, поэтому начните с этого. Он должен генерировать файл .js на основе выбранной сетки, но не может получить доступ к ПК в настоящий момент для тестирования.

Ответ 4

Вы можете сохранить максимальный файл, используя формат файла 3ds. Открыть модель 3ds с A3dsViewer. Нажмите "Экспорт" в HTML5 на панели инструментов и вы сможете просмотреть модель в браузере.