我一直在學習了一些基本金屬呈現和我堅持一些基本概念:用金屬調用頂點着色器多少次?
我知道我們可以使用頂點數據發送到着色器:
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?
謝謝!