gpt4 book ai didi

ios - 自定义 SCNGeometry 不将漫反射内容显示为纹理

转载 作者:行者123 更新时间:2023-11-28 21:01:13 25 4
gpt4 key购买 nike

我正在创建自定义 SCNGeometry。首先,我将其开发为平面。它会显示,我可以将颜色应用到它的漫反射内容,但如果我尝试应用任何东西,例如 UIImage 或 CALayer,它会显示为白色。

代码:

let positions = [
SCNVector3(-1, 0, 0),
SCNVector3(1, 0, 0),
SCNVector3(-1, 0, -1),
SCNVector3(1, 0, -1)
]

let indices: [UInt8] = [
0, 1, 2,
1, 3, 2
]

let vertexSource = SCNGeometrySource(vertices: positions)

let indexData = Data(bytes: indices, count: indices.count)

let element = SCNGeometryElement(
data: indexData,
primitiveType: SCNGeometryPrimitiveType.triangles,
primitiveCount: indices.count / 3,
bytesPerIndex: 1)

let geometry = SCNGeometry(
sources: [vertexSource],
elements: [element])

geometry.firstMaterial?.diffuse.contents = UIImage(named: "homer")

最佳答案

为了能够对几何体进行纹理处理,您还需要提供 UV 坐标(纹理坐标)源。

let textureCoordinates = [
CGPoint(x: 0, y: 0),
CGPoint(x: 1, y: 0),
CGPoint(x: 0, y: 1),
CGPoint(x: 1, y: 1)
]

let uvSource = SCNGeometrySource(textureCoordinates: textureCoordinates)

let element = ...

let geometry = SCNGeometry(
sources: [vertexSource, uvSource],
elements: [element])

关于ios - 自定义 SCNGeometry 不将漫反射内容显示为纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48728060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com