2017-05-08 5 views
2

私はカラーアタッチメントがメタル以外のAPI(私はOpenGLをよく知っています)に存在すると想定していますが、グラフィックスプログラミングが初めてで、概念的には正確にカラーアタッチメントが何であるかを知りたいと思います。私がやったすべての図は、配列のカラーアタッチメントの最初のプロパティを設定し、レンダーパスを作成することです。文字通りカラーアタッチメントは単なるバッファーですか?複数のバッファ/テクスチャに同じイメージを描画することは、レンダーパスで複数を使用することの唯一のポイントですか?メタルのカラーアタッチメントとは何ですか?

編集:パイプラインの状態には、ちょうど思い出したように、色の添付ファイルの配列もあります。基本的にバッファであれば、パイプラインの状態を設定することと何が関係していますか?

答えて

2

あなたは、OpenGLのいくつかの知識を持っているように見て、私はそれらの用語に入れましょう:

A色の添付ファイルは、オフスクリーンレンダリングに使用するレンダリングターゲットとしてフレームバッファにアタッチしたテクスチャです。

カラーアタッチメントは、反射、屈折、および遅延シェーディングを含むいくつかの手法で使用されます。

グラフィックスパイプラインの点では、添付ファイルを持つバッファは、テクスチャデータのソースまたはエンドポイントレンダーターゲットのいずれかになる傾向があります。

バインドされたバッファを変更すると、コンピュータグラフィックハードウェアが状態に基づいているため、パイプラインの状態が変更されます。パイプライン全体の状態変化をキューに入れ(シェーダx、バインドバッファy、ユニフォームzを設定する)、変更を実行してから、結果を画面に表示します。

+0

ああ、意味があります。だから、私はMinecraftのスプライトシートのような大きなテクスチャを持っていて、毎回の描画コールで何度もテクスチャをカットするつもりだと言います。私は速い繰り返しアクセスのために、そのテクスチャを状態そのものの添付ファイルの1つにするでしょうか? –

+1

@SamClausいいえ、それはちょうどテクスチャになります。通常、フレームバッファへの添付ファイルは、スクリーンレンダリングをオフにしたいときに使用します。その添付ファイルをサンプリングする場合は、他のテクスチャと同じようにバインドするだけです。 –

関連する問題