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)}
我希望能够在调用此函数时传递颜色,以便相应地更改颜色…
如何指定绘制线条的颜色?
我编辑了代码以适合我.我使用发射属性而不是漫反射,我使用恒定光…
解决方法 材质的lightingModelname默认为SCNlightingModelBlinn.使用此照明模型,漫反射材质属性使用如下:color = ... + diffuse * max(0,dot(N,L)) + ...
但由于几何体没有法线,因此漫反射总是乘以0.
您可能希望使用SCNlightingModelConstant光照模型或使用发射材质属性而不是漫反射.
总结以上是内存溢出为你收集整理的ios – 场景套件中的彩色线?全部内容,希望文章能够帮你解决ios – 场景套件中的彩色线?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)