SceneKit: экспорт UVSet или копирование UV с одного объекта на другой.

Может ли кто-нибудь сказать мне строки кода, которые мне нужны для копирования UV из одной модели в другую (с идентичной топологией) в Swift?

Или как экспортировать UVSet из Autodesk Maya и применить его к 3D-модели в Scenekit?


person Geoff H    schedule 30.04.2018    source источник


Ответы (2)


Координаты текстуры хранятся в экземплярах SCNGeometrySource. Чтобы скопировать источник в другую геометрию, вам придется объединить их и создать новую геометрию, используя geometryWithSources:elements: конструктор.

person mnuages    schedule 30.04.2018
comment
Есть ли шанс, что вы сможете предоставить фрагмент кода, показывающий, как именно это делается? - person Geoff H; 30.04.2018
comment
Чтобы дать более широкую картину, я пытаюсь сделать текстурную карту ARSCNFaceGeometry так, как я хочу. Я экспортировал сетку в Maya. Так что я могу текстурировать его и изменить UV-отображение. Я хочу вернуть это новое сопоставление текстур обратно в scenekit и заменить сопоставление uv в файле ARSCNFaceGeometry. SCNGeometrySource определенно правильный путь или есть лучший способ? Я заметил, что у SCNMaterialProprty есть mappingChannel. Можно ли использовать это вместо этого? Нужно ли мне для этого экспортировать UV-лист из Maya? - person Geoff H; 30.04.2018

Вот MEL-код для получения .OBJ геометрии и соответствующей ей .MTL текстуры из Maya:

// select poly object
select -r pSphereShape1 ;

// shift-select a procedural texture (assigned as Blinn) in Hypershade
select -tgl blinn1 ;

// assign "Edit – Convert to file texture..." command in Hypershade
convertSolidTx -resolutionX 1024 -resolutionY 1024 -fileFormat "jpg" ramp1.outColor pSphere1 ;
// This results in "file2" in Hypershade

// select new shader
select -r blinn2 ;

// "File – Export Selected Network" command in Hypershade
file -op "groups=1; ptgroups=1; materials=1; smoothing=1; normals=1; " -typ "OBJexport" -pr -es "/Users/swift/Desktop/texture.obj" ;

/* 
This results in:
/Users/swift/Desktop/texture.obj
/Users/swift/Desktop/texture.mtl
*/

Читайте здесь: Как подать заявку Файл .MTL в 3D-модели .OBJ с помощью SceneKit и ввода/вывода модели.

person Andy Fedoroff    schedule 30.04.2018