在 SceneKit 中使用 PBRLightingModel 时如何将金属度设置为浮点值?

How to set metalness as a float value when using PBRLightingModel in SceneKit?

在 Xcode 8 中,SceneKit 编辑器 允许您在使用 SCNLightingModelPhysicallyBased[ 时为金属度 属性 设置一个浮点值=23=]。选项有金属、电介质、浮点值或图像。选择 Metallic 将 metalness 设置为 1。选择 Dielectric 将其设置为 0。

metalness 设置为 1(在 SceneKit Editor 中允许)的编程等效项是什么? metalness 是只读的 属性。那么,我唯一的选择是将 someMaterial.metalness.contents 设置为 metalness 贴图图像吗?

一些 material 属性,例如 metalnessroughness 接受 NSNumber 作为它们的 contents

// Objective-C
material.roughness.contents = @0.5;
// Swift
material.roughness.contents = NSNumber(value: 0.5)

看起来联机文档还没有发现,但是 SCNMaterialProperty 的 header 文档有这个信息。