ページ 11

3D空間に画像を回転させて表示する

Posted: 2013年2月07日(木) 19:16
by dic
DxLib本家に書こうかまよったんですけど、こっちで聞きます

3D空間に画像を回転させて、描画する関数
http://homepage2.nifty.com/natupaji/DxL ... html#R14N9
int DrawBillboard3D( VECTOR Pos, float cx, float cy, float Size, float Angle, int GrHandle, int TransFlag ) ;
がありますが、中心点を中心にXY軸を中心に回転します。

しかし、私がしたいのは、Y軸を中心にしたり、X軸を中心に回転させたいのです。
DxLibには、テクスチャという言葉がでてこないのですが、どうやって、Y軸を中心にしたり
X軸を中心にして、回転させて描画できるのでしょうか?

環境:Windows 7 64bit
Visual C++ 2010 Express
DxLibを使用

Re: 3D空間に画像を回転させて表示する

Posted: 2013年2月07日(木) 19:40
by softya(ソフト屋)
ビルボードですので必ず板が正面(画面に対して平行)を向きます。それがこの関数の役割です。
Y軸に回転は自前で計算する必要があります。

【補足】
言葉足らずだったので追記します。
自分でテクスチャを張ったポリゴン板を作りカメラの行列を参照して正面に来るようにしてローカル座標系で回転させないといけません。

Re: 3D空間に画像を回転させて表示する

Posted: 2013年2月07日(木) 19:44
by dic
>>softyaさん
いつもありがとうございます。

自前で計算したあとは、DxLibライブラリで、何の関数で
描画できるのでしょうか?

Re: 3D空間に画像を回転させて表示する

Posted: 2013年2月07日(木) 19:46
by dic
>>補足に質問

ポリゴンはどこで作成するのでしょうか?
別のソフトが必要になるのでしょうか?
簡単な四角形ならプログラムで作成できますが、サンプルがほしいです。

Re: 3D空間に画像を回転させて表示する

Posted: 2013年2月07日(木) 19:50
by dic
http://homepage2.nifty.com/natupaji/DxL ... html#R14N7

コード:

int DrawPolygon3D( VERTEX3D *Vertex, int PolygonNum, int GrHandle, int TransFlag ) ;
すいません、生のDirectX とはやり方が違うので気づきませんででした。
上の関数でいいでしょうか?

Re: 3D空間に画像を回転させて表示する

Posted: 2013年2月07日(木) 20:26
by dic
http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=2749
上のところを参考にしたらできました。

Re: 3D空間に画像を回転させて表示する

Posted: 2013年2月07日(木) 21:25
by softya(ソフト屋)
もう一つは、ポリゴン板をメタセコイヤなどで作ってDrawModel()する方法もあります。
この場合は、MV1SetTextureGraphHandle()でテクスチャを置き換えることもできます。
http://homepage2.nifty.com/natupaji/DxL ... html#R15N3

Re: 3D空間に画像を回転させて表示する

Posted: 2013年2月08日(金) 07:09
by dic
なるほど、そういう手もありですね。