プログラマブルシェーダー
2019年8月14日 (水) 04:58時点におけるimported>Administratorによる版 (→Metal)
概要
初期のシェーダーは「ハードウェアT&L(最近では対義語的に固定シェーダーと呼ばれることが多い)」などと呼ばれ、いわゆるAPI的な感じで「ライティングをする」などの固定機能がGPUに用意されており、プログラマーは何も考えずポリゴンモデルやテクスチャや座標などをGPUに送信すると表示用の一枚ペラの絵が返ってくるというものであった。この方式は簡潔明瞭という利点と、だれが作っても似たように絵になるという欠点があった。
これをアセンブラのようなプログラミング言語で自前で記述できるようにしたのがプログラマブルシェーダーである。後にHLSLやGLSLなどの高級言語などが登場したが、それでも3Dを扱うプログラマーに求められる作業量・記述量は劇的に増えた。
その結果、よほどの事がないかぎり固定シェーダーでこと足りるのにそんなアホくさいことに労力を割くのは得策ではないとしてUnityやUnreal Engineなどのゲームエンジンが爆発的に普及した。
デバッグ
HLSL
Visual Studio Graphics Analyzerで行う。
- 「デバッグ」→「グラフィックス」→「グラフィックス デバッグの開始」
- フレームキャプチャを行う
- サムネイルの上にあるフレーム番号をクリックする
- Visual Studio Graphics Analyzerが起動する
Metal
Xcodeで行う。
- 普通にデバッグ実行する
- 中段ツールバー(ステップ実行などがあるところ)のカメラアイコンをクリックする
- 中段ツールバーのゴキブリアイコンをクリックする
GLSL
目視。ひたらす目視。OpenGL系にステップ実行やウォッチ変数など求めてはいけない。