「シェーダー」の版間の差分
編集の要約なし |
imported>Administrator 編集の要約なし |
||
| 1行目: | 1行目: | ||
'''シェーダー'''([[英語]]:shader)とは、画像を描画時に加工する機能である。 | '''シェーダー'''([[英語]]:shader)とは、画像を描画時に加工する機能である。 | ||
==[[DXライブラリ]] | == DXライブラリのシェーダー == | ||
[[DXライブラリ]]においては、シェーダーを[[C言語]]っぽい言語で書き、付属のツールで[[コンパイル]]することができる。 | |||
===頂点シェーダー=== | === 頂点シェーダー === | ||
未稿 | 未稿 | ||
===ピクセルシェーダー=== | |||
=== ピクセルシェーダー === | |||
バイナリの主な[[拡張子]]は".pso"すなわち「[[ファンタジースターオンライン|ぷそ]]」である。 | バイナリの主な[[拡張子]]は".pso"すなわち「[[ファンタジースターオンライン|ぷそ]]」である。 | ||
[[テクスチャ]]([[プログラム]]で指定した画像)上の位置(左上を(0.0,0.0)、右下を(1.0,1.0)とする)などのパラメータが渡され、 | [[テクスチャ]]([[プログラム]]で指定した画像)上の位置(左上を(0.0,0.0)、右下を(1.0,1.0)とする)などのパラメータが渡され、 | ||
その位置に書き込みたい色の[[データ]]を返す。 | |||
色のデータは、[[RGBA]]の各要素をそれぞれ0.0~1.0の実数で表す形式で入出力する。 | |||
例:[[グレースケール]]化 | 例:[[グレースケール]]化 | ||
| 46行目: | 47行目: | ||
一応[[行列]]の積などの計算もできそうだが、普通に計算したほうが速いし正確。 | 一応[[行列]]の積などの計算もできそうだが、普通に計算したほうが速いし正確。 | ||
==[[DirectX]] | == DirectXのシェーダー== | ||
[[ | [[DirectX]]では上位シェーダーモデルとして[[HLSL]](High-Level Shader Language:上位レベルシェーダ言語)が採用されている。 | ||
HLSLはDirectX9から実装された高級シェーダー言語であり[[C言語]]風な書き方ができるようになっている。 | |||
現在、シェーダーモデル1~5までが存在しており、それぞれでの使える機能・対応する[[DirectX]]自体のバージョンが違うため、注意が必要となる | 現在、シェーダーモデル1~5までが存在しており、それぞれでの使える機能・対応する[[DirectX]]自体のバージョンが違うため、注意が必要となる | ||
Direct3D 9の場合(シェーダーモデル1.x~3. | Direct3D 9の場合(シェーダーモデル1.x~3.0)は、[[頂点シェーダー]]と[[ピクセルシェーダー]]の二つが提供されていた。 | ||
Direct3D 10.xの場合(シェーダーモデル4. | Direct3D 10.xの場合(シェーダーモデル4.x)は、そこに[[ジオメトリシェーダー]]が追加。 | ||
Direct3D 11.xの場合(シェーダーモデル5. | Direct3D 11.xの場合(シェーダーモデル5.0)では、[[ハルシェーダー]]、[[ドメインシェーダー]]、[[コンピュートシェーダー]](計算シェーダー、演算シェーダー)が追加となった。 | ||
ただし、コンピュートシェーダーに関してはグラフィックパイプラインの機能ではなく、[[物理演算]]やアニメーション計算などの計算時に[[GPU]]を使用するための機能として提供されている。 | |||
なお、ファイルの[[拡張子]] | なお、ファイルの[[拡張子]]は「[[.fx]]」となっている | ||
---- | ---- | ||
| 123行目: | 124行目: | ||
</pre> | </pre> | ||
== | == Unityのシェーダー == | ||
未稿 | 未稿 | ||
== | == OpenGLのシェーダー == | ||
未稿 | 未稿 | ||
==関連項目== | == 関連項目 == | ||
* [[画像処理]] | * [[画像処理]] | ||
* [[シェーディング言語]] | * [[シェーディング言語]] | ||
| 138行目: | 139行目: | ||
{{stub}} | {{stub}} | ||
[[category: コンピューター・グラフィックス]] | |||