31

ドキュメント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

編集:このリポジトリのサンプル プロジェクトを見て、それを使用してこのユース ケースを再現できます。

4

1 に答える 1