首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SceneKit视图呈现为phong,而不是基于物理的材料

SceneKit视图呈现为phong,而不是基于物理的材料
EN

Stack Overflow用户
提问于 2017-07-28 12:51:13
回答 1查看 1.4K关注 0票数 3

我有几个物体在我的场景,所有这些都有“照明模型”的材料设置为物理基础。

当我运行这个应用程序时,我得到的视图看起来一点也不像场景编辑器--相反,它更像是Phong材料。

是否有一个根节点,我需要改变,以便让它的物理基础上的入门?我对目标c很陌生,所以我不确定是否需要将根节点的照明模型设置为基于物理的,如果需要的话,我将如何访问根节点(而且,由于根节点本身是不可呈现的,根节点甚至可以具有照明模型属性)。

我的模型是在ZBrush中创建的,和UV映射在UIViewController中,并在Blender中转换为.dae文件。有没有可能其中一个程序将材质着色器设置为phong?难道SceneKit编辑器不会覆盖它并将其设置为基于物理的吗?

据我所知,所有版本的Xcode、iOS和SceneKit都是最新版本,足以支持PBR。

(谢谢你的帮助:)

EN

回答 1

Stack Overflow用户

发布于 2022-01-26 21:55:21

在SceneKit中将基于物理的着色器应用于您的模型非常容易(或者改变其纹理或颜色)。如果您的模型由几个部分组成,请使用以下方法在层次级别上查找所需的部分:

代码语言:javascript
复制
SCNScene *scene = [SCNScene sceneNamed: @"art.scnassets/biplane.usdz"];

SCNNode *modelNode = [scene.rootNode childNodeWithName: @"biplane"      
                                           recursively: YES];

SCNNode *body = modelNode.childNodes[0].childNodes[0]
                         .childNodes[0].childNodes[0];

body.geometry.materials[0].lightingModelName = SCNLightingModelPhysicallyBased;
body.geometry.materials[0].diffuse.contents = [UIColor redColor];
body.geometry.materials[0].metalness.contents = @1.0;
body.geometry.materials[0].roughness.contents = @0.0; 

结果biplane.usdz模型

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

https://stackoverflow.com/questions/45374054

复制
相关文章

相似问题

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