「シェーダー」の版間の差分

編集の要約なし
imported>Administrator
編集の要約なし
1行目: 1行目:
'''シェーダー'''([[英語]]:shader)とは、画像を描画時に加工する機能である。
'''シェーダー'''([[英語]]:shader)とは、画像を描画時に加工する機能である。


==[[DXライブラリ]]のシェーダー==
== DXライブラリのシェーダー ==
DXライブラリにおいては、シェーダーを[[C言語]]っぽい言語で書き、付属のツールで[[コンパイル]]することができる。
[[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の実数で表す形式で入出力する。
色のデータは、[[RGBA]]の各要素をそれぞれ0.0~1.0の実数で表す形式で入出力する。


例:[[グレースケール]]化
例:[[グレースケール]]化
46行目: 47行目:
一応[[行列]]の積などの計算もできそうだが、普通に計算したほうが速いし正確。
一応[[行列]]の積などの計算もできそうだが、普通に計算したほうが速いし正確。


==[[DirectX]]のシェーダー==
== DirectXのシェーダー==
[[DirectX]]では上位シェーダーモデルとして'''HLSL(High-Level Shader Language:上位レベルシェーダ言語)'''が採用されている。
[[DirectX]]では上位シェーダーモデルとして[[HLSL]](High-Level Shader Language:上位レベルシェーダ言語)が採用されている。


HLSLはDirectX9から実装された高級シェーダー言語であり、C言語風な書き方ができるようになっている。
HLSLはDirectX9から実装された高級シェーダー言語であり[[C言語]]風な書き方ができるようになっている。


現在、シェーダーモデル1~5までが存在しており、それぞれでの使える機能・対応する[[DirectX]]自体のバージョンが違うため、注意が必要となる
現在、シェーダーモデル1~5までが存在しており、それぞれでの使える機能・対応する[[DirectX]]自体のバージョンが違うため、注意が必要となる


Direct3D 9の場合(シェーダーモデル1.x~3.0)は、頂点シェーダーとピクセルシェーダーの二つが提供されていた。
Direct3D 9の場合(シェーダーモデル1.x~3.0)は、[[頂点シェーダー]]と[[ピクセルシェーダー]]の二つが提供されていた。


Direct3D 10.xの場合(シェーダーモデル4.x)は、そこにジオメトリシェーダーが追加。
Direct3D 10.xの場合(シェーダーモデル4.x)は、そこに[[ジオメトリシェーダー]]が追加。


Direct3D 11.xの場合(シェーダーモデル5.0)では、ハルシェーダー、ドメインシェーダー、コンピュートシェーダー(計算シェーダー、演算シェーダー)が追加となった。
Direct3D 11.xの場合(シェーダーモデル5.0)では、[[ハルシェーダー]]、[[ドメインシェーダー]]、[[コンピュートシェーダー]](計算シェーダー、演算シェーダー)が追加となった。


ただし、コンピュートシェーダーに関してはグラフィックパイプラインの機能ではなく、物理衝突演算やアニメーション計算などの計算時に[[GPU]]を使用するための機能として提供されている。
ただし、コンピュートシェーダーに関してはグラフィックパイプラインの機能ではなく、[[物理演算]]やアニメーション計算などの計算時に[[GPU]]を使用するための機能として提供されている。


なお、ファイルの[[拡張子]]は'''''.fx'''''となっている
なお、ファイルの[[拡張子]]は「[[.fx]]」となっている


----
----
123行目: 124行目:
</pre>
</pre>


==[[Unity]]のシェーダー==
== Unityのシェーダー ==
未稿
未稿


==[[OpenGL]]のシェーダー==
== OpenGLのシェーダー ==
未稿
未稿


==関連項目==
== 関連項目 ==
* [[画像処理]]
* [[画像処理]]
* [[シェーディング言語]]
* [[シェーディング言語]]
138行目: 139行目:


{{stub}}
{{stub}}
[[category: コンピューター・グラフィックス]]