シェーダ
GPUを利用することで高速に動作することが特徴の、主にグラフィックスを描画するための技術や概念の総称
最近はシェーダを使っていろんなことができる
シェーダアート、GPGPU(Deep Learning、シミュレーション) 本質は、GPUにプログラマブルに計算させるという部分
一般的には、
3DCGにおいて、陰影付けや表面の質感や凹凸の設定、各画素の表示色の決定などを行うプログラム
フラグメントシェーダの説明っぽいねヲ.icon
歴史
ラスタライズ方式のレンダリングの工程に、もっと複雑な処理を実装してえな~
プログラマブル書けるようにしたら、幸福になれんじゃね?
シェーダ爆誕
そしてもっと好きなように書ける工程を増やしていった(シェーダの種類が増えた)
用途によって、分類できる
頂点シェーダ(ヴァーテックスシェーダ)
頂点数だけ実行
頂点が持つ情報を使っていろいろ計算
頂点位置をずらしたり
頂点自体を増やすことはできない
テッセレーションシェーダ(テッセレーションとかしたい時に使うシェーダ群)
ポリゴンをどう分割するかを計算する
ドメインシェーダ(テッセレーション評価シェーダ)
分割したポリゴンの頂点数だけ実行
分割したポリゴンの頂点の位置とかを決める
ジオメトリシェーダ
WebGLにはない
頂点数の増減
頂点が持つ情報を使っていろいろ計算
頂点シェーダと一緒???ヲ.icon
フラグメントシェーダ(ピクセルシェーダ)
ピクセル数だけ実行
いろんな情報を踏まえて、最終的なピクセルの色を計算
コンピュートシェーダ
GPGPUするときに使う
単にGPUを使って計算的なニュアンス?ヲ.icon
サーフェスシェーダ
誰でもシェーダが記述できるようにと開発されたUnity独自のシェーダ URPでは使えない
頂点シェーダ→サーフェスシェーダ→ライティングという流れらしい
サーフェスシェーダで一色で塗るという指定をしても、後工程にライティングがあるので、陰影が付く
ShaderLabで記述する
HLSLとCgを組み合わせたものらしいヲ.icon
シェーダを記述するための言語、シェーディング言語
なんかめっちゃあるっぽいわヲ.icon
3DグラフィックスAPIの数だけ存在する?ヲ.icon
reference