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


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

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



1 名前:デフォルトの名無しさん mailto:ライシンマハケン [2008/07/17(木) 13:50:04 ]
1 名前:デフォルトの名無しさん[sage] 投稿日:2008/04/09(水) 09:55:56
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part17 【C】
pc11.2ch.net/test/read.cgi/tech/1207702556/

276 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 11:36:26 ]
ファイル名を指定して実行、とか、Windows\system32の中、とか無いの?
今まで無かったためしがないのでないという状況がよくわからん。

277 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 12:00:56 ]
DirectXを学ぶときって関数を暗記する必要ありますか?

278 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 12:47:42 ]
>>277
暗記してもすぐ仕様が変わるから無駄


279 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 15:35:54 ]
暗記する必要はないが、どんな関数があるかくらいは一度全部
目を通した方がいい。

280 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:47:25 ]
パソコンのDirectXバージョンがDirectX10で
製品の動作機種がDirectX9対応グラフィックでは正しく使えるのでしょうか?
それともDirectXというのは同じバージョンでしか対応しないものなのですか?

281 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 16:58:16 ]
>>280
10以下のはすべて使えると思う


282 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 21:56:47 ]
>>281
回答ありがとうございます


283 名前:デフォルトの名無しさん [2008/08/26(火) 23:03:10 ]
とりあえず280GTXってのを買ってきました。これでコミケに出れます。

284 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 23:06:12 ]
今からDirectXの勉強を始めようと思うのですが
入門書としてDirectXゲームグラフィックスプログラミングVer2.1
を買いました。

DirectXGraphicsの初期化などは暗記して見ないで打てるようにしたほうがいいですか?



285 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 23:10:38 ]
初期化なんかゲーム1本につき1回しか書かないから、ちゃんと動くの1回書けたら忘れていいよ

286 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 23:10:39 ]
なんか暗記とか数学どこまで勉強とかって・・・
日曜プログラマならみんなコピペでいいよ
コピペで駄目になってから考えろ

287 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 01:11:50 ]
みんなでコピペした結果がこれだよ!

www.watch.impress.co.jp/game/docs/20070927/wv.htm

288 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 07:18:41 ]
>>283
待つんだゲフォの280は地雷だ。
らでの4850にしとけ。
大差ないスペックで大量の消費電力と3倍近い値段するんだぞ280は。

289 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 07:52:34 ]
>>287
March 2008でも直ってねーじゃん

290 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 07:58:17 ]
日曜プログラマでも脳みそは使わなきゃダメだ

291 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 09:43:51 ]
提供元のサンプルはコピペのためにあるようなもんだしなw
DVD出たときにパイオニアと東芝がしょっちゅう同じバグ出してたのもコピペだったんだろうなあ

292 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 11:30:57 ]
>>291
昔買ったNECのマウスのファームウェアがサンプルのコピペでワロタ
CY7C63101のサンプルコードに書いてあった仮のベンダーIDとかそのまんまになってた

293 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 13:49:52 ]
DC版VF3がSAMPLE GAMEなのと同じですね、違いますね。


294 名前:デフォルトの名無しさん [2008/08/28(木) 00:58:23 ]
Windosゲームを作っていて、
ゲーム起動時に32*32のフォント画像のテクスチャーを約8000個作りたいんですが、
その処理に15秒くらいかかってしまいます。

CreateTextureやバッファにフォント画像を書き込むこと自体は、
全然時間がかからないんですが、
↓の処理が凄く遅いです。

D3DLOCKED_RECT lockRect;
pTexture->LockRect(0, &lockRect, NULL, D3DLOCK_DISCARD);

高速化する方法ってないでしょうか。



295 名前:294 mailto:sage [2008/08/28(木) 01:12:25 ]
自己解決しました。
CreateTextureのプールを、
D3DPOOL_DEFAULT から D3DPOOL_MANAGED に変えたらちょっぱやになりました。

理由はよく分かりませんが、
D3DPOOL_DEFAULTだとLockRectでVRAMにアクセスするから遅い?

296 名前:294 [2008/08/28(木) 01:20:42 ]
LPDIRECT3DVERTEXBUFFER9を頻繁にLockして色を変えたりする場合も、
もしかして、D3DPOOL_MANAGEDの方が速いのでしょうか?

D3DPOOL_MANAGEDとD3DPOOL_DEFAULTの長所短所がよく分からないんですが、
詳しい人いたら教えてもらえませんか?

