一个盒子的奇怪 SCNGeometryElement 计数
weird SCNGeometryElement count of a box
我正在使用材质 属性 为盒子的每一面涂上不同的颜色。代码有效,盒子颜色漂亮。文档说明如下:
For geometries with multiple elements, you can use the materials
property to attach different materials to each element.
我正在测试一个盒子(立方体)的几何元素的数量。结果是 1.I 对几何元素的含义有点困惑。如果盒子只有 1 个几何元素,为什么我可以使用材质 属性 附加不同的材质?
//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()
SCNGeometry/SCNMaterial 的文档是正确的。
但是 SCNBox 会根据您分配给它的 material 的数量自动生成 1 到 6 个几何元素。这将在渲染之前完成,因此根据您询问几何元素数量的时间,您可能会得到不同的结果。
只有 SCNBox 可以做到这一点。其他基元和其他几何体没有这种动态数量的几何体元素。
我正在使用材质 属性 为盒子的每一面涂上不同的颜色。代码有效,盒子颜色漂亮。文档说明如下:
For geometries with multiple elements, you can use the materials property to attach different materials to each element.
我正在测试一个盒子(立方体)的几何元素的数量。结果是 1.I 对几何元素的含义有点困惑。如果盒子只有 1 个几何元素,为什么我可以使用材质 属性 附加不同的材质?
//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()
SCNGeometry/SCNMaterial 的文档是正确的。
但是 SCNBox 会根据您分配给它的 material 的数量自动生成 1 到 6 个几何元素。这将在渲染之前完成,因此根据您询问几何元素数量的时间,您可能会得到不同的结果。
只有 SCNBox 可以做到这一点。其他基元和其他几何体没有这种动态数量的几何体元素。