我一直在学习了一些基本金属呈现和我坚持一些基本概念:用金属调用顶点着色器多少次?
我知道我们可以使用顶点数据发送到着色器:
renderEncoder.setVertexBuffer(vertexBuffer, offset: 0, index: 0)
然后我们可以找回与着色器:
vertex float4 basic_vertex(const device VertexIn* vertexIn [[ buffer(0) ]], unsigned int vid [[ vertex_id ]])
据我了解,顶点功能将被称为每次每个顶点一次,vertex_id将更新每次调用包含顶点索引。
问题是,从哪里来的vertex_id?
我可以用不同的尺寸发送到着色器更多的数据:
renderEncoder.setVertexBuffer(vertexBuffer, offset: 0, index: 0)
renderEncoder.setVertexBuffer(vertexBuffer2, offset: 0, index: 1)
如果vertexBuffer有3个要素,vertexBuffer2有10个元素......多少次被称为顶点功能? 10?
谢谢!