ドキュメントMTLTexture
によると可能なように見えるので、オブジェクトをシーンの環境マップとして設定したいと考えています。次のコードを使用して、環境マップを に設定できます。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
また、 asを設定する代わりに、取得可能なすべての値でキーをnil
設定しようとしましたが、それもうまくいきませんでした。MTKTextureLoader.Option.textureUsage
編集:このリポジトリのサンプル プロジェクトを見て、それを使用してこのユース ケースを再現できます。