トップページ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/
0951名前は開発中のものです。2007/05/15(火) 01:03:08ID:kfJ7M9rT
{
value_t value0; // スタック型

value_t value1 = value0; // スタック型は常にコピー

value_t^ pValue0 = new value_t(); // ヒープ型

value_t^ pValue1 = pValue1; // ヒープ型は参照カウント増加

value_t^ pValue2 = ^value0; // オートボクシング
} // スコープを外れるとスタック型は、Disposeコール

っていうかC++/CLI?
0952名前は開発中のものです。2007/05/15(火) 09:45:05ID:ySPPyGNu
>>948
CPUかフィルレート律速の状況なのに、頂点数減らすために
わざわざ柔軟性の無い実装に変えても意味ないでしょ。
0953名前は開発中のものです。2007/05/15(火) 10:03:15ID:4as9xAPK
まぁ一般的に頂点シェーダーが吊る事ってまずないからなぁ・・・。
元は画面いっぱいのチップが重いって話なんだしDP量に比例するCPU負荷の話だろ。
0954名前は開発中のものです。2007/05/15(火) 15:46:48ID:247W4gkD
すみません
>717のLueというライブラリは何かの略称でしょうか?
ぐぐっても出てきませんです。
0955名前は開発中のものです。2007/05/15(火) 16:46:21ID:wufws/3W
>>954
Lunaライブラリ系列についてはつい最近出来た
http://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A8%A4%E9%B2%B6%A4%CBLuna%5D%5D
0956名前は開発中のものです。2007/05/15(火) 16:59:52ID:247W4gkD
ありがとうございます
Blue Impulse に突っ込むところでした
0957名前は開発中のものです。2007/05/15(火) 19:08:35ID:f7G5sIdD
>>951
くだらねw
それじゃ、C++じゃねーか。
C#のいいところが抜け落ちてる
0958名前は開発中のものです。2007/05/16(水) 02:04:24ID:mcxT4s5r
3Dモーションモデルの作成はやはり、photoshopを使うべきなんでしょうか?
0959名前は開発中のものです。2007/05/16(水) 02:18:04ID:Lzqa97Xd
DCC(Digital Content Creation)ツール
http://3dcg.homeip.net/3d_products/

この中のお勧めはどれかな?
0960名前は開発中のものです。2007/05/16(水) 02:31:59ID:VSHkmsP8
ゲームやるならXSIFndか 金あるならMaxいっとけば?
・・・その人使い込んでないソフトのことも記事にしてないか?中立視点のようで温度差けっこうあるなw
0961名前は開発中のものです。2007/05/16(水) 08:55:24ID://Z4Ymn2
俺はLightwave信者
0962名前は開発中のものです。2007/05/16(水) 11:15:12ID:y5FykLvg
ツールの信者は結構いるよな。
一度使ったら、他のツールを使うつもりにならないなぁ。
とりあえず、Max使い始めました。
0963名前は開発中のものです。2007/05/16(水) 18:25:55ID:6mx3tuvt
俺もLightWaveだな
まぁこればっかりは好みだから仕方ない
0964名前は開発中のものです。2007/05/16(水) 18:51:08ID:LCXuH5pB
Lightwaveって、一昔前にトゥーンが強いって聞いたけど、
今でもLightwaveがトゥーン最強?
0965名前は開発中のものです。2007/05/16(水) 18:53:35ID:VBs2TFGD
>>963
好み以前に、趣味レベルだと価格の問題がw
趣味でMaxは手が出ないな。まぁ、gmaxで十分かもしれないが。
0966名前は開発中のものです。2007/05/16(水) 20:54:55ID:7cJo3Vs6
ビルボードを実装しようとしているのですが、上手くいかないので
どうか教えてください。
ビュー行列のm41、m42、m43 を0にして、その逆行列を
ワールド行列に設定して描画したのですが、
遠くの板ポリも近くの板ポリも全く同じ大きさに表示されてしまいます‥orz
と言うか、カメラ位置をフィールドに対しズームアウト、ズームインしても
遠くの物も近くの物もカメラの目前に張り付いてるように、常時同じ大きさと位置で表示されてしまうのです。

