如何在 SceneKit 中更改几何材质的颜色
Posted
技术标签:
【中文标题】如何在 SceneKit 中更改几何材质的颜色【英文标题】:How to change the colour of geometry material in SceneKit 【发布时间】:2021-10-25 05:08:52 【问题描述】:我有以下代码
let planeGeometry = SCNPlane(width: 5, height: 3)
let planeNode = SCNNode(geometry: planeGeometry)
planeGeometry.firstMaterial?.diffuse.contents = Color(.blue)
planeGeometry.firstMaterial?.isDoubleSided = true
scene.rootNode.addChildNode(planeNode)
我尝试以不同的方式应用颜色,例如
let node = SCNNode()
let geometry = SCNBox(width: 3.0, height: 1, length: 1, chamferRadius: 0)
geometry.firstMaterial?.emission.contents = Color(hue: 10, saturation: 50, brightness: 10)
node.geometry = geometry;
scene.rootNode.addChildNode(node)
在另一个空的 SceneKit 项目中
无论如何它都是白色的
我正在关注一个教程,该教程表明这应该产生与在可视化编辑器中构建场景相同的结果。但是,在可视化编辑器中会出现我所期望的情况
【问题讨论】:
您没有将其应用于您的对象。显示所有相关的代码行。 设置正确的标签。 感谢您的回复。设置正确的标签是什么意思? 为材质一侧设置颜色的方式表明您使用的主要框架是 SwiftUI,您应该将其添加到您的标签大军中。 我在视图上使用了启用全局照明标签。但是当我向父节点添加一个烧焦的灯时,问题就消失了。谢谢你的帮助。我根据你的建议试了一下 【参考方案1】:问题是我没有照明。当我将环境光添加到父节点时,颜色开始发生变化。我认为我不需要这样做,因为我为场景启用了默认照明标志
【讨论】:
以上是关于如何在 SceneKit 中更改几何材质的颜色的主要内容,如果未能解决你的问题,请参考以下文章