我使用材料属性为不同颜色的盒子的每一面着色。代码工作,盒子色彩漂亮。文档说明如下:
对于具有多个元素的几何图形,您可以使用这些材质 将不同材料附加到每个元素的属性。
我正在测试一个盒子(立方体)的几何元素的数量。结果是1.我对几何元素的含义有点困惑。如果盒子只有1个几何元素,为什么我可以使用materials属性来附加不同的材质?
//cretaing a box
let box = SCNBox(width: 40, height: 40, length: 40, chamferRadius: 0)
boxNode.geometry = box
scene.rootNode.addChildNode(boxNode)
boxNode.position = SCNVector3Make(0, -90, 0)
boxNode.rotation = SCNVector4Make(1, 1, 0, 1)
//setting up materials
let mat1 = SCNMaterial()
mat1.diffuse.contents = UIColor.redColor()
let mat2 = SCNMaterial()
mat2.diffuse.contents = UIColor.blueColor()
let mat3 = SCNMaterial()
mat3.diffuse.contents = UIColor.greenColor()
let mat4 = SCNMaterial()
mat4.diffuse.contents = UIColor.yellowColor()
let mat5 = SCNMaterial()
mat5.diffuse.contents = UIColor.blackColor()
let mat6 = SCNMaterial()
mat6.diffuse.contents = UIColor.orangeColor()
box.materials = [mat1,mat2,mat3,mat4,mat5,mat6]
//checking the number of geometry elements
let i = box.geometryElementCount
println("Number of geometry elements: \(i)")
animateBox()
答案 0 :(得分:3)
SCNGeometry / SCNMaterial的文档是正确的。
但是SCNBox会自动生成1到6个geometryElements,具体取决于您为其分配的材料数量。这将在渲染之前完成,因此根据您询问几何元素的数量,您可能会得到不同的结果。
只有SCNBox这样做。其他基元和其他几何体不具有这种动态数量的几何元素。