Может ли кто-нибудь сказать мне строки кода, которые мне нужны для копирования UV от одной модели к другой (с одинаковой топологией) в Swift?
Или как экспортировать UVSet из Autodesk Maya и применить его к 3D-модели в Scenekit?
Вот MEL-код для получения .OBJ геометрии и соответствующей .MTL текстуры от Maya:
.OBJ
.MTL
// 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 & Model I / O .
Координаты текстуры хранятся в SCNGeometrySource экземплярах. Чтобы скопировать источник в другую геометрию, вам нужно объединить их и создать новую геометрию, используя конструктор geometryWithSources:elements:.
SCNGeometrySource
geometryWithSources:elements: