Подтвердить что ты не робот

Использование MTLTexture в качестве карты окружения SCNScene

Я хочу установить объект MTLTexture в качестве карты окружения сцены, поскольку это кажется возможным в соответствии с documentation. Я могу установить карту окружения как UIImage со следующим кодом:

let roomImage = UIImage(named: "room")
scene.lightingEnvironment.contents = roomImage

Это работает, и я вижу отражение изображения на моих металлических предметах. Я попытался преобразовать изображение в MTLTexture и установить его как карту окружения со следующим кодом:

let roomImage = UIImage(named: "room")
let loader = MTKTextureLoader(device: MTLCreateSystemDefaultDevice()!)
let envMap = try? loader.newTexture(cgImage: (roomImage?.cgImage)!, options: nil)
scene.lightingEnvironment.contents = envMap

Однако это не работает, и я получаю пустую карту окружения без отражения на моих объектах.

Кроме того, вместо установки options как nil, я попытался установить ключ MTKTextureLoader.Option.textureUsage с все возможные значения, он может get, но это тоже не сработало.

Изменить: вы можете посмотреть пример проекта в this repo и использовать его для воспроизведения этого прецедента.

4b9b3361