Intereting Posts
Быстрое функциональное программирование – есть ли лучший способ перевести вложенный цикл, чем два вызова карты Сумасшедшее поведение с установками UIViewController в Swift PhoneGap – Как создать новый файл в папке документов iOS Three20 "pull down to update": Как изменить формат текста и даты? NSError: получить локализованное определение из кода Отсутствие необходимых модулей при работе динамической библиотеки в другом приложении Branch.io – ссылка, открывающая приложение, но не получающая в нем данные Проблема с наклоном акселерометра iOS WkWeb не разрешает доступ к файлам HttpOnly insertRows в TableView MPMoviePlayerController: кнопка «Поиск кнопки» замораживает видео – черный экран UITableview reloadRowsAtIndexPaths сбой при обновлении данных таблицы jQuery-Mobile Отключить страницу Перетаскивание и предотвращение Прокрутка верхнего или нижнего колонтитула Добавление симулятора iOS6.1 в Xcode 6 Collection View изменяет выбранную ячейку при прокрутке

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

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

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 .