「プログラマブルシェーダー」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
19行目: 19行目:
  
 
===Metal===
 
===Metal===
Xcodeで行う。
+
MetalのデバッグはXcodeで行うことになる。
  
 
*普通にデバッグ実行する
 
*普通にデバッグ実行する
36行目: 36行目:
 
===GLSL===
 
===GLSL===
 
目視。ひたらす目視。OpenGL系にステップ実行やウォッチ変数など求めてはいけない。
 
目視。ひたらす目視。OpenGL系にステップ実行やウォッチ変数など求めてはいけない。
 +
 +
ValkanはGLSLとHLSLに両対応しているので、宗教上の理由はグッとこらえてHLSLで書いたほうがいいと思うよ。
  
 
==関連項目==
 
==関連項目==

2019年8月14日 (水) 05:01時点における版

プログラマブルシェーダー英語:programmable shader)とは、グラフィックカード上のシェーダーで独自のプログラム(カスタムシェーダー)を実行させられるものをいう。

概要

初期のシェーダーは「ハードウェアT&L(最近では対義語的に固定シェーダーと呼ばれることが多い)」などと呼ばれ、いわゆるAPI的な感じで「ライティングをする」などの固定機能がGPUに用意されており、プログラマーは何も考えずポリゴンモデルやテクスチャや座標などをGPUに送信すると表示用の一枚ペラの絵が返ってくるというものであった。この方式は簡潔明瞭という利点と、だれが作っても似たように絵になるという欠点があった。

これをアセンブラのようなプログラミング言語で自前で記述できるようにしたのがプログラマブルシェーダーである。後にHLSLGLSLなどの高級言語などが登場したが、それでも3Dを扱うプログラマーに求められる作業量・記述量は劇的に増えた。

その結果、よほどの事がないかぎり固定シェーダーでこと足りるのにそんなアホくさいことに労力を割くのは得策ではないとしてUnityUnreal Engineなどのゲームエンジンが爆発的に普及した。

デバッグ

HLSL

Visual Studio Graphics Analyzerで行う。

  • 「デバッグ」→「グラフィックス」→「グラフィックス デバッグの開始」
  • フレームキャプチャを行う
  • サムネイルの上にあるフレーム番号をクリックする
  • Visual Studio Graphics Analyzerが起動する

Metal

MetalのデバッグはXcodeで行うことになる。

  • 普通にデバッグ実行する
  • 中段ツールバー(ステップ実行などがあるところ)のカメラアイコンをクリックする
    • Xcode-metal-shader-debug-1.png
    • 右側デバッグナビゲーターに「GPU」が追加され、メインウインドウが切り替わる
    • 中段ツールバーも入れ替わり、ゴキブリアイコンが登場する
  • 中段ツールバーのゴキブリアイコンをクリックする
    • Xcode-metal-shader-debug-2.png
    • バーテックスシェーダか、フラグメントシェーダかを選ぶダイアログが表示される
      • 上部のタブでバーテックスシェーダとフラグメントシェーダを切り替え
      • 中段のメインウインドウでポリゴンやピクセルを選ぶ
      • 下部の「DEBUG」ボタンを押すとステップ実行やウォッチ変数の表示が開始される

GLSL

目視。ひたらす目視。OpenGL系にステップ実行やウォッチ変数など求めてはいけない。

ValkanはGLSLとHLSLに両対応しているので、宗教上の理由はグッとこらえてHLSLで書いたほうがいいと思うよ。

関連項目

  • CUDA = 最先端、NVIDIA製品でしか動かない
  • HLSL = CUDAから実験的な機能を排除したもの。唯一まともなデバッガがある。
  • GLSL = OpenGLValkanなどで使われている。
  • Metal = Apple製品はOpenGLが禁止されこれ一本になった