SceneKit: экспорт UVSet или копирование UVs из одного объекта в другой - PullRequest
0 голосов
/ 30 апреля 2018

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

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

Ответы [ 2 ]

0 голосов
/ 30 апреля 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 & Model I / O .

0 голосов
/ 30 апреля 2018

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

...