首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SceneKit: SCNRenderingAPI

SceneKit: SCNRenderingAPI
EN

Stack Overflow用户
提问于 2019-03-10 07:38:37
回答 1查看 124关注 0票数 0

我正在尝试为我的SCNView使用PhysicallyBased照明模型...但是为了做到这一点,我必须将视图的renderingAPI属性设置为SCNRenderingAPIMetal。

我选择的游戏技术是SceneKit,而不是Metal,所以这可能是问题所在。然而,我认为这只是一个模板。我不应该以某种方式导入Metal framework吗?

编辑:我得到的错误是view.renderingAPI属性是不可变的……

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-11 05:03:53

SceneKit是建立在OpenGL/Metal基础上的抽象。它包装了常用的操作、着色模型等。在一个很好的框架中,所以程序员不必实现整个渲染流水线。您应该不需要下拉到Metal来执行通常支持的操作,例如基于物理的渲染。

要实现PBR,需要指定您的对象正在使用PBR,并设置渲染效果所需的各种输入:

代码语言:javascript
复制
let material = firstNode.geometry?.firstMaterial
material?.lightingModelName = SCNLightingModelPhysicallyBased
material?.diffuse.contents = UIImage(named: "albedo.png")
material?.roughness.contents = UIImage(named: "roughness.png")
material?.metalness.contents = UIImage(named: "metalness.png")
material?.normal.contents = UIImage(named: "normal.png")

如果您正在尝试实现SceneKit不支持的效果,则只需下拉到金属即可。希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55083074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档