[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 04/29 17:34 / Filesize : 141 KB / Number-of Response : 626
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【C++】 DirectX初心者質問スレ Part21 【C】



1 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 19:39:57 ]
前スレはカスしか居ないので廃棄の方向で。

※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。


307 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:44:41 ]
とりあえずWrapの定義をはっきりさせようぜ

1、テクスチャ・アドレッシング・モード
(D3DSAMP_ADDRESSxのD3DTADDRESS_WRAP)

2、テクスチャ・ラッピング・モード
(D3DRS_WRAPxのD3DWRAP_x)

3、それ以外の何か

308 名前:306 mailto:sage [2009/01/27(火) 12:47:18 ]
さっきの書き方だと語弊があるか。

ミップマップを作っていない場合に極端に遅くなったって話ならここにでてる。
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4245145&SiteID=7

309 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:46:26 ]
なんかWrapを
スタンプみたいに敷き詰めてると勘違いしてるお馬鹿さんが混じってない?
単なるテクスチャ座標の扱いの違いだろ

310 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:55:25 ]

一番馬鹿

311 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:08:04 ]
UVが0-1の範囲を超えていたらスタンプのようになるし、
Wrapが設定されていなければ境界色なりで塗りつぶされる。

312 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:13:56 ]
違うだろう
結果的にスタンプになるだけで
やってることは
たとえば(u,v)=(2.5,3.8)を(u,v)=(0.5,0.8)
としてサンプリングしてるだけだ

313 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:18:19 ]
Windows via C/C++みたいなコンセプトがわかる書籍ってありますか?
ここにいる人は詳しそうなのでどういったもので勉強しているのか教えてください。

314 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:42:08 ]
DirectXのコンセプト?

315 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:57:49 ]
>>312
繰り返しにならなければ範囲外の色が決定できるんだから、
そのぶんの読み出しコストが無くなるだろ。
もう頭が悪いのは仕方がないから、せめて自分で塗りつぶし処理を書いてみろよ。



316 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:08:18 ]
話噛み合ってねーーー!!

317 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:38:49 ]
第三者だが噛み合ってなさ過ぎワロタ

318 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:54:24 ]
だれか助けてやれよw

319 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:03:03 ]
たとえばスクリーン上の100x100の領域に描画するとしましょう
この描画はどこで行っているかというとピクセルシェーダです
自分で塗りつぶし処理を書く必要はありませんね
以下が最小のテクスチャ付きピクセルシェーダです
固定機能パイプラインであっても見えていないだけで似たような処理をしています
float4 PixScene( float4 Diffuse : COLOR0,float2 Tex0 : TEXCOORD0 ) : COLOR0
{
 return tex2D( g_Texture, Tex0 ) * Diffuse;
}
これは、アドレッシングモードが違ってもまったく同じものが
ピクセルの数だけ、つまり100x100=10000回呼び出されます
たとえ広範囲に同じ色が固まっていっても関係ありません、どのモードでも1フレームあたり10000回です
ここでピクセルシェーダーの中をみてみましょう
tex2Dとはg_Texture(テクスチャです。ここでは256x256のテクスチャを既にセットしてあるとします)
のTex0(uv座標、頂点シェーダで計算済み)の色をサンプリングしてくれる関数と考えてください
例えば、Tex0.x=0.25、Tex0.y=0.5だったときはフィルタリングの状況にもよりますが
テクスチャの(64, 128)ドットの位置の色を返します
この色とDiffuse(ポリゴンの色、頂点シェーダで計算済み)を合成して最終的に塗りつぶす色を決定しています。
アドレッシングモードの違いはTex0の値が0.0〜1.0を超えたときのtex2Dの挙動を決定します
Tex0.x=1.25、Tex0.y=1.5だったとしましょう
CLAMPでは0.0以下であれば0.0、1.0以上であれば1.0として扱います
つまりTex0.x=1.0 Tex0.y=1.0と同じ色、テクスチャの(256, 256)ドットの位置の色を返します
WRAPでははみ出た分は巻き戻って計算します
つまりTex0.x=0.25、Tex0.y=0.5と同じ色、テクスチャの(64, 128)ドットの位置の色を返します
当然では在りますが、PIXで処理時間を計測しても両者に差異は見当たりません

