SceneKit:以编程方式使用场景检查器中的"Procedural Sky"选项?



在 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

相关内容

  • 没有找到相关文章

最新更新