SceneKit:以编程方式使用 Scene Inspector 中的“Procedural Sky”选项?
Posted
技术标签:
【中文标题】SceneKit:以编程方式使用 Scene Inspector 中的“Procedural Sky”选项?【英文标题】:SceneKit: Programmatically use "Procedural Sky" option from Scene Inspector? 【发布时间】:2018-09-17 01:52:12 【问题描述】:在 Xcode SceneKit 场景检查器中,Environment
部分下有一个 Procedural Sky
选项。
根据一些教程,启用此选项将赋予 3D 模型更多的真实感。
1) 如果您是通过代码而非 Scene Inspector 创建场景,如何启用Procedural Sky
选项?没有Environment
属性。
2) Procedural Sky
选项是否仅在您使用 PBR 材质时才有效?
【问题讨论】:
你得到答案了吗? @Paresh.P 在下面查看我的答案 【参考方案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
您必须自己阅读参数,因为我只是偶然发现了这一点。
我发现了这些感兴趣的链接:
https://github.com/FlexMonkey/SkyCubeTextureDemo http://flexmonkey.blogspot.com/2015/07/a-first-look-at-model-ios-sky-cube.html这些来源已有 5 年的历史,所以我确信一些东西同时发生了变化。
关于您问题的第二部分:您可以将其导入您的材料中,但我还不太了解。
【讨论】:
在 Xcode 11、iOS 13 上运行良好!使用上面的值创建与默认程序天空颜色不同的颜色,但提供的链接和 Xcode 文档显示了如何创建黄昏、中午等。【参考方案2】:对于 iOS 12 使用:
configuration.environmentTexturing = .automatic
【讨论】:
使用 ARKit 时可以设置,但不能用于基本的 SceneKit 场景。以上是关于SceneKit:以编程方式使用 Scene Inspector 中的“Procedural Sky”选项?的主要内容,如果未能解决你的问题,请参考以下文章
如何导出 DAE 文件以在 Scene Kit 中使用而不会看到“无标题动画”?