320 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:06:21 ]
そういえば
nVidia系のボードだと
同じ処理を固定機能で書いた場合とシェーダーで書いた場合で
結構処理速度に違いがでるんだけど
ATI系だとほとんど差がでないんだけどこれって何でだろう?

321 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:33:15 ]
>>319
恥の上塗りをしてるだけだからやめとけって……

>>320
どっちの方向に違いが出るのよ?

322 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:23:04 ]
>>306,308
これだ

GeForce8300Gsでも激重になる現象確認
>>306,308の対応をしたら直った

というわけでmipmapに気をつけないと糞重くなります

323 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 20:39:27 ]
今まで気をつけていなかった方が逆に不思議なんだが。

324 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 20:43:10 ]
>>323
そこまでいうほどじゃねぇと思うな
俺なんか全く知らなかったしw

325 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:42:40 ]
なんでミップマップ使うと軽くなるか分かってないんだろうな・・・

float4 PixScene( float4 Diffuse : COLOR0,float2 Tex0 : TEXCOORD0 ) : COLOR0
{
 return tex2D( g_Texture, Tex0 ) * Diffuse;
}

このソースで速度が上下するのはtex2D()の部分。
テクスチャが大きすぎてキャッシュに乗らない場合は1サンプルごとに
メモリからの読み込みで帯域を食ってしまうが、キャッシュに乗るくらい
小さければキャッシュからの読み出しができるので大変高速に読み出せる。
ミップマップを使うと過剰なサンプリングを回避できる。

命令数と描画ピクセル数だけでは速度は決まらない。

テクスチャサイズが256x256で、-2.5をサンプリングしたら
-640&(256-1)の計算でサンプルピクセルが出る。
この計算がどの程度重いかは考えてくれ。



326 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:50:23 ]
でかいテクスチャを使うと重くなる理由がキャッシュだけしか思いつかない馬鹿が、
知ったかを晒す悲しいスレ。

327 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:59:58 ]
素直に感心した。なるほどな

328 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 22:12:57 ]
>>325
おおー
俺も理解できた
すごいね

329 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:36:16 ]
なんで、ATI系はおそくならないの?
多少大きいテクスチャを参照したぐらいで
露骨に性能減するって、しょぼい木がするけど
そんなもんなの?

330 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:40:02 ]
>>329
前、Radeon9600proもってたけど
遅くなった気がするけどな

331 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 00:13:01 ]
ドライバーのバージョンによっても変わるし、
実際のゲームだと描画するたびにテクスチャ切り替えとか
複数のテクスチャを1度の参照したりとかで重くなったりするから、
正確に何が重くなってるか測らないとあかん。


332 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 05:57:00 ]
>>331
変わるか?
あんまり大差ないよ

333 名前:デフォルトの名無しさん [2009/01/28(水) 13:12:45 ]
同次座標(D3DFVF_XYZRHW)での表示はビルボードと同じ効果が得られますか?

334 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:18:27 ]
はい

335 名前:デフォルトの名無しさん [2009/01/28(水) 13:29:32 ]
>>334 ありがとうございます



336 名前:デフォルトの名無しさん [2009/01/28(水) 16:36:54 ]
まぁそういう現象の起きるハードウェアは実際に結構あるので
Wrapに頼る設計はWindowsではやらん方がいいね

337 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:23:38 ]
XFileでアニメーションを実装するのとObjファイルを書きだしてモーションパスでアニメーションを実装するのはどちらがいいですか?

XFileは簡単だけど処理が重いと聞きました

