Как экспортировать MDLAsset с текстурой? - PullRequest
0 голосов
/ 15 января 2019

Я хочу экспортировать мой scnScene (фактически только 1 узел) в формат USDZ из приложения iOS. Вот пример, где я пытаюсь загрузить OBJ-файл и его текстуру и модель экспорта в USDC (USDZ не поддерживается). Но только "model.usdc" создан. Я попытался экспортировать модель в формат USDA, и она также не содержит ссылок на текстуру. Даже экспорт в OBJ создает только «OBJ и MTL» в файловой системе.

MDLAsset *asset = [[MDLAsset alloc] initWithURL:[[NSBundle mainBundle] URLForResource:@"template" withExtension:@"obj"]];

MDLTextureSampler *sampler = [[MDLTextureSampler alloc] init];
sampler.texture = [MDLTexture textureNamed:@"texture.png"];
MDLMaterialProperty *property = [[MDLMaterialProperty alloc] initWithName:@"baseColor" semantic:MDLMaterialSemanticBaseColor textureSampler:sampler];
[[[[(MDLMesh*)[asset objectAtIndex:0] submeshes] objectAtIndex:0] material] setProperty:property];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString* usdcPath = [documentsDirectory stringByAppendingPathComponent:@"model.usdc"];
NSURL *usdcUrl = [NSURL fileURLWithPath: usdcPath];

if ([MDLAsset canExportFileExtension:@"usdc"]) {
    [asset exportAssetToURL:usdcUrl];
}

Есть ли способ экспортировать модель с текстурой?

...