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