DirectX総合スレ (Part6)

このエントリーをはてなブックマークに追加
941名前は開発中のものです。:2007/05/14(月) 02:07:06 ID:yjPo2K0+
> 使い捨てアプリはC#
使い捨てアプリは板違いだから、ゲ製的にはC系使いはC#イラネって事か…
942名前は開発中のものです。:2007/05/14(月) 02:38:58 ID:vfAgKAOX
>>936
そのためのDispose

>>switch ステートメント : C++ の switch ステートメントとは異なり、C# は、ある case ラベルから下にある case ラベルへの移動をサポートしていません。
>なんでみんなが慣れた動作を変えようとするのかわからん

諸悪の根源だからな。

基本的にC++と互換性はないよ。そのまま移植はありえない。
943名前は開発中のものです。:2007/05/14(月) 02:57:05 ID:k6jq6JKI
C#というより.NETFrameworkのランタイム使えれば.NET使えば良いだろう。
使えなければC++のネイティブが良い。
DirectX環境でランタイム使えないのはさすがにありえないけどね。
944名前は開発中のものです。:2007/05/14(月) 04:48:22 ID:U4grSrCx
Managed使ってみてもなんか気持ち悪いしな
慣れればいいんだろうけど
945名前は開発中のものです。:2007/05/14(月) 08:41:13 ID:Rbwmu53K
>>898
>だから変形させるときだけ変形させたいメッシュに挿げ替えてもいいわけ
ねえ・・・結局最初からマップチップで描画すりゃいいじゃんソレ・・・。
946名前は開発中のものです。:2007/05/14(月) 14:03:54 ID:IqWECu0g
>>941
>使い捨てアプリは板違いだから

心の狭い香具師だな
947名前は開発中のものです。:2007/05/14(月) 23:17:43 ID:czGrVvYN
.NETの参照型、値型の縛りは気持ち悪い。
何でヒープ型とスタック型にしなかったんだろ。
こっちの方が自然だし、自由度が高い。
948名前は開発中のものです。:2007/05/14(月) 23:33:34 ID:5kwfmOE5
>>945
変形させるとなるとかなり目の細かいメッシュが必要だから常時だしてると重くなるよ
949名前は開発中のものです。:2007/05/15(火) 00:18:54 ID:b6S1ChH/
>>947
それだとユーザ定義型でスタック型とヒープ型を混ぜられなくなるんじゃない?
無理矢理混ぜられるようにあれこれ弄りだすと結局今の値型になりそうだけどその辺どうよ?
それとも混ぜられなくておkにするの?
950名前は開発中のものです。:2007/05/15(火) 00:29:10 ID:b6S1ChH/
>>947
それともC++みたいに確保時にスタック上とヒープ上の選択ができるようにするってこと?
ヒープ型とスタック型って響きは自然だけど、どういう仕様を意図してるのかいまいち分からん。
951名前は開発中のものです。:2007/05/15(火) 01:03:08 ID: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?
952名前は開発中のものです。:2007/05/15(火) 09:45:05 ID:ySPPyGNu
>>948
CPUかフィルレート律速の状況なのに、頂点数減らすために
わざわざ柔軟性の無い実装に変えても意味ないでしょ。
953名前は開発中のものです。:2007/05/15(火) 10:03:15 ID:4as9xAPK
まぁ一般的に頂点シェーダーが吊る事ってまずないからなぁ・・・。
元は画面いっぱいのチップが重いって話なんだしDP量に比例するCPU負荷の話だろ。
954名前は開発中のものです。:2007/05/15(火) 15:46:48 ID:247W4gkD
すみません
>717のLueというライブラリは何かの略称でしょうか?
ぐぐっても出てきませんです。
955名前は開発中のものです。:2007/05/15(火) 16:46:21 ID:wufws/3W
>>954
Lunaライブラリ系列についてはつい最近出来た
http://gamdev.org/w/?%5B%5B%A4%AA%A4%DE%A4%A8%A4%E9%B2%B6%A4%CBLuna%5D%5D
956名前は開発中のものです。:2007/05/15(火) 16:59:52 ID:247W4gkD
ありがとうございます
Blue Impulse に突っ込むところでした
957名前は開発中のものです。:2007/05/15(火) 19:08:35 ID:f7G5sIdD
>>951
くだらねw
それじゃ、C++じゃねーか。
C#のいいところが抜け落ちてる
958名前は開発中のものです。:2007/05/16(水) 02:04:24 ID:mcxT4s5r
3Dモーションモデルの作成はやはり、photoshopを使うべきなんでしょうか?
959名前は開発中のものです。:2007/05/16(水) 02:18:04 ID:Lzqa97Xd
DCC(Digital Content Creation)ツール
http://3dcg.homeip.net/3d_products/

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

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

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

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

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

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

射影行列使ってやる方法もあるってことなんかな?
977名前は開発中のものです。:2007/05/17(木) 00:19:03 ID:+BYlvm7I
シェーダで演算してその結果をID3DXEffect::GetIntで
取得できないかといろいろ試しているのですが
この方法は無理ですか?誰か助けて。
978名前は開発中のものです。:2007/05/17(木) 00:33:34 ID:/T2VJZC8
無理じゃね?
979名前は開発中のものです。:2007/05/17(木) 00:59:13 ID:hoPxXnJ+
>>977
どっかのテクスチャに描画してその描画結果を取得するんじゃ駄目なの?
980名前は開発中のものです。:2007/05/17(木) 01:25:44 ID:LzmNTBWG
>>975
それが無理なんです‥
やって見ればわかります。
ちなみに、カメラの位置は地面から垂直な天上から30度下げた位置にあり
つまり、地面とその上に立つキャラを斜め上から見下ろしてる状態です。

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

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

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

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