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