Я успешно построил и отобразил произвольную геометрию (куб) в 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
Кто-нибудь знает, почему не работает?