SceneKit, как наиболее эффективно загружать и заменять текстуры на лету? UIImage, MTLTexture, MDLTexture, URL? - PullRequest
0 голосов
/ 12 июля 2020

Мне нужно загружать и заменять различные текстуры во время выполнения как можно скорее, а также поддерживать минимально возможное использование памяти. Неиспользуемую старую текстуру следует удалить из VRAM как можно скорее. Переписать все в Metal может помочь, но это большая работа.

Как видно из документов Apple, текстура может быть:

UIImage / NSImage / MTLTexture / MDLTexture / String / URL

Итак, что один лучший. Я тестировал некоторые из них, но они по-разному работают в macOS и iOS.

1 Ответ

0 голосов
/ 15 июля 2020

Пути к файлам и URL-адреса лучше, потому что они не выделяют предварительно память для данных текстуры. Например, при работе с UIImage или CGImageRef SceneKit не имеет возможности отменить исходные данные изображения от вашего имени, которые, скорее всего, не будут соответствовать цветовому пространству и / или формату пикселей, который SceneKit захочет использовать внутри.

...