メインメニューを開く

差分

シェーダー

1,712 バイト追加, 2023年10月26日 (木) 07:05
編集の要約なし
'''シェーダー'''とは、画像を描画時に加工する機能である。([[英語]]:shader)とは、本来は3DCGにおいて「陰影処理を行うこと」をいう。現在では「[[GPU]]で行う様々な処理の総称」となっている。
==概要==シェーダーは大きくわけて[[GPU]]が固定機能として持つ「[[固定シェーダー]]」と、[[プログラマー]]が独自の処理を記述できる「[[プログラマブルシェーダー]]」に分けられる。 現在ではプログラマブルシェーダーが主流であるため「シェーダー=プログラマブルシェーダー」となっていることが多い。2018年時点で固定シェーダーを採用している現役製品は[[ニンテンドー3DS]]くらいである。 また、ほとんどの[[ゲームフレームワーク]]や[[ゲームエンジン]]では無駄に[[プログラミング]]しなくても定番のレンダリング処理はあらかじめ[[固定シェーダー]]として用意されている。これらでは内部的にはプログラマブルシェーダーを叩いているがソフトウェア的に固定シェーダーに見せている。 最近は[[人工知能]]だ[[ブロックチェーン]]だと[[DXライブラリGPGPU]]の絡みで普通の計算もし易い仕様の[[プログラミング言語]]のシェーダーも増えている。  ==DXライブラリのシェーダー==DXライブラリにおいては、シェーダーを[[DXライブラリ]]においては、シェーダーを[[C言語]]っぽい言語で書き、付属のツールで[[コンパイル]]することができる。
===頂点シェーダー===
未稿
 
===ピクセルシェーダー===
バイナリの主な[[拡張子]]は".pso"すなわち「[[ファンタジースターオンライン|ぷそ]]」である。
[[テクスチャ]]([[プログラム]]で指定した画像)上の位置(左上を(0.0,0.0)、右下を(1.0,1.0)とする)などのパラメータが渡され、
その位置に書き込みたい色のデータを返す。色のデータは、RGBAの各要素をそれぞれ0その位置に書き込みたい色の[[データ]]を返す。色のデータは、[[RGBA]]の各要素をそれぞれ0.0~1.0の実数で表す形式で入出力する。
例:[[グレースケール]]化
一応[[行列]]の積などの計算もできそうだが、普通に計算したほうが速いし正確。
==DirectXのシェーダー==[[DirectX]]のシェーダーでは「[[HLSL]]」を用いる。 ==Unityのシェーダー==Unityでは「[[CG言語]]」を用いる。 ==OpenGLのシェーダー==未稿[[OpenGL]]および[[OpenGL ES]]は「[[GLSL]]」を用いる。
==Metalのシェーダー==Metalでは「[[UnityMetal Shading Language]]のシェーダー==未稿」を用いる。
==Vulkanのシェーダー ==[[Vulkan]]では「[[GLSL]]」および「[[OpenGLHLSL]]のシェーダー==未稿」の2種類が利用可能となった。
==関連項目==
* [[画像処理]]* [[シェーディング言語]]*[[MonoGameでシェーダーを使う]]
{{stub}}[[category: コンピューター・グラフィックス]][[category: 3DCG]][[category: GPU]]