【发布时间】:2017-10-10 06:04:01
【问题描述】:
我使用以下代码创建了一个自定义 SCNGeometry:
let data = NSData(bytes: position, length: MemoryLayout<float3>.size * self.objectMesh.pointCount)
let vertexSource = SCNGeometrySource(data: data as Data,
semantic: .vertex,
vectorCount: self.objectMesh.pointCount,
usesFloatComponents: true,
componentsPerVector: 3,
bytesPerComponent: MemoryLayout<Float32>.size,
dataOffset: 0,
dataStride: MemoryLayout<float3>.size)
let data2 = NSData(bytes: uvs, length: MemoryLayout<float2>.size * self.objectMesh.pointCount)
let tSource = SCNGeometrySource(data: data2 as Data,
semantic: .texcoord,
vectorCount: self.objectMesh.pointCount,
usesFloatComponents: true,
componentsPerVector: 2,
bytesPerComponent: MemoryLayout<Float32>.size,
dataOffset: 0,
dataStride: MemoryLayout<float2>.stride)
let indexData = NSData(bytes: faces, length: MemoryLayout<Int32>.size * self.objectMesh.faceCount)
let element = SCNGeometryElement(
data: indexData as Data,
primitiveType: .triangles,
primitiveCount: self.objectMesh.faceCount/3,
bytesPerIndex: MemoryLayout<Int32>.size)
let Geometry = SCNGeometry(sources: [vertexSource, tSource], elements: [element])
Geometry.firstMaterial?.diffuse.contents = self.MainTexture
Geometry.firstMaterial?.normal.contents = self.NormalTexture
现在的问题是:纹理显示了,但法线纹理贴图没有应用到几何体。我不会使用每个顶点法线。此纹理和法线纹理适用于例如 SCNPlane 几何体。但我现在不知道如何在我的自定义几何体中使用法线贴图纹理。
【问题讨论】:
标签: scenekit