ページ 1 / 1
DirectX9.0について
Posted: 2013年6月17日(月) 21:37
by うおおおお!
私は、現在DirectX9.0の勉強を始めました。そこで、たくさんの構造体や関数が出てきたのですが、名前が長くて覚え切れません。
また、 こういうものを開発したい。 というのはあるのですが、DirectXでどの関数を使えばいいのか分かりません。
それ以外にも、デバイスの初期化や三角形を表示しろと言われても、DxLibと違い、凄く遠回りで良く分からない処理が多かったりどの関数を使えばいいのかも分からなかったり、出来る気がしません。
今回は、皆さんはどうやって覚えられたのか教えて頂きたく質問しました。
稚拙な文章ですが、よろしくお願いします。
Re: DirectX9.0について
Posted: 2013年6月17日(月) 22:08
by box
うおおおお! さんが書きました:たくさんの構造体や関数が出てきたのですが、名前が長くて覚え切れません。
とりあえず、名前を覚える必要はほとんどないであろう、とだけ申しておきます。
Re: DirectX9.0について
Posted: 2013年6月17日(月) 22:16
by softya(ソフト屋)
何を作ろうとしているのかは分かりませんが、DirectX Sample Browser でサンプルコードから始めてみてはどうでしょうか?
関数に関しては大体は定番という処理が有るので、基本の部分は定番化して忘れてしまえると思います。 → ライブラリ化する。
それとDXライブラリのソースコードを眺めてみては?
Re: DirectX9.0について
Posted: 2013年6月18日(火) 06:20
by 超絶右留斗羅天才プログラマー
こちらのサイトをその1からその68まで素直に実装して覚えましたよ(*´▽`*)
http://marupeke296.com/DirectXMain.html
中学生の好きそうな専門用語がたくさん並んでいていワクワクしながら読んでいたのを覚えています。
長い名前のものは意味を考えると覚えやすいと思います。
覚える必要はありませんが、何度も使っていると勝手に頭が覚えてしまうといった、そんな具合です。
LPDIRECT3DDEVICE9→ロングポインタ(LP)のデバイス
D3DXVECTOR2→floatが2つあるやつ
D3DXVECTOR3→floatが3つあるやつ
D3DXVECTOR4→floatが4つあるやつ
などなど。
Re: DirectX9.0について
Posted: 2013年6月18日(火) 11:07
by せんちゃ
型の名前を覚えることに意識するのではなく、
そのデータ型がどういう役割を担っていてどういうときに使うものなのかさえわかっていればいいと思います。
たとえば
LPDIRECT3DDEVICE9→「LP」はWindowsでのポインタを意味する DIRECT3DDEVICE9→Direct3D9のデバイス
ポインタであるということはインスタンスの生成及び参照を持つことになります。
インスタンス生成はCreateDeviceで行っていることになりますが、
これを行うにはDirect3D9のインターフェースが必要です。
そのためLPDIRECT3D9というデータ型があります。
D3DPRESENT_PARAMETERSという構造体がありますがPresentとは誕生日プレゼントとかのプレゼントです。
意味は「贈る、贈呈する、捧げる」などもありますが、DirectXではたぶん「描写する、公開する」の意味です。
つまりDirect3D(D3D)の描写(PRESENT)に必要なパラメータ一覧(PARAMETERS)だから
D3DPRESENT_PARAMETERSという名前なのかなぁと
Descriptionとは「説明、解説」という意味で、Surfaceは「面、表面、外面」という意味があります
テクスチャの面情報を見るためにD3D_SURFACE_DESCがある、と考えるのはちょっと強引でしょうか。
といったようにデータ型はあくまでもある役割に必要なパラメータ一覧にすぎず、重要なのは
そのパラメータがなんのためにあるのか、ということです。
なので型名は覚えても仕方ないので「こういう機能が欲しい!」というときに参考書やリファレンスを見たり
google検索していけばいいのかなと思います。
Re: DirectX9.0について
Posted: 2013年6月19日(水) 08:08
by naohiro19
DirectXの型名はマイクロソフトがtypedefしたものなのです。