我想在我的金属着色器中传递一个浮点数,但我无法弄清楚如何实现。
这是我的着色器:
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?
如何传递单个浮点数值?
setFragmentBytes
发送数据到片段着色器,所以如果像OP一样想要向顶点着色器发送数据,请使用setVertexBytes
。 - Bjorn