在 Xcode SceneKit 场景检查器中,Environment
部分下有一个Procedural Sky
选项。
根据一些教程,启用此选项将为 3D 模型赋予更多真实感。
1( 如果要从代码而不是从场景检查器创建场景,如何启用Procedural Sky
选项?没有Environment
财产。
2( Procedural Sky
选项是否仅在使用PBR材料时才有效?
是的,你可以: 您正在寻找的类是 MDLSkyCubeTexture
使用它将其放入场景背景内容的最基本方法:
class MyGameScene: SCNScene {
override init() {
super.init()
self.background.contents = MDLSkyCubeTexture(name: "sky",
channelEncoding: .float16,
textureDimensions: vector_int2(128, 128),
turbidity: 0,
sunElevation: 1.5,
upperAtmosphereScattering: 0.5,
groundAlbedo: 0.5)
// To let the sky influence the lighting:
self.lightingEnvironment.contents = self.background.contents
}
}
您必须自己阅读参数,因为我只是偶然发现了这个。
我找到了这些感兴趣的链接:
- https://github.com/FlexMonkey/SkyCubeTextureDemo
- http://flexmonkey.blogspot.com/2015/07/a-first-look-at-model-ios-sky-cube.html
这些来源已有 5 年的历史,所以我确信与此同时有些东西已经发生了变化。
关于你问题的第二部分:你可以把它融入你的材料中,但我还不太了解。
对于 iOS 12,请使用:
configuration.environmentTexturing = .automatic