ビルボードに遠近感を持たせるにはどうすればいいのでしょうか?
RHWが何たらとも読んだのですが、具体的な実装法が全く分かりません。
何とぞご教授をお願いします
0967名前は開発中のものです。2007/05/16(水) 20:59:16ID:X+5WGjdi
射影行列を設定しろ。
0968名前は開発中のものです。2007/05/16(水) 21:12:44ID:CrdwKTEd
射影行列だっけ?
ビルボードってカメラ行列(ビュー行列?)のm41,m42,m43の以外の部分を
コピーしてビルボードを置きたい座標をm41,m42,m43に入れるだけだと思ったけど
メッシュは-z方向に向ければ、別に行列いじらなくてもそのまま使えたような・・・
0969名前は開発中のものです。2007/05/16(水) 21:20:24ID:X+5WGjdi
射影変換無しでどうやって遠近のサイズを設定するんだ?
そのビックリな方法を言ってみろ。
0970名前は開発中のものです。2007/05/16(水) 21:25:59ID:bB+r/QzK
位置に応じて単純なスケーリングを
まあ射影変換のことだけどな!
0971名前は開発中のものです。2007/05/16(水) 21:35:44ID:lSuw7PNY
>>966
逆行列をとった行列が、
実はビュー行列じゃなくて、ビュー行列とプロジェクション行列の積
だったんじゃないの?

いかにもありそうだが
0972名前は開発中のものです。2007/05/16(水) 22:38:21ID:7cJo3Vs6
>>970
そのスケーリングの方法を教えてください。

ちなみに、IDirect3DDeviceにプロジェクション行列は設定してます。
ビュー行列の逆行列を、Deviceのワールド行列に設定して
描画すると、ビルボードの遠近感だけが全くなくなってしまうのです。
(DSpriteで描画したのと同じ感じになる)
具体的な方法を何とぞご教授くだされ
0973名前は開発中のものです。2007/05/16(水) 22:40:04ID:CrdwKTEd
>>969
え?意味がわからん。
普通の、まーよくある描画までの一連の流れは辿ってるってこと前提だと思ったんだけど
ビルボードじゃなくてモデルの表示まではできてるって俺は勝手に思ってたけどそうじゃなくて
質問者は射影行列つーかワールドから画面に表示するまでの一連の流れができてない状態の人だったってこと?

俺は、ビルボードのローカル座標のあり方について聞いてるかと思った
0974名前は開発中のものです。2007/05/16(水) 22:41:26ID:CrdwKTEd
>>972
てか、ビルボードじゃない普通の3Dモデルは表示できてる?
てか、3D空間は構築済み?
0975名前は開発中のものです。2007/05/16(水) 23:00:16ID:7wvGwwEk
>>972
ビルボードの場合、オブジェクトの向きは、カメラの向きによって決まるけど、
オブジェクトの位置は変えちゃだめよ。
とりあえず、ビュー行列の逆行列(=カメラの姿勢行列)を求めてから
その平行移動成分(m41,m42,m43)に、位置座標を上書きすれば多分おkね。
今はきっと、全部のビルボードが、ワールドの原点に配置されているんじゃないかしら。
0976名前は開発中のものです。2007/05/16(水) 23:11:29ID:CrdwKTEd
やっぱそうだよなぁ
#ああ、俺もビルボードのローカル座標とか違うこと言ってるわw

カメラの姿勢行列のm41,m42,m43以外の部分をコピーして来て
ビルボードを置きたい座標(ワールド)をm41,m42,m43に突っ込んで
できたもんがビルボードのワールド座標だよな

射影行列使ってやる方法もあるってことなんかな?
0977名前は開発中のものです。2007/05/17(木) 00:19:03ID:+BYlvm7I
シェーダで演算してその結果をID3DXEffect::GetIntで
取得できないかといろいろ試しているのですが
この方法は無理ですか?誰か助けて。
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を超えています。これ以上書き込みはできません。