私はいくつかの基本的な金属のレンダリングを学習してきた、と私はいくつかの基本的な概念で立ち往生しています:メタルで呼び出される頂点シェーダーの回数は何回ですか?
私たちが使用してシェーダに頂点データを送信することができます知っている:
renderEncoder.setVertexBuffer(vertexBuffer, offset: 0, index: 0)
をそして、我々はそれを取得することができますシェーダに:私はそれを理解したよう
vertex float4 basic_vertex(const device VertexIn* vertexIn [[ buffer(0) ]], unsigned int vid [[ vertex_id ]])
、頂点関数は、一度、各頂点ごとに呼び出され、vertex_idは、頂点インデックスを含むように呼び出しごとに更新します。
質問はどこから来ましたか?
私はシェーダに異なるサイズでより多くのデータを送ることができ:vertexBufferは3つの要素を持っている、とvertexBuffer2は10個の要素を持っている場合
renderEncoder.setVertexBuffer(vertexBuffer, offset: 0, index: 0)
renderEncoder.setVertexBuffer(vertexBuffer2, offset: 0, index: 1)
を...頂点関数が何度も呼ばれていますか? 10?
ありがとうございます!