297 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 06:54:13 ]
POOL_DEFAULTは適切な使い方をすればちょっぱやになります。
あなたの使い方は論外です、今は素直にPOOL_MANAGEDを利用して
いつか分かるようになったらそのとき色々考えましょう。

っていうかDEFAULTのテクスチャをロックするなよ。

298 名前:294 [2008/08/28(木) 08:47:12 ]
今までリソースは全てPOOL_DEFAULTで作ってたんですが、
POOL_DEFAULTはどういう場合に使うのが適切なんでしょうか?
いつかじゃなくて今知りたいんですが、教えてもらえないでしょうか。

299 名前:294 mailto:sage [2008/08/28(木) 09:23:29 ]
かなり苦労してデバイスロスト時のリソース開放復帰処理を作ったので、
適切なところはPOOL_DEFAULTを使いたいんです。

300 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 10:53:32 ]
その前にテクスチャ8000個の方に突っ込むべきな気もする…

301 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 11:24:46 ]
淫乱負数からディスプレイアダプタを取得する方法が分からないのですが
誰か教えていただけませんか?

// ディスプレイアダプタを表すためのデバイスを作成
// 描画と頂点処理はハードウェアで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画処理はハードウェアで、頂点処理はCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SPFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画と頂点処理をCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_REF,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
//取得失敗
return E_FAIL;

これだとコンパイルエラーが出ます。。。

302 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 11:45:18 ]
D3DPOOL_DEFAULT とかD3DPOOL_MANAGED考える前に
テクスチャ8000個ってのを改善しろよ

8000個なんて使うときあるか?

303 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 12:41:51 ]
>>302
日本語全部だとそのくらいじゃないの
知らないけど

304 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 12:44:54 ]
1文字ずつバラしてんのか



305 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 12:51:47 ]
1枚でつくって切りだして使えよ

306 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:22:12 ]
>>305
じゃあ聞きますけど1枚に全部入りますか?
書き込む前に考えるクセをつけるべきだと思います。

307 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:27:35 ]
jpeg3なら可能なんでない?
マトリョーカシからの圧縮も対応してるし
12000*8000のサイズも余裕で収まるっしょ?

308 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:27:56 ]
糞設計ブーム到来中

309 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:31:38 ]
「1枚じゃはいらないなぁ」

「でも複数にするとどの文字が
どのテクスチャに収納されてるのか考えないと・・・」

「そうだ!1文字テクスチャでつくればいいんじゃね」←いまここ


こういうことだろ?
どんだけ手抜きなんだよ

310 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:35:26 ]
書き込む前に考えるクセをつけるべきなのは>>306だなwwww

311 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 13:52:55 ]
---煽りあいはここまで---


312 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:22:10 ]
32*32を8000枚って、30MB超えたんだが、いったいどんな富豪グラボを想定してるんだろうw

313 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:55:04 ]
大丈夫
いまどきの富豪なグラボは1GBある

314 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 17:57:52 ]
淫乱負数からディスプレイアダプタを取得する方法が分からないのですが
誰か教えていただけませんか?

// ディスプレイアダプタを表すためのデバイスを作成
// 描画と頂点処理はハードウェアで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画処理はハードウェアで、頂点処理はCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SPFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
// 失敗した場合
// 描画と頂点処理をCUPで行う
if(FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_REF,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&m_D3DPP, &m_pD3DDevice))) {
//取得失敗
return E_FAIL;

これだとコンパイルエラーが出ます。。。



315 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:42:55 ]
とりあえずエラーの内容も書こうぜ

316 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 18:55:45 ]
Renderer.cpp(266行目) 淫乱負数からのポインタが取得できません

ちなみに使っているコンパイラは現役専門学生の友達が作ってくれたものです。

317 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 19:53:57 ]
DEFAULTはそれこそ毎フレーム書き換えるようなデータに使うのが一般的。
その場合は当然DYNAMICフラグとセットにしてな。

それ以外のただの画像テクスチャなんてものはMANAGEDで問題ない。
速度的にDEFAULTが速いとか勘違いしてるかもしれないが
作成時に1回だけ書き換える程度の静的なデータには無意味だ。

一般的といっていいかは分からないけど、
MMOみたいな大量の文字を使うようなゲームでも普通は事前に
テクスチャに展開してUVで切り出して描画をするぞ。

1文字1テクスチャは色々とおかしいといわざるを得ない。
1文字単位でテクスチャの切り替えが発生するしキャッシュ効率も最悪。

