gpt4 book ai didi

ios - SceneKit View 呈现为 phong 而不是基于物理的 Material

转载 作者:行者123 更新时间:2023-12-05 06:38:55 24 4
gpt4 key购买 nike

我的场景中有几个对象,所有对象都将其 Material 设置为基于物理的“光照模型”

当我运行该应用程序时,我得到的 View 看起来一点也不像场景编辑器 - 它看起来更像是 Phong Material 。

是否有一个根节点需要更改才能让它从一开始就基于物理渲染?我是 objective-c 的新手,所以我不确定是否需要将根节点的光照模型设置为基于物理的,如果需要,我将如何访问根节点(此外,根节点可以甚至有一个光照模型属性,因为它本身是不可渲染的)。

我的模型是在 ZBrush 中创建的,在 UIViewController 中进行了重新拓扑 和 UV 映射,并在 Blender 中转换为 .dae 文件。这些程序之一是否有可能将 Material 着色器设置为 phong? SceneKit 编辑器不会覆盖它并将其设置为基于物理的吗?

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

感谢您的帮助:)

最佳答案

在 SceneKit 中将基于物理的着色器应用到您的模型(或更改其纹理或颜色)非常容易。如果您的模型由多个部分组成,请使用以下方法在层次结构中找到您需要的部分:

enter image description here

enter image description here

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 模型

enter image description here

关于ios - SceneKit View 呈现为 phong 而不是基于物理的 Material ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45374054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com