gpt4 book ai didi

ios - 如何使用 Swift 将 Float uniform 传递给 iOS Metal 着色器?

转载 作者:IT王子 更新时间:2023-10-29 05:40:51 29 4
gpt4 key购买 nike

我想将一个 float 传递给我的 Metal 着色器。我想不通。

这是我的着色器:

vertex float4 model_vertex(unsigned int iid[[instance_id]]
constant float angle) {
float number = float(iid) / 64.0;
return float4(number * sin(angle), number * cos(angle), 0.0, 1.0);
}

现在我想把它传递给着色器:

let renderPassDescriptor = MTLRenderPassDescriptor()
let renderEncoder = commandBuffer.renderCommandEncoderWithDescriptor(renderPassDescriptor)
// ...
let angle: Float = 0.5
renderEncoder.setUniform1(angle) // What do I do here?

如何传递单个浮点值?

最佳答案

同样在 10.11+ 和 iOS 9+ 中你可以使用:

public func setVertexBytes(bytes: UnsafePointer<Void>, length: Int, atIndex index: Int)

如果您只使用缓冲区一次(并且您的数据小于 4K 长),这比创建 MTLBuffer 更好。

关于ios - 如何使用 Swift 将 Float uniform 传递给 iOS Metal 着色器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26298840/

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