318 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 22:45:27 ]
>>316
淫乱負数について詳しく

319 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 23:23:35 ]
【淫乱負数】

デクリメント負数のサイズ (バイト単位)。柔軟な頂点フォーマット (デクリメント) 頂点バッファの場合は、
淫乱負数 は少なくとも 1 つの頂点を格納できる大きさでなければならないが、頂点サイズの倍数である必要はない。
淫乱負数 は非 FVF バッファについては検証されない。

320 名前:294 mailto:sage [2008/08/29(金) 00:13:09 ]
>>309
手抜きじゃなくて、無知で初心者なだけです。
常に最善を求めて頑張っています。

>>310
とりあえず>>306は私じゃないのであしからず。

>>312
いまどきのグラボは30MBくらいいけると想定して、
古いグラボはすっぱりと切る心づもりでした。

321 名前:294 mailto:sage [2008/08/29(金) 00:14:46 ]
>>317
参考意見ありがとうございます。

charがどの文字に対応するかは絶対1つずつ判定が必要ですよね。
そしたら後は、1枚から特定の場所を切り出す処理がない分、
1つずつのテクスチャにした方が効率がいいかと思ったんですが、
そうではないんでしょうか?

私はプログラムやコンピュータに触りだしたのが最近で、
キャッシュ効率(たぶんハード寄りなこと?)というのがよく分からないんですが、
大量のテクスチャを使えば一時保存領域などを頻繁に入れ替えることになるから、
その分オーバーヘッドが生じて遅くなるってことでしょうか?

322 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 01:21:10 ]
>>317
その書き方では、DEFAULTはロック書き換え用だと読めるが、
そうなの?
別に実測値を出せとは言わんが、それを示すドキュメントとかあるか?


323 名前:デフォルトの名無しさん [2008/08/29(金) 01:25:44 ]
扇形を簡単に描画させる方法ってないですか?
60度の角度で上方向に扇形を描画さしたいのですが(円弧の方が上)
開始地点は275から半径50の扇形を描画さしたいのですが
pD3Device->SetTexture(0, pTexture[0]);
pt[0].x = 250.0f;
pt[1].x = 300.0f;
pt[3].x = 275.0f;
pt[2].x = 275.0f;

pt[0].y = 225.0f;
pt[1].y = 225.0f;
pt[2].y = 275.0f;
pt[3].y = 275.0f;

pt[0].tu = pt[3].tu = 0.0f  / 1024;
pt[1].tu = pt[2].tu = 200.0f / 1024;
pt[0].tv = pt[1].tv = 0.0f  / 1024;
pt[2].tv = pt[3].tv = 200.0f / 1024;

pD3Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,pt,sizeof(CUSTOMVERTEX));

これでは普通に三角形ができただけで・・・
角度計算とかで簡単に扇形にできないでしょうか?

324 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 04:00:28 ]
>>321
テクスチャの切り替えはなるべく少なくした方が高速



325 名前:233 mailto:sage [2008/08/29(金) 05:00:57 ]
解決しました
粗末な物を張ってすみませんでした

326 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 07:17:27 ]
淫乱負数って一体何なんだ

327 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 07:33:53 ]
>>321
テクスチャの切り出しなんて文字コードをインデックスにして
テーブルからUVを引っ張ってくるだけだろ。
今のCPUのキャッシュ容量なら余裕で全部乗る程度のキャッシュサイズだし、
別にテクスチャ自体を切り出して作るわけじゃないぞ。

「テクスチャの切り替えをする」ということはそのつど「DrawPrimitive」を呼ぶということだ。
昨今のグラフィックカードは細かいデータをたくさん出すようには設計されてないので致命的なほど遅い。
なので可能なら1枚のテクスチャに格納⇒文字全てを1個の頂点バッファに格納⇒DrawPrimitive1回で全ての文字を描画
これが実測でも理論でも最速になる。

DrawPrimitiveの連打に比べたら頂点データの作成やUVテーブルの参照なんてゴミみたいな負荷。

>322
SDKに入ってるドキュメントに書かれてるよ。

