Я хочу установить объект 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 и использовать его для воспроизведения этого прецедента.