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