>動的な頂点バッファおよびインデックス バッファの使い方
>
>理想は頂点データまたはインデックス データがまったく変化しないことですが、これは必ずしも可能ではありません。
>アプリケーションがフレームごとに頂点データまたはインデックス データを変更する場合は多くあり、
>フレームあたり複数回変更することさえあります。
>このような場合は、D3DUSAGE_DYNAMIC を使って頂点バッファまたはインデックス バッファを作成する必要があります。
>この利用法フラグによって Direct3D を頻繁なロック処理用に最適化します。
>D3DUSAGE_DYNAMIC はバッファを頻繁にロックする場合にのみ有用であり、
>変化しないデータは静的な頂点バッファまたはインデックス バッファに格納する必要があります。

テクスチャやサーフェイスの場合だとシステムメモリにコピーをいちいち作れない、
レンダリングターゲットや深度バッファなんかもDEFAULTで作る必要あるけど。

328 名前:327 mailto:sage [2008/08/29(金) 07:43:05 ]
補足。

D3DUSAGE_DYNAMICフラグはD3DPOOL_DEFAULTと一緒じゃないと使えない。

D3DPOOL_MANAGEDって単にシステムメモリにコピーもってて、
システム側のバッファ⇒DMA転送⇒VRAMのバッファってやってるだけ。
だからデバイスがロストしても復旧できる。
当然だけど描画中のバッファをLock()しようとした場合は描画終わるまで待たされる。

そうなると頻繁にバッファ書き換えるなら直接VRAMのバッファ変えるほうが速いのは当然だし
DYNAMICフラグの場合はLock()する度に別のアドレス返してくるからMANAGEDみたいに
データの保障は出来ないってことだな。

DYNAMICしたバッファは
Lock()→新しいビデオメモリ領域をmalloc()→そのアドレスを返す→描画終わったらドライバがfree()
っていう処理だから他のバッファみたいに描画中のバッファに干渉してパイプラインを止めなくてすむ。

だから書き換えないならMANAGEDでいいし、頻繁に書き換えるならDEFAULT+DYNAMICにしとけってな話。

ドキュメントの「DirectXGraphics」→「プログラミング ガイド」→「プログラミングのヒント」→「パフォーマンスの最適化」を参照。

329 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:06:50 ]
書き込むスレ間違えたのでマルチスレッドになるかもですが、

シーンの作成時やレンダラーの初期化時に

HRESULTをいうのを使っているのですが
HRESULT Renderer::Initialize(HWND hWnd, BOOL isFullScreen, int clientWidth, int clientHeight)

LRESULTとの違いってなんですか?
LRESULT CALLBACK WindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

ウィンドウプロシージャルを定義するときはLのほうを使って
DirectXの初期化の時などはHを使うって事ですか?

330 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:23:45 ]
LRESULTはもともとlongだったものからきてる、longで結果を返すものと思っていい。
HRESULTは内容が決まってる。COMが返すものと思っていい。
自分で作った関数は、よそから返ってきたHRESULTをそのまま返すもの以外はあまり使わないと思うよ。

331 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 11:36:43 ]
>>330
なるほど〜〜

ありがとうございました!

332 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:29:25 ]
テイルズっぽいゲームを作ろうと思っているのですがエフェクトの所で悩んでます
戦闘時のエフェクトとかってDirectXで描写するのとAdobeEffectsとかで作ったのを描写するのどっちが一般的なんですか?

333 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:39:54 ]
3Dなら、プログラム率高い
2Dなら、ベタでいいんじゃね?
絵の量が多いと、プログラムしないとメモリが足りないけど

334 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:40:58 ]
参考
ttp://rayz.skr.jp/?rayz.skr.jp/zakki/_zakki.html



335 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 12:47:28 ]
>>332
このスレ64から嫁
一般的かって話なら3Dで作るのが一般的

336 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 13:30:03 ]
質問もマルチスレッドの時代になったか


337 名前:294 mailto:sage [2008/08/29(金) 20:40:02 ]
>>327
文字列全てを1個の頂点バッファに格納するというのは、
同じ板ポリゴンに、位置をずらしながら1文字ずつ貼り付けていくということですよね。

板ポリの4頂点にテクスチャのUVを指定して、
板ポリ全体にテクスチャを貼り付ける方法しか知らないんですが、
板ポリゴンの一部にテクスチャを貼り付けるにはどうすればいいんでしょうか?

338 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 20:44:59 ]
>>337
いうてる意味がわからんが「描画する文字数 x 4角形」分の大きさの頂点バッファをこしらえるだろ。

339 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 21:19:35 ]
1文字あたりポリゴン2枚(三角形×2)
1個の頂点バッファにたくさんポリゴンを詰め込んで、1回のDrawPrimitiveで全部描く

