FC2ブログ

RHW値

RHW値

RHW値って、まだ、いまいちよく分からない・・・



●DirectXでゲームでもつくろうか
http://f30.aaa.livedoor.jp/~kimkim/VC/DirectX3D/dx3d9_etc.html

●Monshoさんのサイト
http://monsho.hp.infoseek.co.jp/dx/dx3.html

●すきやきさんのサイト
3D座標変換http://tamachan.club.kyutech.ac.jp/~sukiyaki/index.php?3D%BA%C2%C9%B8%CA%D1%B4%B9

rhwは3D座標変換済み頂点を意味します。とにかく二次元頂点はrhwが付くことだけを覚えといてください。



●電子通
http://www.realdigital.co.jp/densi2/program/d3d/dx3d-011.htm
/*------------------------------------------------------------------------------------------
- 構造体名:tag_dx_TLVERTEX
- 構造体説明:
DirectX8 3D 2D描画用の頂点情報構造体
-
------------------------------------------------------------------------------------------*/
typedef struct tag_dx_TLVERTEX
{
float x,y,z; //位置情報
float rhw; //頂点変換用
D3DCOLOR color; //ポリゴンカラー
float tu,tv; //テクスチャ座標
}TLVERTX,*LPTLVERTEX;

上は、今まで利用していた頂点情報の構造体です。
実は、ほとんど「完全3D様の頂点構造体」と同じなのですが、不必要なデータが存在しています。

それが「rhw(頂点変換)」のデータです。


MicrosoftR Direct3DR でワールド行列、ビュー行列、または射影行列を使用して頂点を
トランスフォームせず、ライティング計算も実行しないことを意味している
(ヘルプ抜粋

すなわち、3Dにおける2Dで利用する用のデータと思ってもらえれば良いのですが・・・・
これから行う描画は、完全3Dとなりますのでこのデータは不必要になるわけです。


#define _FVF_TLVERTEX ( D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1 )

今までの頂点情報は、上の様にマクロ定義されていました。
これは、3Dにおける2D描画用のマクロなわけですが・・・・赤色文字になっているパラメタ。
「D3DFVF_XYZRHW」は、完全3D描画では利用しません。

このパラメタを設定するとDirectXは、2D描画用の頂点情報と認識してしまうからです。

「RHW」は、そういう意味があると思ってください



そこで、この「D3DFVF_XYZRHW」を「D3DFVF_XYZ」に変更する事にします。
これによって、DirectXは、完全な3D描画を行う為の頂点情報なんだと認識できる様になります。



#define _FVF_TLVERTEX ( D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1 )
スポンサーサイト

comment

Secret

プロフィール

syarekoube

Author:syarekoube
しゃれこうべとあずいの2人によるブログです。
主にアクションゲーム制作について発表しています。
あと、数学の研究です。

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

ブログ内検索
RSSフィード
リンク