SceneKit:以编程方式使用" Procedural Sky" Scene Inspector中的选项?

时间:2018-04-07 01:25:25

标签: xcode 3d scenekit augmented-reality scnscene

在Xcode SceneKit场景检查器中,Procedural Sky部分下有Environment个选项。

根据一些教程,启用此选项将为3D模型带来更多真实感。

1)如果您是从代码而不是从Scene Inspector创建场景,那么如何启用Procedural Sky选项?没有Environment属性。

2)Procedural Sky选项仅在使用PBR材料时才有效吗?

2 个答案:

答案 0 :(得分:1)

是的,您可以:您要寻找的课程是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
    }
}

由于我偶然发现了这些参数,因此您必须自己阅读这些参数。

我发现了这些有趣的链接:

这些消息来源已有5年的历史了,所以我确定同时有些事情已经改变。

关于您问题的第二部分:您可以将其通过管道传输到您的资料中,但是我还不是很了解。

答案 1 :(得分:-1)

对于iOS 12使用:

configuration.environmentTexturing = .automatic