Я успешно построил и отобразил пользовательскую геометрию (куб) в SceneKit из этого поста
Пользовательская геометрия
Теперь я хочу установить цветкаждого лица разного цвета.Я нашел этот пост, который должен делать это
на цвет вершины
К сожалению, я не могу установить цвет лица куба для определенногоцвет.Например, если я установлю цвет всех вершин на SCNVector3(x:1,y:0,z:0)
, я бы ожидал, что все грани будут красными, но вместо этого все они будут зелеными.Установка цветов на SCNVector3(x:0,y:1,z:0)
делает лица черными.Вот соответствующий код
let colors = [SCNVector3](count:vertices.count, repeatedValue:SCNVector3(x:1, y:0, z:0))
let colorData = NSData(bytes: colors, length: sizeof(SCNVector3) * colors.count)
let colorSource = SCNGeometrySource(data: colorData, semantic: SCNGeometrySourceSemanticColor, vectorCount: colors.count, floatComponents: true, componentsPerVector: 3, bytesPerComponent: sizeof(Float), dataOffset: 0, dataStride: sizeof(SCNVector3))
let geometry = SCNGeometry(sources: [colorSource, vertexSource, normalSource], elements: [element])
// Create a node and assign our custom geometry
let node = SCNNode()
let material = SCNMaterial()
material.diffuse.contents = NSColor.whiteColor()
geometry.materials = [material]
node.geometry = geometry
Кто-нибудь знает, почему он не работает?