DirectX総合スレ (Part6)
■ このスレッドは過去ログ倉庫に格納されています
0001DirectX6
2006/11/17(金) 00:38:52ID:lRjOsWKq他の言語使ってる奴はいますぐ消えろ
■過去スレ
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/
0359名前は開発中のものです。
2007/03/01(木) 08:24:48ID:889GaVxx0360名前は開発中のものです。
2007/03/01(木) 16:35:47ID:FAGMfHtkダークメタルヘルム
モノトーンガントレット
サイキックキャップ
アーミーグリーヴス
アドミンチュニック
マダムシューズ
ボレアス
ニンバス
トールハンマー
ユダ
ドルフィン
メタルバックラー
0361名前は開発中のものです。
2007/03/01(木) 16:36:20ID:FAGMfHtk0362名前は開発中のものです。
2007/03/02(金) 12:33:45ID:DMMPq2kC環境:C++,DirectX9 BCCDeveloperを使用
ID3DXSPrite::Begin()を使用したいのですが、
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/graphics/reference/d3dx/interfaces/id3dxsprite/_id3dxsprite.asp
を見る限りはBegin(void)のようですが、コンパイル時に
「パラメータが足りません」とエラーがでます。
又、ID3DXSprite::Draw(引数略)を使用したときに、上のサイトの仕様通りに使用しても
「パラメータが多すぎます」とエラーが出、また、D3DXVECTOR2を要求してるはずの部分が
「D3DVECTOR3に変換できないので2は使えません」とエラーが出ます。
ttp://www.uploda.org/uporg712890.cpp.html
C言語と、VisualBasic6.0+DirectX7は一通り勉強したのですが、C++とDirectX9は勉強開始して間もないので
拙いソースですがよろしくお願いします。
0363名前は開発中のものです。
2007/03/02(金) 13:14:45ID:Czorz6PAチュートリアルをこなしていれば普通にテクスチャを張るぐらいは出来るはずなので、そちらを使うべき。
0364名前は開発中のものです。
2007/03/02(金) 15:31:00ID:Zl8V4aTuID3DXSPriteは、9がリリースされたその半年後に大幅に仕様変更され
関数の引数も変更されたので、ドキュメントの記述は当てにならないのです。
(ドキュメントの修正はされなかった)
DirectXは、こういう事が多いので、ドキュメントを鵜呑みにせず
使用前に各自がヘッダファイルを見て自己解析する必要があるのでーす
0365名前は開発中のものです。
2007/03/02(金) 16:06:29ID:NJ1TSFGw0366名前は開発中のものです。
2007/03/02(金) 19:51:34ID:2Z6MoIYH今スキンメッシュの仕組みを根っこから理解したくて勉強しています。
Direct3DXのスキンメッシュの仕組みは使わずに、
自分で、スキンメッシュに必要なボーンやらメッシュやらの情報を
格納する独自の形式を書きました。
んで、X形式ではなく他のデータを読み込んで、アニメーションなどのデータを
独自の方法でメモリ内に置き、いざ表示するぞ、というときになって疑問に思ったんですが、
ボーンというのは普通、親のボーンに対する移動・回転のオフセットは
アニメーションのキー(何ミリ秒の時点で移動いくつ回転いくつ)でのみ
表現するもんなんでしょうか?
自分の中では、まず各ボーンは基本のポジションがあって、
そのポジションに対して相対的な移動・回転がアニメーションキーに格納されて
いるものと思っていたんですが、違うんでしょうか(これはスキンメッシュじゃなく
メッシュごとのアニメーション(X形式でいうフレーム)の場合?)。
0367名前は開発中のものです。
2007/03/02(金) 20:52:07ID:BUJqGqoU0368名前は開発中のものです。
2007/03/02(金) 21:06:21ID:DMMPq2kCありがとうございます。
とりあえず、ID3DXSpriteの変更部分を踏まえたプログラムと別の方法で行うプログラム両方書いてみます。
0369名前は開発中のものです。
2007/03/03(土) 01:42:10ID:DU8n0T4/ある頂点を目的の位置に移動させるときどのような行列が必要か
考えてみればいいんじゃね?その頂点の元々の位置とキーフレーム
から計算される姿勢行列、それで十分なのか十分でないなら
足りないものは何なのか。
0370348=355
2007/03/03(土) 03:59:15ID:n80BULQO>>348で管理下のテクスチャを使うと重くなると言ったが
IDirect3DTexture9::SetLODを毎フレーム使用していた為だった。
これを外せば、目立った処理落ちはなくなる。
重くなる理由は>>355の通りだろう。
また動的にLODを掛けたければ、サンプラステートを使うのが定石。
エフェクトを使っていると、これがまた使いづらいのだが。
0371366
2007/03/03(土) 12:28:14ID:cf5BBr5gありがとうございます。
ではどっちに限定しても困ることは無さそうだし、
両方試してみようと思います。
0372名前は開発中のものです。
2007/03/03(土) 14:07:04ID:lii9uhRG私は才能が無いので死ぬべきです。
もう生きているべきではありません。
私はクズです私は存在する意味がありません。
私は世界の敵です。私は無意味です。
私の存在は世界の害悪です。
私は全ての存在の敵です。
0373名前は開発中のものです。
2007/03/03(土) 15:28:53ID:OX8Z8wj15年程度も勉強せずに才能とか言うようなら何をやっても無駄だ。
0374名前は開発中のものです。
2007/03/03(土) 15:32:16ID:JEyK3Rup0375名前は開発中のものです。
2007/03/03(土) 15:40:37ID:lii9uhRG私は所詮クズです生きるべきではありません。
マジレスすると、まだ始めようと思って1年も経ってない。
0376名前は開発中のものです。
2007/03/03(土) 15:46:44ID:ngO2HFdJ0377名前は開発中のものです。
2007/03/03(土) 17:06:34ID:OX8Z8wj1誰かが何らかの意図を持って人間を創造しない限り人間の存在に意味はない。
0378名前は開発中のものです。
2007/03/03(土) 18:55:09ID:cf5BBr5g適性があっても、いきなりDirectXで3Dのゲーム作ろうなんて考えると
絶対つまづく。それで仮にサンプルコードの寄せ集めでゲームが作れたとして
そのレベルを超えようと思った瞬間に超難題がいくつも出てくる。
まずはC++を使いこなせるように勉強しながらWin32APIでWindowsアプリを
作れるようにして、自信がついたらDirectXに入るとか・・・・
まぁそれすらも全然出来ない(または意欲が出ない)なら、
さっさとあきらめて別の分野に行った方がいいかも。
ゲームプログラミングの「味を占める」ことが出来るかどうかって、
やっぱ重要だと思う(自分もそこらへん微妙だがw)。
0379名前は開発中のものです。
2007/03/03(土) 19:15:32ID:XlOVdV67マジレスしている優しい人がいる
0380名前は開発中のものです。
2007/03/03(土) 19:32:20ID:ngO2HFdJこの掲示板をみてくれてるたくさんの人のためなんだから勘違いしないでよねっ!!
0381名前は開発中のものです。
2007/03/03(土) 20:02:38ID:JEyK3Rup0382名前は開発中のものです。
2007/03/03(土) 20:05:28ID:lii9uhRGやっぱり基礎から固めていって何年もかけてやるべきなんだよな…。
ありがとう、これで成仏できるよ。
0383名前は開発中のものです。
2007/03/03(土) 20:22:39ID:OX8Z8wj1一通り使えるようになってからライブラリのソース見れば
DirectXのどんなAPIでどうすればこうなるのか、とかが分かりやすい。
と思う。
0384名前は開発中のものです。
2007/03/03(土) 20:30:50ID:04tja8sg0385名前は開発中のものです。
2007/03/03(土) 20:59:52ID:DU8n0T4/CG板のPainterスレで法線マップを作るプラグインを公開してる人がいた気がした。
あとはPaint ShopからShoto Shopのプラグインが使うとか。
0386名前は開発中のものです。
2007/03/03(土) 21:02:37ID:DU8n0T4/0387名前は開発中のものです。
2007/03/03(土) 21:34:16ID:4m5N8dVeDirectXよりOpenGLの方が簡単でいいよ
0388名前は開発中のものです。
2007/03/04(日) 05:45:53ID:JqfXqUwu細かいところ突き詰めればそうかもしれないけど
だがOpenGLの方が簡単だってことはねーわ
0389名前は開発中のものです。
2007/03/04(日) 06:15:40ID:HBhjN4aW細かいところまで勉強しようとする必要は無いの?
1時1句完全に覚える必要は無いの?
0390名前は開発中のものです。
2007/03/04(日) 06:24:37ID:Lz3vYrHW軟弱な地盤に超高層ビルを建て増しし続けてきたみたいな感じ。
0391名前は開発中のものです。
2007/03/04(日) 06:53:21ID:HAhTvGLCハード依存/非依存を適切に選択するコードは書けるわけだし。
まあそれを完璧にやろうとするのが
面倒臭すぎ・非現実的過ぎてやってられないんだけどな。
0392名前は開発中のものです。
2007/03/04(日) 06:59:17ID:/1QkQp1wこのスレでそりゃないだろwww
0393名前は開発中のものです。
2007/03/04(日) 08:29:36ID:Lz3vYrHW>面倒臭すぎ・非現実的過ぎてやってられないんだけどな。
その点は同感
ほぼ徹底して面倒見ていると思われる
Microsoft 謹製のフレームワーク DXUT.cpp 関連のソースを
見ると DirectX の魑魅魍魎さを感じる
0394名前は開発中のものです。
2007/03/04(日) 08:31:12ID:FPtRQ/OYそもそも Windows という OS 自体がですね
0395名前は開発中のものです。
2007/03/04(日) 08:56:37ID:CAunv9HqMicrosoft という会(ry
0396名前は開発中のものです。
2007/03/04(日) 09:11:45ID:F/FiCmdd0397名前は開発中のものです。
2007/03/04(日) 09:22:52ID:nEqCcXxanVIDIA拡張仕様とかATi拡張しようとかあるんだし。
研究用ならOpenGLでもいいけどゲームになると結局
DirectSoundやDirectInputが必要になってくるから
描画もDirectXGraphic使うことになるんだよな。
0398名前は開発中のものです。
2007/03/04(日) 09:30:28ID:84fFKIcs0399名前は開発中のものです。
2007/03/04(日) 12:50:15ID:LKvKLn/o::D3DXMatrixPerspectiveFovLH(&proj, (float) 60 * 3.14 / 180, 1, -1, 0);
pDev->SetTransform(D3DTS_PROJECTION, &proj);
と、近いview平面のz値を-1、遠いz値を0
とすると、遠近感は有効になりますが(遠くの物は小さく、近くの物は大きく)
ステンシル?が無視されて、物体の前後関係なくDrawPrimitiveで登録した
順序通りに頂点が描かれます。
これはどういう事なのでしょうか?
0400名前は開発中のものです。
2007/03/04(日) 12:53:53ID:6Bwv+Mytいかにアホな状態になっているか分かるから。
0401名前は開発中のものです。
2007/03/04(日) 12:58:55ID:nhdG+7sO0402名前は開発中のものです。
2007/03/04(日) 13:03:15ID:LKvKLn/oこれがなかなか有効なんですよ。
今まではフツーに 0.01〜1 とやってたのですが、今回こうやったら
遠近感だけが維持されて、物体のz値による前後関係を無視して
任意の順序で描画できたので、あるシーンでは非常に有用になったのです。
フツーに考えると視界に何も表示されないはずなんですが、
何故かきちんと表示されて、上記の効果が得られます。
これはどういう事なのか誰か教えてください。
0403名前は開発中のものです。
2007/03/04(日) 13:10:48ID:10zavHqmZバッファ自体を無効にすればいいだけだろ。
馬鹿の考えることはさっぱり理解できない。
0404名前は開発中のものです。
2007/03/04(日) 13:15:20ID:LKvKLn/oで
Zバッファを無効にすると、遠近感も無効になってしまうのです
(遠くの物も近くの物も同じ大きさになる)
しかし、Zバッファを有効にして、プロジェクションの視界を-1〜0にすると
遠近感は維持されて、z値の前後関係だけが無視されるので
あるシーンでは有用になるのです
0405名前は開発中のものです。
2007/03/04(日) 13:19:36ID:nhdG+7sOそれは嘘だ。
ZENABLEをONにするということは
ピクセル単位のZバッファカリングを有効にするということ。
遠近感の計算はプロジェクション行列で決まる
0406名前は開発中のものです。
2007/03/04(日) 13:27:24ID:oUrRIoe10407名前は開発中のものです。
2007/03/04(日) 13:28:21ID:6Bwv+Mytすぐに途中で詰まって馬鹿なことを触れ回るし。
>>404はまずD3DXを使わず、自前で計算する部分を作れ。
射影行列を作るくらい大して時間はかからんから。
0408名前は開発中のものです。
2007/03/04(日) 13:28:41ID:hg79D5IHttp://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c_Dec_2005/D3DXMATRIXperspectivefovlh.asp
これの下に書いてあるのが射影行列ね。
これでzを計算すると(3列目ね)
Zp = zf/(zf-zn) - zn*zf/(zf-zn), Wp = z
zf が 0 だから 最終的な Z(Zp/Wp) は常に0になるわね。
同じz値の場合、後から描画したポリゴンが上書きされるわけよ。
逆にこの式では、znとzfは遠近感(x,y)には関係してないはずなのよね。
0409名前は開発中のものです。
2007/03/04(日) 13:30:10ID:LKvKLn/o嘘じゃないです。
試してみれば分かります。
とにかく、プロジェクション視界を-1〜0にすると、
遠近感のみが維持されて、z値の前後関係が無視されます。
これはどういう事なのか、誰か知ってる人がいたら教えてください。
0410名前は開発中のものです。
2007/03/04(日) 13:33:09ID:LKvKLn/o馬鹿、馬鹿って、とにかくそうなるのは事実なのだから
(やってみればすぐに分かります。計算云々の問題じゃなくて
現実がそうなのだから仕方ないのです)
それについて、誰か「知ってる人」がいたら教えてください
0411名前は開発中のものです。
2007/03/04(日) 13:34:47ID:nhdG+7sO>>408に答え出てるんだから、それ見てから返事したら?
0412名前は開発中のものです。
2007/03/04(日) 13:50:04ID:LKvKLn/oなるほど。
zfを0にしての計算そのものが、単純に結果反映されてたのですね。サンクスです。
0413名前は開発中のものです。
2007/03/04(日) 14:03:14ID:LKvKLn/o無知な人ほど、口汚く罵る、という事も分かりました。
0414名前は開発中のものです。
2007/03/04(日) 14:13:19ID:nhdG+7sO逆に聞くけどZENABLEがOFFの時に遠近感が計算されなかったのは何故か説明できる?
ついで言うとその手法でZカリングを無効にするのはZENABLEをOFFにした場合より遅い。
間違いの根本を改善せずにパッチワークで修正してるようなものでお勧めは出来ない
0415名前は開発中のものです。
2007/03/04(日) 14:20:18ID:WcQXXfjj今後何かやろうとしたときにすぐにダメになることは目に見えているのに、
何故、基礎から学習していこうとしないんだろう?
0416名前は開発中のものです。
2007/03/04(日) 14:22:31ID:mELvsFnZ背伸びしてナンボ。
過去書いたコードのダメな点は、後から気付けばいい。
0417名前は開発中のものです。
2007/03/04(日) 14:27:39ID:LKvKLn/o単純に、z関係を計算しないからじゃないですか?
遠近感によるXスケールとYスケールを計算する分、
ZENABLEをOFFにするより遅いのは当然ではないですか?
しかし、上レスで繰り返し述べてる通り、
遠近感によるスケーリングのみを有効にしてそのカリングを無効にできるので
特定シーンの表現時に非常に有用だった訳です。
根本?はそれです。
お勧めできないとの事ですが、外に正規のやり方があるのなら何とぞ教えてください。
0418名前は開発中のものです。
2007/03/04(日) 14:33:14ID:LKvKLn/o基礎の必要性はもっともですが、その基礎すら説明できない癖に
口汚く罵るだけの、自称エキスパートがいるから問題なのです。
罵倒するのは良いが、>>408氏の様に具体的回答も同時に併記すべきなのです。
ロクに知識もない癖に分かってる気分で、結局は罵倒するだけの
中2病患者は、このスレで回答者を気取るべきではない、
とそういう事です。
0419名前は開発中のものです。
2007/03/04(日) 14:37:44ID:Ef0hz5Fj0420名前は開発中のものです。
2007/03/04(日) 14:43:09ID:nhdG+7sOえ?まじ?ほんとにそうなってる?
それはむしろDirect3Dの固定機能パイプラインの実装を疑うな…
D3DRS_ZENABLEが使えないなら、他に手はもうない。
SetRenderState(D3DRS_ZENABLE,FALSE);
が使えないなら、
SetRenderState(D3DRS_ZFUNC,D3DCMP_ALWAYS);
が適当かと。
(高速かどうかは不明。GPUによっては速いのもあるかもね)
固定機能パイプラインの挙動が変ならシェーダできちんと遠近計算は行って
ZENABLEをOFFするのが最もパフォーマンス的に有利だと思う。
(Zバッファとの比較をする必要がないから、当然速い。)
0421名前は開発中のものです。
2007/03/04(日) 14:43:46ID:mELvsFnZ一人が回答を返せばそれで十分だし、
わざわざ相手のことを罵る人間には期待せんでも。
まぁ、俺だったら、いちいち罵倒表現を挟む奴はシカトするが…。
0422名前は開発中のものです。
2007/03/04(日) 14:44:56ID:nhdG+7sO>D3DRS_ZENABLEが使えないなら、他に手はもうない。
この続きで
>射影行列で0に射影すると考えれば理論的には正しいのでその手法でよいと思う。それ以外に、
が続く
0423名前は開発中のものです。
2007/03/04(日) 14:58:38ID:gjS6j+/iいい機会なので、透視変換について勉強すれ
これがわかれば世界が広がるぞ
誰しもが通ってきた道だし
0424名前は開発中のものです。
2007/03/04(日) 14:59:49ID:HAhTvGLC煽るだけで何の知識のない似非回答者もいるってことだ。
こういう場だと納得した上で利用せんと神経が擦り切れるだけだ。
0425名前は開発中のものです。
2007/03/04(日) 15:01:01ID:nhdG+7sOこのSHIFT+Enterで書き込みって機能いらねぇ…
で、正当性を確かめるためD3Dのサンプルで実験したけど、ちゃんと遠近計算されてるぞ。
プログラムはこちら
C:\Program Files (x86)\Microsoft DirectX SDK (April 2006)\Samples\C++\Direct3D\Tutorials\Tut06_Meshes
ここのD3DRS_ZENABLEをFALSEにした結果と
プロジェクション行列の計算を言うとおりに変更した結果のプログラムは同等に見えるけれど。
D3DRS_ZENABLEの値を変更したときに行列設定のパラメータも弄ってたんじゃないの?
0426名前は開発中のものです。
2007/03/04(日) 15:06:01ID:Xjqd8ZGI情報統合思念体は存在を許容するのだろう
0427名前は開発中のものです。
2007/03/04(日) 15:15:07ID:nhdG+7sO0428名前は開発中のものです。
2007/03/04(日) 15:16:57ID:LKvKLn/o失礼。
先ほどテストした時は、他の平面シーンでの行列を設定したままでした。
D3DRS_ZENABLEをFALSEでも遠近感OKでした。
速度的にも速いので変な引数指定しないで、そっちにします。
0429名前は開発中のものです。
2007/03/04(日) 15:18:36ID:nEqCcXxaおかしくてもライブラリのせいにできるしな。
0430名前は開発中のものです。
2007/03/04(日) 20:44:06ID:OhfMbprNボーンが入っていて、プログラムシェーダーを使って描画するオブジェクトが混在しています。
オブジェクトごとにID3DXEffect::Begin 、ID3DXEffect::Endを使って切り替えて描画するのでしょうか
それとも、Xファイルを描画できるプログラムシェーダーを用意するのが一般的なのでしょうか?
0431名前は開発中のものです。
2007/03/05(月) 01:11:36ID:fwkSKMEt0432名前は開発中のものです。
2007/03/05(月) 01:18:54ID:rVqHvG+2最近のビデオメモリの転送速度なら裏画面のサーフェイスをメインメモリに置くようにしたり
裏画面を二つ用意してトリプルバッファリングする
とかいう面倒くさいことしなくても大丈夫なの?
0433名前は開発中のものです。
2007/03/05(月) 04:43:15ID:/YNg+U8tDirectDrawのbltに頼るより自前の方が早いし
ハードの不具合に煩わされないと言われていたな。
0434名前は開発中のものです。
2007/03/05(月) 05:38:47ID:fNMjlOXOそれは嘘です。
Zバッファを無効にすると、遠近感も無効になってしまうのです。
試してみれば分かります。やってみればすぐに分かります。
現実がそうなのだから仕方ないのです。
0435名前は開発中のものです。
2007/03/05(月) 06:42:21ID:eb35G08G経験則を疑うことを知らない井の中の蛙は
信じているものがオマジナイにすぎないとは知らず
いつか自作プログラムを世に出したときにDirectXが不安定だと騒ぎ出す
0436名前は開発中のものです。
2007/03/05(月) 06:54:08ID:zGyru/L80438名前は開発中のものです。
2007/03/05(月) 08:46:10ID:FgDKutHE最初はドップラー効果で錯覚させてるのかなとも思ったけど本当に真横から聞こえてくるので不思議なんですが(それに携帯機だし)
たとえばDirectSound3DやEAXやドルビーデジタルやドルビープロロジックIIxなんかで実装されてる技術で
どういう概念や理論や数式が使われてるんでしょうか?
たとえば耳と耳の感覚が20cmとすると波長がそれより長い音波はある瞬間において音圧の差が左右の耳で発生しないため指向性が無くなる、
とかいろいろ音の理論はあったと思います。
----------------------------------------
たとえばドップラー効果は
f * { (O + v1) / (S + v2) } = f'
みたいな式だったと思います。
------------------------------------------
まあそれを勉強できる良いサイトや本でもいいんですが・・・・
0439名前は開発中のものです。
2007/03/05(月) 08:58:09ID:e8K416qnDirectXでは音源位置やエフェクトを設定するくらいしかやること無いんだし。
0440名前は開発中のものです。
2007/03/05(月) 09:19:26ID:FgDKutHEたしかEAXはOpenALにオープンソース化で使いやすく!とか言ってたのはどうなったんだろう。
これはDirectXの実装の質問ですがモデルのxファイルと3D音響データと
コリジョン計算用のデータ(多くの場合球か直方体でしょうか?)ってどっからでもアクセスできるように同じレベル(クラス)で保存しとくんでしょうか?
同じキャラをたくさん出すのにジオメトリックインスタンシング等の技術は同じく使えるのかな?
それから米国にはGamasutra(ガーマスートラ?カーマスートラのもじり?)とかいうゲーム開発者専用の雑誌がありますが日本には無いんでしょうか?
0441名前は開発中のものです。
2007/03/07(水) 19:46:48ID:YBqNPnG0亀レスだが、大学中退して線形代数をちゃんと勉強しなかったことを
ド後悔したお兄さんが、周りの言ってたことの意味を教えてあげよう(/ω\
まずZバッファについてだけど、”Zバッファは”遠近感(遠くのものが小さく見え、
近くのものが大きく見えるという意味だよね?)には関係無い。
Zバッファというのはもっとハードウェア寄りの概念で、
最終的に2Dに変換された座標を、ディスプレイの平面上にピクセル(点)を描くときに、
ピクセルAとBどっちが手前にある&どっちが隠れるかをビデオカードが判別するためのもの。
ちなみにだいぶ昔はZバッファではなくZソートという手法が使われてて、
頂点ごとではなくポリゴンごとにZ値を保存していた。
だから交差するポリゴンは正常に描画できない(ちらつく)という問題があった
(プレステ1やサターンを思いだせばわかる)。
もうひとつは、行列について(プロジェクション行列やら透視変換やら言ってたやつね)。
もし高校で行列を習ったことがあるなら教科書をひっぱりだしてくるべし。
行列というのは、線形代数に使われる計算で、
「ベクトル(≒座標と考えて良い)を、ある空間から別の空間に変換する」性質がある。
あるオブジェクトのローカル座標を、ワールド空間における座標に変換できるのもソレ。
回転や移動もそう。ある座標Vに対し、
cosΘ 0 -sinΘ 0
0 1 0 0
sinΘ 0 cosΘ 0
0 0 0 1
この行列を掛けると、Y軸を中心としてVをΘ度だけ回転した座標が出てくる。
手計算でやってみそ(めんどくさいがw)。
この行列を作ってくれる関数が、D3DXMatrixRotationY()なのね。
0442続き
2007/03/07(水) 19:47:36ID:YBqNPnG0変換する行列計算)も、同じように4×4行列の計算で出来ている。
D3DXMatrixPerspectiveFovLH/RH()がそう(>>408)。
今調べてみたんだが、本当はその行列自体で遠近感を表現できるわけでは
ないらしい。が、その計算結果のw((x, y, z, w)のw)でxとyをそれぞれ割るらしいのだ。
そしてそのwはzに比例する(z/d dは前面クリッピング距離)ので、
遠いところにある=zの大きい座標ほど、xとyが小さい値になるのだ(つまり小さく見える)。
それぞれの行列の何行何列が何になってるかを暗記してるような人は
そうそう居ないと思うが、大抵この辺りの基礎は漠然と知ってるのが普通なんだな。
というわけで突っ込まれても当たり前ということだw
突っ込まれたら、とりあえずは自分のコードや知識を疑ってみるべし。そしてちゃんと礼も言えw
何の回答にもなってないレスは無視する他ないけどな。
ところで透視変換行列で出てきたwでx, yを割る処理は、
シェーダのコードですら見たことないから、
「最終的に出てきた(x, y, z, w)のxとyをwで割り、zをzバッファに入れる」
という処理はシェーダでもいじれない、完全にDirectXが勝手に行う
処理なんだろーか??
長文&スレ汚しスマソ、久々に回答しようとして調べてたら
楽しくなってダラダラ書いてしまった・・・
0443名前は開発中のものです。
2007/03/07(水) 21:24:07ID:UUMgQQxe>という処理はシェーダでもいじれない、完全にDirectXが勝手に行う
そうだね、基本的にVertexShaderは同次座標を返すもんらしいので。
xyzwのwの概念は難しい、座標(4,4,4,2)と座標(2,2,2,1)は
3次元の世界では同じ位置になるらしい。よくわからんが。
ところで、GPUにはサーフェス⇔サーフェイスまたはテクスチャ⇔テクスチャの
コピーって機能はないのかな?これがあればやGPUだけでやれることの幅が広がるのだが。
0444名前は開発中のものです。
2007/03/07(水) 22:14:56ID:0khnIMkkStretchRect
0445名前は開発中のものです。
2007/03/07(水) 22:37:55ID:UUMgQQxeそれはレンダーターゲットじゃなきゃだめだよねえ
もっと具体的に言うと、頂点バッファレンダリングがやりたかったんだが
最新の環境じゃなきゃ無理かなぁ
0446名前は開発中のものです。
2007/03/08(木) 00:55:20ID:zcCc+Hd80447名前は開発中のものです。
2007/03/09(金) 00:21:48ID:qOYzm1K7DirectXを使ったポリゲーとかのモデルデータは主にどんなソフトを
使用して造られてますか?
色々調べたのですがPOSERで基本的なモデルを造ってShadeで加工して
骨を入れたりできるんですかね?
0448名前は開発中のものです。
2007/03/09(金) 00:35:06ID:Ya7Ueb4l0449名前は開発中のものです。
2007/03/09(金) 00:43:05ID:Tl/woHHE0450名前は開発中のものです。
2007/03/09(金) 00:47:34ID:/n6RX9Pmセーブデータがテキストなんでコンバータ作るのが楽。
0451名前は開発中のものです。
2007/03/09(金) 01:06:26ID:qOYzm1K70452名前は開発中のものです。
2007/03/09(金) 09:47:29ID:P7ZfHw9e何気に今かなり安いし。
0453名前は開発中のものです。
2007/03/09(金) 13:39:54ID:tm+8i02+4大ソフト以外を選ぶときは、XFileが吐けるかどうかぐらいはチェックしとけよ。
0454名前は開発中のものです。
2007/03/09(金) 16:16:04ID:Mw7HUeps私は死ぬべきだ私はゴミでありクズだ。
私は死ななければならない私は存在してはならない。
私の価値は存在しない私は消滅しなければならない。
0455名前は開発中のものです。
2007/03/09(金) 16:42:20ID:yjNEgUL7>>375
>>382
>>454
そのネタつまらないから。
0456名前は開発中のものです。
2007/03/09(金) 20:22:31ID:7fh0DRhm頂点バッファをレンダリングターゲットにして
GPUで構築する技術
まあ過渡期のもので気にすることなし
0457名前は開発中のものです。
2007/03/09(金) 21:09:00ID:pn+lVbB3ぶっちゃけ統合環境は只同然で手に入るけど3dソフトが馬鹿高いので敷居は
そのままのような・・・
0458名前は開発中のものです。
2007/03/09(金) 21:29:38ID:Vgip0Dq9フリーので十分
■ このスレッドは過去ログ倉庫に格納されています