Direct3Dを勉強しているのですが、
頂点シェーダやピクセルシェーダは、
(ゲーム作成の)どういうときに使うのでしょうか?
初心者ですが、よろしくお願いします。
環境?は、
C++、DirectX 9です。
Direct3D
Re:Direct3D
頂点シェーダやピクセルシェーダ等(DirectX10以降は他にもあります)は、
主に描画を行う時に使用するものです。
DirectX9 では、固定機能パイプラインという、
シェーダを使用しなくても描画できる機能がありますが、
DirectX10 以降では固定機能パイプラインが廃止されています。
(描画には頂点シェーダ・ピクセルシェーダを使用することが必須となる)
それはさておき、 DirectX9 でのシェーダの使い道ですが、
固定機能パイプラインでは補えない部分、つまり
描画時の画像処理(ぼかし・色変換等)や、頂点テクスチャを利用した波の表現、
デプスシャドウ(影)などを実現する際に必要となります。
また、最近の GPU では固定機能パイプラインよりもシェーダを使って描画したほうが
余計なプロセスを省くことができるので高速に描画できます。
主に描画を行う時に使用するものです。
DirectX9 では、固定機能パイプラインという、
シェーダを使用しなくても描画できる機能がありますが、
DirectX10 以降では固定機能パイプラインが廃止されています。
(描画には頂点シェーダ・ピクセルシェーダを使用することが必須となる)
それはさておき、 DirectX9 でのシェーダの使い道ですが、
固定機能パイプラインでは補えない部分、つまり
描画時の画像処理(ぼかし・色変換等)や、頂点テクスチャを利用した波の表現、
デプスシャドウ(影)などを実現する際に必要となります。
また、最近の GPU では固定機能パイプラインよりもシェーダを使って描画したほうが
余計なプロセスを省くことができるので高速に描画できます。
Re:Direct3D
下記のサイトが使用例として参考になると思います。
Maverick Project
http://maverickproj.web.fc2.com/pg00.html
こちらのサイトでは、シェーダを利用した沢山の例があります。
シェーダの大まかな基本部分については、下記の、
ゲームつくろー!
http://marupeke296.com/GameMain.html
の、「プログラマブルシェーダ編」にて解説されています。
シェーダ自体の情報は 10 年近く前(DirectX8 が登場した辺り)から存在しているので、
シェーダに関する情報は探そうと思えばいくらでも見つかります。
専門的知識や仕様を確認するには MSDN ライブラリが一番ですが。
Maverick Project
http://maverickproj.web.fc2.com/pg00.html
こちらのサイトでは、シェーダを利用した沢山の例があります。
シェーダの大まかな基本部分については、下記の、
ゲームつくろー!
http://marupeke296.com/GameMain.html
の、「プログラマブルシェーダ編」にて解説されています。
シェーダ自体の情報は 10 年近く前(DirectX8 が登場した辺り)から存在しているので、
シェーダに関する情報は探そうと思えばいくらでも見つかります。
専門的知識や仕様を確認するには MSDN ライブラリが一番ですが。