【发布时间】:2018-07-03 16:50:25
【问题描述】:
将图像作为材质添加到预定义的 3d 对象(如 Swift 中的 Cube)对我来说效果很好。现在我正在尝试将图像作为材质添加到在运行时动态创建的多边形中。
我希望这样的事情会奏效:
let source = SCNGeometrySource(vertices: vertices)
var data = [Int32]()
for (index, value) in vertices.enumerated() {
data.append(Int32(index))
}
data.insert(Int32(vertices.count), at: 0)
let indexData = Data(bytes: data, count: data.count * MemoryLayout<Int32>.size)
let element = SCNGeometryElement(data: indexData, primitiveType: .polygon, primitiveCount: 1, bytesPerIndex: MemoryLayout<Int32>.size)
geometry = SCNGeometry(sources: [source], elements: [element])
if let material = geometry?.firstMaterial {
material.diffuse.contents = UIImage( named: "Diffuse" )
material.isDoubleSided = true
}
当我将 UIImage 更改为 UIColor 时,它工作正常。 我建议,我需要纹理的 UV 贴图。是否可以即时生成某些东西?
【问题讨论】: