トップページgamedev
1001コメント376KB

DirectX総合スレ (Part6)

レス数が1000を超えています。これ以上書き込みはできません。
0001DirectX62006/11/17(金) 00:38:52ID:lRjOsWKq
言語はC++
他の言語使ってる奴はいますぐ消えろ

■過去スレ

DirectX総合スレ
Part 1: http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/
Part 2: http://pc5.2ch.net/test/read.cgi/gamedev/1095863432/
Part 3: http://pc5.2ch.net/test/read.cgi/gamedev/1105333209/
Part 4: http://pc8.2ch.net/test/read.cgi/gamedev/1132937938/
Part 5: http://pc8.2ch.net/test/read.cgi/gamedev/1157727402/
0978名前は開発中のものです。2007/05/17(木) 00:33:34ID:/T2VJZC8
無理じゃね?
0979名前は開発中のものです。2007/05/17(木) 00:59:13ID:hoPxXnJ+
>>977
どっかのテクスチャに描画してその描画結果を取得するんじゃ駄目なの?
0980名前は開発中のものです。2007/05/17(木) 01:25:44ID:LzmNTBWG
>>975
それが無理なんです‥
やって見ればわかります。
ちなみに、カメラの位置は地面から垂直な天上から30度下げた位置にあり
つまり、地面とその上に立つキャラを斜め上から見下ろしてる状態です。

キャラをビルボードにすると、丁度キャラが地面に立ってるようになる訳で
ビルボードにした場合は、カメラに対して手前のキャラは大きく
奥のキャラは小さく表示されるべきなのに、上の方法を使用しただけでは
全部のキャラが手前奥関係なしに同じ大きさになってしまうのです。

ビュー行列の逆行列(シフト成分ゼロ)に加えて、もう一つ何かの計算が
必要だと思うのですが、どうかそれをご教授ください。
0981名前は開発中のものです。2007/05/17(木) 01:45:40ID:kp/jlzet
視線ベクトルと単位垂直ベクトルの外積を、単位化して水平ベクトル
            ^^^^^^^^^^^^@            ^^^^^^^^^^^^A
@とAで3D空間上にポリゴン表示。
0982名前は開発中のものです。2007/05/17(木) 07:29:25ID:hoPxXnJ+
>>980
>それが無理なんです‥
>やって見ればわかります。
いや、俺>>975じゃないけど感覚でそうはならんはずってわかるっしょ
だってカメラの姿勢行列ってワールドに普通に存在するモデルとなんも変わらないじゃん。
その行列の位置座標を変えるだけなんだからこれでおかしいってことないでしょ。
仮にカメラの回転成分を
1000
0100
0010
にして位置座標だけ変えてみたら描画までおかしくなりそうか?ならないっしょ?

なにか別のことしててそれがバグってるんでしょ。
0983名前は開発中のものです。2007/05/17(木) 07:38:22ID:hoPxXnJ+
書いてて気付いたけど
もしかして>>980ってワールドの拡大縮小を利用して描画のサイズを決定してるんじゃ・・・
0984名前は開発中のものです。2007/05/17(木) 09:45:28ID:mphBkoz/
要は、木のビルボードみたいに軸回転だけにしたいわけね。
0985名前は開発中のものです。2007/05/17(木) 09:58:55ID:LzmNTBWG
>>983
そうなんです。
もともとD3DTS_WORLDに、::D3DXMatrixScaling(1 / 1280, 1 / 960, 1 / 480)で生成した
スケーリング行列を設定してたので、先のビュー逆行列とスケーリング行列の積を
D3DTS_WORLDへ、新たに設定してます。
それはダメなのですか?
0986sage2007/05/17(木) 14:11:34ID:rJQ9Pieq
各オブジェクトの D3DTS_WORLD は共通で、代わりに位置座標は、
DrawPrimitiveUPかなんかで描画するときに、ポリゴンの座標を直接変更してるってこと?
もしそうなら、ポリゴン座標の変更はやめて、
各オブジェクトごとに、ビルボード行列*平行移動を求めて
D3DTS_WORLDに設定しないとだめね。
0987名前は開発中のものです。2007/05/17(木) 21:08:08ID:hoPxXnJ+
>>985
>それはダメなのですか?
うん
別にそのままでも動くっちゃ動くけど、色んな行列変換ができなくなるよ
こういうのははじめにデザイナさんと打ち合わせして寸法決めとかないと駄目
んでワールドの原点に普通に表示したときには
1000
0100
0010
0001
で普通に表示できないと苦しい
スケール使って調節するってのは普通はやんない。と思う。
0988名前は開発中のものです。2007/05/17(木) 21:22:58ID:i1w2om/x
スクリーン座標に対応させたビルボード用のビュー行列を用意しておいて、
必用なときだけ切り替えれば済む話。
09899772007/05/17(木) 23:31:15ID:+BYlvm7I
>>978、979
テクスチャに書いてgetrendertargetdataでシステムメモリに
コピーというのはやったのですが遅いのでgetintを試したの
ですけど、getintは無理のようですね。ありがとうございました。
0990名前は開発中のものです。2007/05/17(木) 23:42:41ID:m+ip/3ig
次スレから関連スレにここも加えてください。
過疎スレになってるんで^^;

