Intereting Posts
Как мне форматировать текст UITextfield, который является номером телефона, в американском стиле? комплекс JSON на iOS5 viewForZoomingInScrollView не вызывается для поддержки масштабирования Meteor: как указать собственное мобильное приложение на развернутый сервер Оценка (NSIntegers) внутри if-statement Objective-C Филиал clicked_branch_link равен 0 без метаданных Swift Как увеличить минимальную версию iOS для установки iPhone? Изменение размера ширины содержимого UITableViewCell. Быстрый и грязный способ хранения NSStrings (или других данных) от запуска до запуска? как сделать комбинированный григорианский и исламский (Hijri) календарь в iOS? drawInRect прозрачное изображение PNG: Цель C Пользовательская ячейка не может отображаться в виде таблицы в ios 6 API NaturalSize устарел от класса AVAsset в Swift Заголовок заголовка таблицы iOS не останется на вершине обзора Переопределить сеттер в объективе-c

Цветная линия в наборе сюжетов?

Я использую следующий код для рисования линии между двумя узлами:

class func lineBetweenNodeA(nodeA: SCNNode, nodeB: SCNNode) -> SCNNode { let positions: [Float32] = [nodeA.position.x, nodeA.position.y, nodeA.position.z, nodeB.position.x, nodeB.position.y, nodeB.position.z] let positionData = NSData(bytes: positions, length: sizeof(Float32)*positions.count) let indices: [Int32] = [0, 1] let indexData = NSData(bytes: indices, length: sizeof(Int32) * indices.count) let source = SCNGeometrySource(data: positionData, semantic: SCNGeometrySourceSemanticVertex, vectorCount: indices.count, floatComponents: true, componentsPerVector: 3, bytesPerComponent: sizeof(Float32), dataOffset: 0, dataStride: sizeof(Float32) * 3) let element = SCNGeometryElement(data: indexData, primitiveType: SCNGeometryPrimitiveType.Line, primitiveCount: indices.count, bytesPerIndex: sizeof(Int32)) let line = SCNGeometry(sources: [source], elements: [element]) line.firstMaterial?.lightingModelName = SCNLightingModelConstant line.firstMaterial?.emission.contents = UIColor.orangeColor() return SCNNode(geometry: line) } 

Я хочу иметь возможность передать цвет, когда я вызываю эту функцию, чтобы она меняла цвет соответственно …

Как указать цвет для рисованной линии?

Я редактировал код для того, что работает для меня. Я использовал свойство излучения вместо диффузного, и я использовал постоянный свет …

в качестве SCNLightingModelBlinn материалаModelName для материала по умолчанию используется SCNLightingModelBlinn . С помощью этой модели освещения свойство диффузного материала используется следующим образом:

 color = ... + diffuse * max(0, dot(N, L)) + ... 

но поскольку ваша геометрия не имеет нормалей, diffuse всегда умножается на 0.

Возможно, вы захотите использовать SCNLightingModelConstant освещения SCNLightingModelConstant или использовать свойство материала emission вместо diffuse .