340 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:21:31 ]
>>328
D3DPOOL_MANAGEDはレンダリングターゲットには出来ない。
ということはGPUによる書き換えは発生せず、内容の書き換えが起こるとするとすれば
それは常にCPUからの場合のみ。

だとすれば、D3DPOOL_MANAGEDのリソースは、
メインメモリ側がマスタで、ビデオメモリ側がスレーブという考え方でかまわない訳で、
lockした場合は、常にメインメモリ側のポインタを返し、
unlockした時点でスレーブに反映させればいいから、別にCPUはストールしない。

と、勝手に思っていた訳だが。根拠はないが。

341 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 22:26:55 ]
また、SDKの記述だが
D3DUSAGE_DYNAMIC+D3DPOOL_DEFAULTが
D3DPOOOL_MANAGEDより優位だとは特に書いていないぞ。

342 名前:デフォルトの名無しさん mailto:sage [2008/08/29(金) 23:51:45 ]
>>340
CPUのメモリに書き込む⇒CPU→GPUの転送をする⇒GPUのバッファが描画待ち状態だった⇒さぁどうなる?

>>341
毎フレームロックするような2Dのスプライトみたいなものとか、
3Dのパーティクルみたいなものには有利とは書かれているぞ。

モデルみたいな作りっぱのデータにはむしろマイナスだろう。

343 名前:294 mailto:sage [2008/08/30(土) 00:45:36 ]
>>338
>>339
理解しました。頂点バッファって三角形何個でも繋げられるんですね。
今まで常に三角形2枚の長方形で1個の頂点バッファにしてました。
どうもありがとうございます。

344 名前:294 mailto:sage [2008/08/30(土) 00:47:27 ]
>>328
起動時のフォントテクスチャ作成を、
D3DPOOL_DEFAULT、D3DUSAGE_DYNAMICから、
D3DPOOL_MANAGED、USAGEなしに変えたら、
LPDIRECT3DTEXTURE9#LockRectが20倍くらい速くなったんですが、
描画中だとD3DPOOL_DEFAULTの方がロック速いけど、
描画してない状態だとD3DPOOL_MANAGEDの方がロック速いってことでしょうか。

いずれにせよ、色々実測してみようと思います。



345 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:46:27 ]
dxerr.lib dxguid.lib d3dx9.lib d3d9.lib このライブラリの中で
ゲーム会社の採用試験の作品提出の時に使ったまずいのってありますか?

346 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:53:47 ]
まずいのはそんなことを質問するお前の頭
その時点で不採用決定だから気にするな

347 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:58:44 ]
流石にネタだろw

348 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 22:59:47 ]
>>345

windowsアプリケーションを作る時
#include <windows.h>
がないとの同じだぞ?

349 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:03:22 ]
>>345
お前は心臓がなくて生きてられるか?(ペースメーカーなど除く)

350 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:25:28 ]
>>345
d3d9.libだけは使ったらまずい。ほかは使っても大丈夫だよ
採用試験がんがれ!

>>346-349
しんだほうがいい

351 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:28:48 ]
>>345
プログラマーって>>350みたいなの多いから気をつけた方がいいよ
別に気に入らなければ答えなきゃいいだろうっていう質問をネタに遊ぶ連中だから

352 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 23:32:30 ]
再配布禁止なのはd3dx9***.dll系だろ・・・


353 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 00:28:48 ]
こういうくだらない話に喰いつく奴をみると
ネット経験が浅いんだろうなぁ、ウザいなぁと何時も思う。

354 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:01:16 ]
>>352
実行ファイルの隣に置いておくのが駄目なだけで
再配布が禁止されてるわけじゃないよ




355 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:49:17 ]
採用担当はいちいちそんな所みてねぇよ

356 名前:294 mailto:sage [2008/08/31(日) 04:38:21 ]
色々試してみましたが、
やっぱうちだとPOOL_DEFAULT より POOL_MANAGEDの方が速いっぽいです。
あと、HARDWARE_VERTEX_PROCESSING より SOFTWARE_VERTEX_PROCESSINGの方が速い。

357 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 05:24:16 ]
>>356
システムメモリとビデオメモリを理解してないんですね
わかります

358 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 08:08:45 ]
>>356
そりゃロック速度は速いだろうけど描画は遅くなるだろ・・・

359 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 08:47:02 ]
>356
測定条件が明確じゃないのに、ここでどっちが早いとか
書いても意味ねーぞ