この2つならどちらがいいかアドバイスお願いします

338 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:41:32 ]
ファイル形式が違うだけで処理の重さは処理を作るやつ次第だと思うが・・・

339 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 07:15:44 ]
Xファイルは処理が重いって言うより、単純にアニメーション再生させるなら簡単だけど
それ以上のことをやろうとすると難しいっていう感じだな

340 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 07:19:50 ]
>> 339

なるほど 例えばOBBで衝突判定をしたりとかですか?

341 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 07:27:22 ]
>>337
objファイルでアニメーションしたほうが何かといいよ

342 名前:デフォルトの名無しさん [2009/01/29(木) 15:54:56 ]
up2.viploader.net/pic3/src/vl2_094953.jpg
これだろ

343 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 16:27:31 ]
半透明のポリゴンを持つメッシュを表示したいんですが
普通に描画すると、半透明ポリゴンを先に描画してしまった時に後ろのポリゴンが表示されない場合があると思うんですが
どうすればいいでしょうか?

344 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 17:02:21 ]
Zバッファ法の限界なのでどうにもならない
半透明ポリゴンは最後に書き込む何らかの仕組みが必要

345 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:37:16 ]
ttp://www.hsjp.net/upload/src/up57929.jpg
販促チラシ




346 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:48:17 ]
ここんとこずっと朝から晩まで本見たりネット見たりしているのにいまだに画面に何か出すことすら出来ない

347 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:54:56 ]
Javaでもやれば?手っ取り早いし、それなりに実用的だぞ

348 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 22:42:13 ]
DirectMusic8で音鳴らしてるんだが
エラーでないのに音が鳴らないときとかあって困る

DirectMusicLoaderは1つしか使うなっていうから
1つしか使わないようにコードかえたが
やっぱり音が鳴らないときがある

349 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 22:49:49 ]
>>346
だせぇなゆとりにもほどがある

350 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:02:52 ]
>>348MIDI?WAV?そもそもキミのPCは正常に音は再生できてるのかい?

351 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:11:26 ]
>>349
みんなできててすげーな
これでも高校のとき成績は理系でトップクラスだったんだぞ

352 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:18:12 ]
>>351
ケツからだろ
夢みんな

353 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:32:02 ]
そもそも発想がイケてない
画面に何か出てるサンプルからみろよ

っていうかそこまでアフォならちょっとしたゲームを作れる入門書から買ったほうが速いだろ?
VCとかDirectXとかもうダウンロードしてきたのか?

354 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:37:27 ]
VC++もSDKももうある
サンプルを改変して.xを表示することくらいはできた
自分で1から作ることができない。"概念"さえ掴めばパッパといける気はするが

355 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:41:07 ]
>>350
WAV 正常に再生できてるよ
DirectSoundのサンプルはちゃんと再生されるけど
DirectMusicのサンプルは再生されないときがある
ワケワカラン
おとなしくDirectSound使いたいところだが
SDKのVerがアレなので(ry


>>346
WIN32APIプログラムとかの入門をとばして
いきなりDirectXの入門書を見てたりしないか?




356 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:52:36 ]
>>354
なんだできてんじゃん

>自分で1から作ることができない
1からってどういうこと?
なにもみないで書くって意味だったら10年やってる俺でも無理だ
テキトーに必要なもんかき集めてぺたぺた貼って動かすぐらいならできるがな
初期化処理の書き方なんてその時代時代でやることかわるし
大事なのはサンプル理解して応用していける力なので
そういう自分で・・・っていうのは必要ない
まずはなんでもいいからゲームを作ってみろ
それ以外のことは無駄だから考えるな
そうだ、テトリス作れ3Dテトリスな(ゲーム的には2Dの)ハイ決定さっさと作れ

357 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:31:25 ]
頭が悪い奴って勉強頑張れるらしい

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);

でカメラ位置を変更しています。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<141KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef