6

Apple からの Metal と MetalKit に関する紹介ビデオを見ています。

シェーダーのサンプル コードには、これらの二重括弧のような[[buffer(0)]]引数があります。なぜブラケットが2つあるのですか?それは何か意味がありますか、それともキーワード「buffer」が続くことを示すだけですか? 標準の C++ にはそのような構造はありませんね。

vertex Vertex vertex_func(constant Vertex *vertices [[buffer(0)]],
                              constant Uniforms &uniforms [[buffer(1)]],
                              uint vid [[vertex_id]])

また、GP-GPU の入門として、1 週間か 2 週間の楽しいプロジェクトは何でしょうか? 数学のスキルはあるが芸術的スキルのない初心者にとって扱いやすいもの。

4

2 に答える 2

3

この [[ x ]] を使用して、シェーダーと CPU の間で渡される属性を宣言します

私は引用します:

[[ … ]] 構文は、シェーダーと CPU の間でやり取りされるリソースの場所、シェーダー入力、組み込み変数などの属性を宣言するために使用されます。

于 2016-12-04T20:11:18.997 に答える