360 名前:294 mailto:sage [2008/08/31(日) 14:24:52 ]
C#で測定ツールを作ってみたんですが、
測定条件こんな感じでどうですか?
www.sepia.dti.ne.jp/zigzag/test.zip
Managed DirectXは少し遅いらしいけど。

361 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 14:33:26 ]
>>354
エーダメだったの?

362 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 16:28:42 ]
>>360
いやぁ
その前にシステムメモリとビデオメモリの違い
ってわかる?
多分、そんなの測ってもケースバイケースよ?
いまのままだとどんな条件のときにそのプログラムが速くて
そんな条件のときにそのプログラムが遅いのかわかんないでしょ?

それを知りたい?
それとも虚構の条件でのみ速いって主張するそのプログラムを
みんなに認めてもらいたいだけ?

どっちか選んで方針決めてよ

363 名前:294 mailto:sage [2008/08/31(日) 16:59:03 ]
何の違いですか?転送速度とか?
詳しい違いはしりません。

>それを知りたい?
知りたい。

364 名前:294 mailto:sage [2008/08/31(日) 17:00:47 ]
あとはうち以外の環境でも実測して、
結果と理論を合致させたいです。



365 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 17:01:41 ]
何で敢えて「その前にシステムメモリとビデオメモリの違い」を無視しているのかなぁ。


366 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 18:59:07 ]
iPhoneのように画像をマウスの動きに合わせて左右にスライドさせて見るような画像ブラウザを作りたいのですがDirectXで可能でしょうか
お勧めのライブラリーなどあればよろしくお願いします

367 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 18:59:37 ]
>>361
ちゃんと書いてあっただろ・・・。
もし商業でやってたらアウトだぞ。

再配布していいのは「再配布パッケージ」だけで
「再配布パッケージの中のファイル(d3dx9_32.dllなど)」を
単独で再配布してはいけない

>>363
その詳しい違いを調べてるんじゃないの?
ただロックして書き込み速度だけみたいなら
mallocしたバッファにでも書けば?

368 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 19:32:36 ]
>>363
んじゃ

システムメモリってのはPCのCPUで演算させるときに
データをおかなきゃならんところなんよ
ビデオメモリってのはグラフィックボードのGPUで
演算させるときにデータをおかなきゃならんところよ

>あと、HARDWARE_VERTEX_PROCESSING より SOFTWARE_VERTEX_PROCESSINGの方が速い。
これもさ、LockとかDrawPrimitiveUpやってんじゃねぇの?

なのでそんな結果になっちゃうわけよ

つまりな、描画方法がグラボの能力をまったく使えてないw

369 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 20:35:00 ]
>>367
エーそうだったのか
ありがとう

370 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 13:49:43 ]
2Dスプライトを実装する際の
頂点バッファ、インデックスバッファの扱いについて質問です
これらはスプライト毎に用意したほうがいいのでしょうか?
それともシステムに対して一つ用意してそれを使いまわせばいいのでしょうか?


371 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 14:56:14 ]
>>370
1個だけ作っておいて
スプライトを順次埋め込んでいけばオッケ
表示するときに一発で済む


372 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 17:59:13 ]
>>371
一つの頂点バッファに動的に頂点を追加し
テクスチャごとにインデックスバッファを作成して描画ということでしょうか?

一つの動的な頂点バッファをマイフレームロックして書き換えるのと
テクスチャごとに静的頂点バッファを生成して切り替えて使うのだと
どちらがパフォーマンスにやさしいのでしょうか?

373 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 19:01:41 ]
初めてDirectXクリックしたら はい いいえの文字が出たのでいいえクリックしたら
DirectX診断ツールが出てきた・・・はい いいえの内容教えてください
たしか はい がおすすめですと書いてあった
バージョンが最新?DirectX 9.0cになってたいいえクリックすると自動で9.0cがインストールするの?
詳しい方教えてくださいおねがいします。

374 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:59:35 ]
なんでこの文はFAILEDが2個もあるんですか?

//--------------------------------------
// モデルを生成
//--------------------------------------
// 球体(Sphere)の生成
if(FAILED( FAILED(D3DXCreateSphere( pD3DDevice,
1.0f,
36,
36,
&m_pMesh,
NULL)))) {
return E_FAIL;
}



375 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 21:59:50 ]
とりあえず
・プログラミングの話しではない
・日本語がおかしい

376 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:10:08 ]
>話しではない

お前も日本語がおかしい






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

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

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