- 1 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 19:39:57 ]
- 前スレはカスしか居ないので廃棄の方向で。
※回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。
- 358 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 03:52:30 ]
- ID3DXSpriteはIDirect3DDevice9のように2つのテクスチャを合成してから表示させたり出来ないんでしょうか?
- 359 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:18:22 ]
- 質問です
Direct3Dで線分を描画したいんですけど、どうすればいいんでしょうか?
- 360 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:23:30 ]
- これはググレカスといわざるを得ない
- 361 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:31:36 ]
- DrawPrimitiveで引数にLINELIST
- 362 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:58:38 ]
- なるほど、DrawPrimitiveでできたんですね
ありがとうございました
- 363 名前:デフォルトの名無しさん [2009/01/30(金) 23:00:59 ]
- DirectXのプロジェクトってユニコードビルドにしないとだめなのでしょうか、
単にデフォルトがそうなっているだけなのでしょうか? チュートリアルのプロジェクトがデフォルトがユニコードになってます。
- 364 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:15:07 ]
- サンプルフレームワークのDXUTがUnicodeビルド前提ってだけだ。
DirectX SDK使う分にはどっちでもいいよ。
- 365 名前:デフォルトの名無しさん [2009/01/31(土) 01:40:58 ]
- トンクス!
- 366 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:19:59 ]
- 中国人ですらこれ位作れるのにお前らときたら
ttp://www.amazon.cn/mn/detailApp?qid=1232375855&ref=SR&sr=13-1&uid=168-9317868-9331419&prodid=pcgm812027
- 367 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:33:34 ]
- 画面にピクセル単位で指定して描画したのですが
D3DFVF_XYZRHWで描画したポリゴンではできるのですか?
- 368 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:38:10 ]
- 画面にピクセル単位で指定して描画したいのですが
D3DFVF_XYZRHWで描画したポリゴンではできるのですか? 訂正ですすいません
- 369 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:40:31 ]
- >>366
ただのBitBltじゃん
- 370 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:45:50 ]
- 既に描画したポリゴンでできるのかと聞かれても、よくわからない。
D3DFVF_XYZRHWを使って作った頂点バッファだったら簡単にできると思う。 >>369 どういうこと?話が見えないんだけれども
- 371 名前:368 mailto:sage [2009/01/31(土) 18:50:16 ]
- >>370
レスありがとうございます とりあえずやってみます><
- 372 名前:371 mailto:sage [2009/01/31(土) 20:13:11 ]
- タイトル画面を表示させようと思い試しに作ってみました
appleloader.bbsnow.net/pic_loader/nomal/html/4441.html 上の画像は512*512のテクスチャをD3DFVF_XYZRHWを使って作ったポリゴンに貼り付けて 表示させたやつです 下の画像は1024*768のテクスチャを・・・ 512*512のほうは正常に描画されるのですが1024*768のほうは変になってしまいます これはDirectXが2のべき乗の大きさのテクスチャしかサポート?していないからですか? 他に理由あったら指摘お願いします
- 373 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:17:52 ]
- なんで1024×1024で試してみてから質問しないのですか?
- 374 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:23:01 ]
- >>373
1024*1024で貼り付けてUVで調整したら解決しました お手数掛けて申し訳ありません
- 375 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:23:34 ]
- テクスチャの画像はどうやって作ってるの?
それのために呼び出したAPIを全部調べたの?
- 376 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:30:33 ]
- D3DXCreateTextureFromFileEx です
API調べてませんでした 次から調べてから質問します 申し訳ございません
- 377 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 22:02:43 ]
- DirectXに、次はねぇ・・・
- 378 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:09:12 ]
- if(diks[DIK_UP] & 0x80) {
m_dir = FOR; Sleep(500); } DirectInputでキーボードから入力値を取得しています Sleep()を抜くととてつもない速さでカーソルが移動してしまいます Sleep()を使うとほかの処理も止まってしまうので 他の処理をとめないで同じようなことできる方法ありませんか?
- 379 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:50:11 ]
- 押しっ放しじゃなくて
押した瞬間だけ検出するようにしろよ
- 380 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:24:16 ]
- >>378
マルチ
- 381 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:41:44 ]
- D3DPRESENT_PARAMETERSのPresentationIntervalをD3DPRESENT_INTERVAL_ONE
にするとリフレッシュレートに勝手にあわせてPresentが行われまする。 普通1フレーム当たり1/60秒になるので、待たせたい秒数になるように フレーム数をカウントして、一定数ごとにカーソルを移動とかじゃだめ? 間抜けな回答してたらどうしよう・・・。
- 382 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:11:24 ]
- >>381
SDKのサンプルみろ それが一番速い 設定選べるようになってるサンプルあるだろ?
- 383 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:13:23 ]
- > 普通1フレーム当たり1/60秒になるので、
とはかぎらない。
- 384 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:16:10 ]
- まあ、だいたい液晶だからなるっちゃなるなw
- 385 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:17:04 ]
- よくいるよね、一般的な例の話をしてるのに特殊な例を持ち出してこれは違う!って言う奴。
そんなことは百も承知だってのに。 そんなに自分が物知りだってひけらかしたいのかね。
- 386 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:29:04 ]
- www-06.ibm.com/jp/domino04/pc/support/Sylphd03.nsf/jtechinfo/SYJ0-02925C4
- 387 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:30:52 ]
- >>386
>>385を読めばそれが反論になってないことは理解できるだろ、馬鹿?
- 388 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:49:27 ]
- お前らよくこんなカス共の質問に回答してやれるなw
- 389 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:52:54 ]
- そもそもマルチだしな。
- 390 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 07:07:06 ]
- 60にすると具合悪い事はままある
- 391 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:17:41 ]
- V-Syncって普通自前でやるのかな?
- 392 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:07:32 ]
- >>382の言ってるサンプルがどれかわかんなかったw
よく調べたらうちのはディスプレイモードによってリフレッシュ レートが56〜75の間で4種類くらいあるから、フレーム数決め打ち だと環境によって変わっちゃうなあ。>>386は50Hzだったし。 QueryPerformanceCounterとかからミリ秒算出して、前のカーソル 移動時の時間と比べて一定時間たったら再実行とか。だめ?だめ?
- 393 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:09:49 ]
- 液晶でも最近のフルHDのTVにつなぐとデフォが24Hzになったりするしな。
- 394 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:24:32 ]
- QueryPerformance系使うくらいならtimeGetTime()の方が制約が少なくてらくだけどね
どうせミリ秒単位を扱うわけだし
- 395 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:30:29 ]
- DirectXのVSyみそなんかリフレッシュレートっぽい
時間でウェイトかけてるだけだから。 ゲーム機の実Vクロックでループ回すのとはわけが違う。
- 396 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:32:20 ]
- >>395
タイマでウェイトかけるのはウインドウモードのときだけだよ。
- 397 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:37:00 ]
- >>392
>サンプルがどれかわかんなかったw 全部見ろよ
- 398 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:38:53 ]
- サンプル連呼されても初心者にはわからんものだよ
頭の固い奴にはそれがわからんのです
- 399 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:39:41 ]
- ゲームで複数のXFileを読み込むときのロード時間が気になっているのですが
これを高速化したりするのは可能でしょうか? ネットで調べたところ、一度DirectXの「Xファイル読み込み関数」で ロードしておいたメッシュデータをバイナリで保存して、次回起動時に そのデータを直接読み込むという手段を取られていた方がいるのですが 具体的にどうやるのでしょうか?また、本当に早くなるのでしょうか? D3DXLoadMeshHierarchyFromXなどのXファイルロードルーチンはそのマシン で描画が早くなるようにロードしたメッシュを最適化しているという 話を聞いたことがあるので、このやり方で本当にロードが早くなるのか 心配です・・・。 どなたかXFILEのロードの高速化について詳しい人がいたらアドバイスを お願いします。
- 400 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:36:01 ]
- どれだけ速くなるかは知らないけど
頂点バッファとインデックスバッファ、あと属性テーブルみたいなの取得すればいいじゃん
- 401 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 04:57:21 ]
- >400
ありがとうございます、階層化されたメッシュの場合にかなり面倒そうですが 今度の週末にでも一度組んでみようと思います。
- 402 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:55:43 ]
- >>401
最近その問題(遅い)にぶちあたったが、遅いのはアニメーションのロードだった アニメーションのロードだけ自前でやるのお勧め メッシュのロードはそこそこに早かったよ
- 403 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:21:39 ]
- カメラの回転での質問です。
横回転は問題ないのですが、縦回転すると90度を超えると 急に視界が反転してしまいます。 90度になったらD3DXMatrixLookAtLHのpUpを逆方向にすると 縦回転だけする場合は良いのですが、 少しでも縦回転した状態で横回転すると、視点がぐるぐる 変に回ってしまいます。 どうすれば良いでしょうか?
- 404 名前:403 mailto:sage [2009/02/03(火) 00:32:03 ]
- すいません
横回転が加わっている状態で縦回転すると、でした。 横回転はどの場合でも普通に回転してくれます。
- 405 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:12:25 ]
- まわす順番がおかしいんじゃねーの?
とりあえずその部分のコード貼れや
- 406 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 02:39:51 ]
- D3DXMatrixLookAtLHの引数で回転するんじゃなくて
注視点を原点とするカメラのローカル姿勢を回転させて そこからビュー行列を逆算すればおk
- 407 名前:403 mailto:sage [2009/02/03(火) 06:23:07 ]
- >>406
すいません具体的にどのようにすれば良いでしょうか? 今現在は D3DXMatrixRotationX(&mat, g_CameraAngle.x); D3DXVec3TransformCoord(&g_Camera.vecEyePt, &g_Camera.vecEyePt, &mat); という感じでカメラの座標を変換してから D3DXMatrixLookAtLH(&matView, &vecEyePt, &vecLookatPt, &vecUpVec); pDevice->SetTransform(D3DTS_VIEW, &matView); でカメラ位置を変更しています。
- 408 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 11:04:16 ]
- // カメラの初期姿勢(視点(0,0,-10)、注視点(0,0,0)の場合)(変更しないで保持する)
const D3DXVECTOR4 vecEyePt(0,0,-10,1) ; const D3DXVECTOR4 vecLookatPt(0,0,0,1) ; const D3DXVECTOR4 vecUpVec(0,1,0,0) ;//ここだけw成分が0であることに注意(回転のみ反映) // 初期姿勢からどれくらい移動したいかの行列 // 回転だけでなく拡大縮小移動なども合成できる D3DXMatrixRotationY(&mat, g_CameraAngle.y); D3DXVECTOR4 Eye, Look, Up D3DXVec4Transform ( &Eye, &vecEyePt, &mat ) ; D3DXVec4Transform ( &Look,&vecLookatPt, &mat ) ; D3DXVec4Transform ( &Up, &vecUpVec, &mat ) ; D3DXMatrixLookAtLH(&matView, (D3DXVECTOR3*)&Eye, (D3DXVECTOR3*)&Look, (D3DXVECTOR3*)&Up); もうちょっとスマートなやり方あるけどそれは少し考えればわかるよね
- 409 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:17:31 ]
- 最初はスマートなやりかたより理解しやすさを追求すればいいじゃない
UpVectorが0成分だと気づかなくて 3日くらい悩んでたのを思い出した
- 410 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:00:34 ]
- >402
ありがとうございます、時間が取れたのでアニメーションの書き出しを 試してみたのですが、アニメーションコントローラにアニメーションデータの 実体が見当たりません。 アニメーションデータの実体とサイズはどうやって取得したら 宜しいのでしょうか?
- 411 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:59:38 ]
- >>410
sizeof()じゃだめ?
- 412 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 05:07:11 ]
- Xファイルを読み込むためのD3DXLoadMeshHierarchyFromX関数にて
LPD3DXANIMATIONCONTROLLERというアニメーションコントローラに 値を入れてアニメーションを管理しているんですが、どうもこの LPD3DXANIMATIONCONTROLLERに実体が無いというかsizeofしても 4の値しか返ってこないんですが・・・。
- 413 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 05:20:33 ]
- C/C++の基礎を勉強したらどうかね?
- 414 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 08:22:41 ]
- DirectXの前のCの本読んだほうがいいなコレは。
- 415 名前:412 mailto:sage [2009/02/04(水) 09:57:16 ]
- 日頃の勉強不足を晒してしまい申し訳ございませんでした。
DirectXでゲームを何本か作った事はあるのですが、DirectX側で 保持しているアニメデータを直接いじった経験が無く、ネットで色々 調べてみたのですが、どうにもお手上げな状態です。 アニメデータ等が読み込まれているメモリ配列部分がどこにあるのか 皆目見当がつかないのです。 なにかアドバイス等もらえないでしょうか・・・?
- 416 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 11:47:54 ]
- >>415
頭に LP がついているのは、ポインタだ。 ポインタは(32bitOSなら)4バイトで当然。 あと、アニメーションコントローラーの内部が確保したメモリーに直接アクセスする手段はない。 AnimationSetを取得したり、そこからさらにAnimationを取得したりという間接的な手段でアクセスするべし あと、AnimationControllerをいじるのはやめたほうがいいぜ。 メモリーリーク含め、バグが多すぎる。 例えば時間0の情報を書き換えると、アニメーションが正常に行われなくなる。 取得したAnimationSetを、他のコントローラーにセットしてもまともに再生されない。 Animationを削除してから追加すると、メモリーリークする。などなど
- 417 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:40:57 ]
- ウィンドウの左端を画面外に移動させると画像も画面外から描画されることを期待していたのですが
画面端から表示されてしまいます。 画面外に移動させてもクライアント座標の(0, 0)から描画させるにはどうすればいいのですか? // これだとウィンドウの左端が画面外に出たときに(0, 0)から描画されない LPDIRECT3DDEVICE9 pD3Ddev; pD3Ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0); pD3Ddev->BeginScene(); Draw(); D3Ddev->EndScene(); if( FAILED(pD3Ddev->Present(NULL, NULL, m_hWnd, NULL)) ) { pD3Ddev->Reset(&g_pDirectX->d3dpp); }
- 418 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:24:28 ]
- つーかアニメデータなんて自分用の形に吐き出して自分で管理クラスつくれよ
- 419 名前:デフォルトの毛無しさん mailto:sage [2009/02/04(水) 19:49:35 ]
- >>417
Presentの引数を全部NULLにするとか。 ごめん、勘で言った。
- 420 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:46:56 ]
- >>417
ウィンドウサイズを変える毎にクライアント領域のサイズに合わせてデバイスを作り直す
- 421 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:51:39 ]
- デスクトップ領域からウィンドウが外れたときの話だと思うが
- 422 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:56:26 ]
- 無知発見。
- 423 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:51:27 ]
- >>417
そのソースコピペ? コピペじゃないならコピペにしてくれ。 他にも書き写しのときにミスがありそう。 ああ、あと、俺の環境では画面からはみ出しても普通にクライアント座標の端っこから描画されるぞ。 はみ出した部分は画面外だから当然見えない。 <環境> WindowsXP Home Edition SP2 DirectX 9.0c (4.09.0000.0904) DirectX SDK Novemver 2007 こんぱいら BCC 5.5
- 424 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:57:09 ]
- だからクライアントサイズとデバイスサイズが合ってないとそうなるんだよ
- 425 名前:403 mailto:sage [2009/02/04(水) 23:06:07 ]
- >>408
とても参考になりました わかりやすいコメントまでつけてくださって 本当にありがとうございます
- 426 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 07:31:39 ]
- DirectinputのDIK_LEFTとかを引数で渡したい場合は
どうやるんですか? intなら foo(int i); foo(??? DIK)
- 427 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 07:45:17 ]
- BYTEでいいんじゃね?
>Dinput.h に定義されているキーボード デバイス定数は、キーボード デバイスの >データ パケット (256 バイト配列) 内でのオフセットを表す。
- 428 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 07:52:20 ]
- ありがとうございます><
- 429 名前:412 mailto:sage [2009/02/05(木) 08:21:42 ]
- >416
丁寧な解説ありがとうございました。 自前でアニメーションの仕様を0から組むのはあまりにも敷居が高いですし メモリリークなどが発生してしまうようではどうも面倒の方が多そうですね。
- 430 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:04:07 ]
- 現在頂点カラー(0xFFFFFFFF)で描画しているテクスチャを
頂点カラー(0xFF000000)に変更して全く同じように描画、 つまり、テクスチャのポリゴンとの合成方法を加算合成にしたいのですが、 どの設定メソッドを使用すればいいのでしょうか? ピクセルシェーダを自作すべきなのでしょうか?
- 431 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:58:25 ]
- DirectInputやDirectSoundについて質問です
ゲームループをタイトルとゲームで分けています タイトルが呼ばれたらインプットデバイス・サウンドデバイスを作る ゲームが呼ばれたらタイトルを破棄してゲームでインプットデバイス・サウンドデバイスを作る というやり方でいいでしょうか?
- 432 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:51:35 ]
- >>430
デバイス->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );// 合成元1(テクスチャ) デバイス->SetTextureStageState( 0,D3DTSS_COLORARG2, D3DTA_DIFFUSE );// 合成元2(頂点カラー) デバイス->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_ADD );// 合成方法(加算)
- 433 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:55:41 ]
- >>431
タイトルとゲームでウインドウ遷移したりするの? しないならデバイス作り直さなくてもよくね? 別に作り直ししちゃいけないわけでもないし そのやりかたでもいいんじゃね? シーンごとにリソース解放するってならわかるけど デバイスを無理して作り直す必要はないとは思うけどね
- 434 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:21:31 ]
- >>433
ありがとうございます
- 435 名前:430 mailto:sage [2009/02/06(金) 13:53:26 ]
- >>432
ありがとうございました
- 436 名前:デフォルトの名無しさん [2009/02/06(金) 16:01:00 ]
- 最近3Dの勉強を始めた者ですが、質問です。
人間モデルがあったとして、手に別のモデルをくっ付けたい場合は、その座標等を取得する関数のような モノがあるのでしょうか? いまいちその辺のスタンダードな取得方法がわからなくて迷走してます。 3Dモデルのノード?に名前をつけれるのでその名前から取得したりするのかなぁと思ったりしてるんですが どうなんでしょう? ググッて調べても検索ワードがまずいせいか、その辺がまったくわからなくて…Orz
- 437 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:06:28 ]
- ボーンの座標計算を自前で行えば自由自在
- 438 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:07:26 ]
- 一発で座標を取得できるような便利関数は無い
しかし、どんな方法であれアニメーションをさせている限り ボーンが今現在どんな姿勢をしているかは取得できるはずなので 自力で目的のボーンの変換行列を探せばOk
- 439 名前:436 [2009/02/06(金) 16:31:55 ]
- >>437
>>438 なるほど、モデルじゃなくボーンの方を何らかの方法で調べて 目的の行列が見つかりさえすれば座標が取得できるわけですね。 もやもやした感じが少し晴れました。 その方向で調べてみます。 ありがとうございました。
- 440 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:48:29 ]
- 深度バッファの取得方法がよく分からないんだけど
もしかして2回レンダリングするの?
- 441 名前:デフォルトの名無しさん [2009/02/06(金) 22:08:55 ]
- direct X ではベクトルの始点、終点を与えて矢印を引くことできないんだ。。。
(x,y,z)成分が与えられていれば、θ=arctan(y/x)、φ=arctan(z/sqrt(x^2+y^2) から角度が求められるから、x-Fileで作成した例えばy方向の矢印を順次回転 させて(x,y,z)方向に向ければいいんだろけど(しかし、これもx≒0のときθの 精度が悪くなるからarcsinやarccosに切り替えたり、θが第何象限にあるかを 判定する必要があるから、そう簡単ではない)。 それよりもわからないのは、剛体の3次元運動の角速度は、普通、剛体に固定 された回転座標系ξηζ上で成分表示されている。これをもとに角速度ベクトル、 角運動量ベクトルをワールド座標系上で矢印表示するにはどうしたらいいんだ? directXの回転変換マトリックスってベクトルを回転してるのか、それとも座標系 を回転してるのか?マトリックスの内容と表示を照らし合わせて確認すればいいが 面倒クセェ。 、
- 442 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:34:26 ]
- >>440
深度バッファをシェーダで利用したりするのは、DirectX10以降でないとダメ。 それ以前はNVIDIAが独自拡張で別のことに使っていた関係で使えない。 だから9では、MRTで深度値を別のテクスチャに描画して使う。 >>441 なんでいちいちθを求めるんだ。 方向ベクトルがあれば、そこから直接回転行列作ればいいだろう。 ちゃんとベクトルの勉強してたら暗算でできるレベル。
- 443 名前:デフォルトの名無しさん [2009/02/06(金) 22:51:54 ]
- >>442
わかってない。もういい
- 444 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:09:43 ]
- >>443
質問文が長すぎる 簡潔にこれがわからないって最初に書け詳細がその後だ
- 445 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:56:22 ]
- 正直、何が聞きたいのかさっぱり分からないけど
ベクトルからその向きになるような回転行列を作りたいって話なら ここを参考にすればいいと思うよ ttp://marupeke296.com/DXG_No47_CharacterDirectionMatrix.html
- 446 名前:デフォルトの名無しさん [2009/02/07(土) 07:25:07 ]
- >>444
お前はひっこんでろ >>446 ありがとう。 directXには任意の軸方向回りに、ある角度だけ回転した場合の 回転行列を求める関数がある。 なので、X-Fileで作成した初期方向のベクトルaと希望の方向の ベクトルbの外積を求めれば、必要な情報が得られることは紹介 してくれたサイトを見ないでも、しばらくしてわかった。 あとは、World座標系と剛体に固定された座標系の間の座標変換行列 が必要だけど、これはベクトルの回転変換行列と要素が一致するだろう。 (そうあってほしい)
- 447 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 08:20:06 ]
- >>446
直接 〜が知りたい って文章かけないわけ?
- 448 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:57:37 ]
- もういいから放置しておけよ
こいつが必要なのはDierctXの知識じゃなく日本語の知識だ
- 449 名前:デフォルトの名無しさん [2009/02/07(土) 16:49:31 ]
- >>447
馬鹿は相手しないね。悪いけど。 >>448 馬鹿がもういっぴき。臭ぇーちんぽが、死ね。
- 450 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:58:13 ]
- 考えるまでもなくベクトルの回転も座標の回転も同マトリックスでできるだろ。
座標の回転なんて基底ベクトルの回転に等しい。
- 451 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:06:21 ]
- 数学がわからんだけじゃないか
DirectX関係ねぇ
- 452 名前:デフォルトの名無しさん [2009/02/07(土) 17:18:49 ]
- ふぁーーっ。
>>450 おお!、あんた、なかなk筋のいい回答してるよ。 良くできましたね! 皆さんでほめてあげましょう(校長先生のお話)w。 >>451 相変わらず馬鹿だな。お前に言われるのは、100年早い。 死ね、臭ぇーーー腐れチンポが。 まだ、書いていいぞ。あっははは。 やーい、腐れチンポ、あははは
- 453 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:58:32 ]
- DirctXってかシェーダーの質問なんです
game.watch.impress.co.jp/docs/20071227/3d30.jpg ↑みたいにライティング結果をメッシュのテクスチャに焼きこんで それを出力させたいんですが、どうすればいいんでしょうか?
- 454 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:55:54 ]
- 見た瞬間、グロかとおもた。
- 455 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:58:12 ]
- ビビタ
- 456 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:45:47 ]
- >>453
UV座標をスクリーン座標にしてレンダーターゲットに描画するとか? ttp://www1.axfc.net/uploader/File/so/18247 でもテクスチャの使いまわし(特に左右対称の場合とか)があると うまくいかないのよね。
- 457 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 04:05:10 ]
- >>453
モデリングソフトで真正面・真横・真上・真下から レンダリングした絵をテクスチャにして平行投影で貼ればよかろ?
- 458 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 04:06:46 ]
- ってCGワールドに載ってたw
|

|