ビギグラマーのノート

自作PCやプログラミングについてのブログです。

定数バッファ

シェーダーで使われる定数値はグローバル変数として定義するためアプリケーション側から設定できる。この際に使うのが定数バッファである。なんのことやらさっぱりですな

f:id:BegiGrammer:20160410161518p:plain

定数バッファはこのように複数あるシェーダの定数をまとめて同時にコミットすることができる。コミット(参加、委任)

更に定数バッファはサイズ制限はあれど、頂点バッファーのようにアクセスできる特別なバッファリソースである。

つまり「シェーダをアプリケーション側から構うときは定数バッファをグローバル関数のように使ってデータを入力してくれ」ということ。

定数バッファの構造体をグローバルで定義する

定数バッファの主な具体的な使い方としてはアプリケーション内でのライト、カメラ等の具合を決めるために使う。

定数バッファを表すcbufferのcってCONSTANTのCなんだな、初めて知った。

流石に500行を超えてくると全体を完全に把握することが難しくなるな。関数やクラス等を駆使してなるべくあとから引用できるコードづくりが必要に成る。スパゲッティーモンスターコードにならないようにしなければイカン。