【Xbox360】 XNA Game Studio その3 【C#】
http://pc11.2ch.net/test/read.cgi/gamedev/1176692259/l50

0991名前は開発中のものです。2007/05/18(金) 04:33:58ID:UaSmkD42
だが断る。
0992名前は開発中のものです。2007/05/18(金) 18:12:46ID:pn45EDxp
スレ違いかもしれませんが、ベクトル演算について質問させて下さい。

正規化された三次元ベクトル(1,0,0)をD3DXMatrixRotation等の関数で
回転させて(0,0,1)や(0.5,0,0.5)等のベクトル値に変換したいのです。

この場合(1,0,0)のベクトルを(0.3,0.4,0.3)等に変換したい場合に
どの軸でどの程度回転させれば良いかを知る方法はありませんか?

分かりにくいかもしれませんが、ベクトルの向きが変わった場合に
ベクトルをどのように演算したら変更後の値になるかを知りたいのです。
0993名前は開発中のものです。2007/05/18(金) 18:58:22ID:HPS080xw
(0.5,0,0.5)とか(0.3,0.4,0.3)って
そもそも長さが変わってしまってるんだが
09949922007/05/18(金) 19:04:24ID:pn45EDxp
>>933
うあぁぁぁあ・・・そうだった。すみません。アフォだ俺。
長さが変わらないという条件下でよろしくお願いします。
0995名前は開発中のものです。2007/05/18(金) 20:26:45ID:mvQKFJJ/
原点を含むベクトル二点の三角形に対する法線が回転軸。
原点の角が変化量。
09969922007/05/18(金) 21:00:47ID:pn45EDxp
>>995
あなたが神か。
分かりやすい説明ありがとうございます。理解できました。
確かにその方法で解決できそうですね。
0997名前は開発中のものです。2007/05/19(土) 01:20:41ID:AKWRgFBQ
次スレまだだよな?立てるぞ
0998名前は開発中のものです。2007/05/19(土) 01:30:35ID:AKWRgFBQ
ごめん無理だった。以下テンプレ

DirectX総合スレ (Part7)
------------------------------------------------
言語はC++
他の言語使ってる奴はいますぐ消えろ

■過去スレ

DirectX総合スレ
Part 1: http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/
Part 2: http://pc5.2ch.net/test/read.cgi/gamedev/1095863432/
Part 3: http://pc5.2ch.net/test/read.cgi/gamedev/1105333209/
Part 4: http://pc8.2ch.net/test/read.cgi/gamedev/1132937938/
Part 5: http://pc8.2ch.net/test/read.cgi/gamedev/1157727402/
Part 6: http://pc11.2ch.net/test/read.cgi/gamedev/1163691532/
0999名前は開発中のものです。2007/05/19(土) 03:42:32ID:NonazCji
ほかの言語で悪いか。
荒らすからそう思え
1000名前は開発中のものです。2007/05/19(土) 03:44:05ID:YiDf8z5R
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。