ページ 11

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 初心者
参考になりました。
ありがとうございます。