ios – 场景套件中的彩色线?

ios – 场景套件中的彩色线?,第1张

概述我使用以下代码在两个节点之间绘制一条线: class func lineBetweenNodeA(nodeA: SCNNode, nodeB: SCNNode) -> SCNNode { let positions: [Float32] = [nodeA.position.x, nodeA.position.y, nodeA.position.z, nodeB.position.x, no 我使用以下代码在两个节点之间绘制一条线:

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 – 场景套件中的彩色线?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1060924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存