鬱だ氏のう DirectX (Part 6)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものでス
02/10/07 01:00ID:???初心者用相談室では扱わないような少し高度な話題も受け持つ。
■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/ (Part 2)
http://game.2ch.net/test/read.cgi/gamedev/1005119775/ (Part 3)
http://game.2ch.net/test/read.cgi/gamedev/1016276254/ (Part 4)
コピペスマソ
CGI+DirectXが可能かと問われれば可能である。
・一般的な用途としては負荷・応答性等の問題より実用的でない。
他の技術を使った方がイイ
・非常に特殊な条件・用途の場合には有用な可能性がある。
はおんなじコトでしょ。
343氏は可能性を探りたいならさ、まずどんな用途に適してるか考えてみたら?
応答性や処理速度がどんだけ必要かってのは、条件や用途によって決まるものでしょ
前提とする条件も用途も決めずに、遅いとか負荷がどうのトカ言っても意味ないよ。
0362名前は開発中のものです。
02/11/03 17:26ID:???0363名前は開発中のものです。
02/11/03 17:32ID:???DirectX SDKのSamplesの下にソースがあるよ
最初はなんでそうなるか分からなかった・・・
結局自分で一度作っちゃったヨ
0364名前は開発中のものです。
02/11/03 17:43ID:3BaP/5EM描画するより早いのはどういう原理なのですか?
同じように、同じオブジェクトを、好きな座標にいっぺんにたくさん描画する
方法ってありますか?
ブロック崩しのボールを分裂させて500個とか高速に描画させたいのですが、
全部自分で書くと遅くなってしまいます…
0365名前は開発中のものです。
02/11/03 17:51ID:???>早い
塗る面積が同じなら、送る頂点の個数の差でしょうね。
>500個とか高速に
??何と比べてるのか分からない。
0366名前は開発中のものです。
02/11/03 18:00ID:???どこにでもあるようなCGI利用可能なWEBサービスを
前提にしてるんだろ?
セッション毎の接続時間や負荷に制限もあるだろうから
あまり派手にアクセスするような用途には不向きだな。
・最高得点データの共有
・ユーザ管理
せいぜいこんなものか。
0367360
02/11/03 18:07ID:???DX8から固定機能のすふぇあマップって無くなったのかな?
前のバージョンにはあったような気がしたんだが。
シェーダーまだ勉強してなんだよね…
0368363
02/11/03 18:15ID:???頂点シェーダの勉強したかったので見てません>固定機能
スマソ
0369364
02/11/03 18:23ID:???頂点の個数の差だけなんですか?
たとえば、背景画像に、640x480のbitmapを一枚貼り付けるのと、
32x32のテクスチャをラッピングで20x15個分貼り付けるのでは、
貼る面積が同じなのに、後者の方が桁違いに速いですよね。
それの理由と、それを利用して、32x32の大きさのテクスチャを、自分の好きな位置に
20x15個高速に貼り付けることは可能かを知りたいのです。
何と比べているかというと、
1. 32x32のテクスチャを20x15個貼り付ける速さ
が、どうにかして、
2. 32x32のテクスチャを1個貼り付ける速さ
にならないかということです。
0370名前は開発中のものです。
02/11/03 18:30ID:???ウインドウのサイズが変わったときにどんな処理をしたらいいのでしょうか?
そのままだと、元画像がただ引き伸ばされるだけなので。
サンプル見たんですが、どうもデバイスごと作り直しているような…
実際どうなんでしょうか?
0371名前は開発中のものです。
02/11/03 18:36ID:???0372名前は開発中のものです。
02/11/03 18:40ID:???最近のビデオカードでやってると仮定するよ。
ビットマップ一枚貼るだけなら、内部処理はほとんどがメモリコピー
になる。フィルレート値そのままの速度になるはず。
同じ640x480を塗りつぶすなら、メモリコピーにかかる時間はどういう
方法をとっても同じになるから、違いといえばGPUに送る頂点の個数の
違いでしかない。
ただし、DrawPrimitiveを20x15回呼んでるとするなら、それのオーバー
ヘッドのほうが大きいと思う。工夫してVertexBuffer/IndexBufferを
つかったほうがよい。
> 何と比べているかというと、
> 1. 32x32のテクスチャを20x15個貼り付ける速さ
> が、どうにかして、
> 2. 32x32のテクスチャを1個貼り付ける速さ
> にならないかということです。
書いたように、メモリコピーの時間より短くなることはありえない。
あとはいかにこれに近づけるかにかかってる。API呼び出し回数を抑えるとか、
テクスチャを一枚にまとめて切り替え回数を減らすとか、
そういう工夫が必要。
0373名前は開発中のものです。
02/11/03 18:44ID:POPax65Vウインドウリサイズでサーフェイス作成で失敗しない最大サイズって計算できる?
0376名前は開発中のものです。
02/11/03 20:10ID:???> >>364
> >早い
> 塗る面積が同じなら、送る頂点の個数の差でしょうね。
嘘を付くんじゃない。
おまえ、自分で検証してみたか?
0377名前は開発中のものです。
02/11/03 20:17ID:???>
> 同じ640x480を塗りつぶすなら、メモリコピーにかかる時間はどういう
> 方法をとっても同じになるから、違いといえばGPUに送る頂点の個数の
> 違いでしかない。
ソースデータ(テクスチャデータ)の大きさについては言及しないのか。
D3DTADDRESS_WRAPを使って32x32のテクスチャパターンを描いた場合には
どうなるのか、全く触れていないのは知らないからなのか。
0378名前は開発中のものです。
02/11/03 20:27ID:???について説明を欠いているのは極めて不適切ではないのか。という指摘だぞ。
0379名前は開発中のものです。
02/11/03 20:50ID:???それって最終的にGPU依存の話になっちゃわない?
OpenGLスレで、テクスチャ画像を正面から見るのと90度回転させるのとでは
塗られるピクセル数も参照されるピクセル数も同じなのに速度が明らかに違った、
なんて話があったな。ビデオチップは確かRadeProだったかな。
0380376-378
02/11/03 21:22ID:???その通りだね。
まぁ、372が「最近のビデオカード」ちう前提で話してたので
ここの部分の説明を端折ったら364が気の毒だろと。そうおもた。
0381名前は開発中のものです。
02/11/03 22:51ID:???0382名前は開発中のものです。
02/11/03 22:59ID:l1yRCGs21.このままD3Dの勉強→後バージョンのDXに移行
2.DirectDrawなんか無くなるから今すぐやめて新バージョンDX
3. etc...
0383名前は開発中のものです。
02/11/03 23:03ID:???DX9が出たら.NETから叩けるようになる。
知識はほぼそのまま引き継げるから安心して行け。
0384382
02/11/03 23:38ID:l1yRCGs2THX 漏れがんばるよ。
0385名前は開発中のものです。
02/11/03 23:51ID:???知識を示せ。共有しろ。育め。
以上、大統領からのお願いダス。
0386名前は開発中のものです。
02/11/04 07:04ID:???まずはお前からだ。さあ知識を示せ。
0387名前は開発中のものです。
02/11/04 09:26ID:???>なんか陰湿なカンジ
具体的にどれだ。後学のためにご教授願いたい。
0388名前は開発中のものです。
02/11/04 09:46ID:???0389名前は開発中のものです。
02/11/04 10:07ID:???IDirect3DDevice8::Reset( )
つまりコイツで
ビデオメモリの内容をクリア&フレームバッファの設定を更新
デバイスの再作成に限りなく近い内部処理だがこれでヨロシコ。
DirectX7以前とは勝手が違うのかもな。(よく覚えていない)
0390名前は開発中のものです。
02/11/04 10:11ID:???ゴメンこの説明は変。正解はヘルプを見て知って。
0391名前は開発中のものです。
02/11/04 10:44ID:???DX8で、リソースがdiscardされるかどうか、されたかどうかが明確に
なったとよね。DX7ではサーフェスはロストすることは分かったけど
頂点バッファは明示してなかったと思った。
0392名前は開発中のものです。
02/11/04 13:47ID:zHhCma6Yざけんなゴラァ
0393名前は開発中のものです。
02/11/04 13:58ID:???知能低すぎ
0394名前は開発中のものです。
02/11/04 14:27ID:zHhCma6Yはぁ、ただDisk上に置いてあるだけだと思ってんの?
レジストリにディレクトリ情報、数十箇所書いてあって買い換えなんて面倒なんだよ
なんか未インストールの項目実行すると、勝手にインストーラーが立ち上がる仕様になってるのね
サンプルのショートカットって*.exeに直接リンクされてないし
ディレクトリ選べなかったのは、win上書きインストールの汚れ環境のせいみたい
0395名前は開発中のものです。
02/11/04 14:45ID:???サンプルがスタートメニューのショートカットが入るだけがそんなに重要なのか?
知能低すぎ
0396名前は開発中のものです。
02/11/04 14:59ID:???ディレクトリ移動すると、サンプル実行できませんが何か?
キミは全部の実行ファイルと同じディレクトリにデーターコピーして実行するのか?
0397名前は開発中のものです。
02/11/04 15:27ID:???知能低すぎ
0398名前は開発中のものです。
02/11/04 15:32ID:???0399370
02/11/04 15:35ID:???遅くなりましたが、レスどうもです。
やっぱりウインドウサイズ変更だけでも、
デバイス再作成に近いことはやらなきゃいけないんですねぇ。
デバイスに関連するものも作り直しとなると結構面倒・・・。
0400名前は開発中のものです。
02/11/04 15:38ID:???レジストリ書き換えてればいいのに。
0401名前は開発中のものです。
02/11/04 15:39ID:???作り直さなくても、あらかじめ大きめのサイズのデバイスを
作っておけば良いだけだと思うが
0402名前は開発中のものです。
02/11/04 15:39ID:???自分の環境の悪さを棚に上げて批判するなんて愚の骨頂だね
0403名前は開発中のものです。
02/11/04 15:58ID:???ストレス溜めた状態で2ch見るのは止そうぜ。な。
0404370
02/11/04 16:14ID:???それって常に大きめのサイズでレンダリングしてしまうわけですよねー。
ウインドウが小さい時はそのサイズにあった速度にしたいし、うーむ。
0405名前は開発中のものです。
02/11/04 16:37ID:???SetViewportとPresentで調整すれば良いだけ
0406370
02/11/04 17:02ID:???当分はその方向で逝こうと思います。
でもディスプレイモードが変更された時ならまだしも
CTRL+ALT+DELELE押された時もデバイスが死んじゃうんじゃ、
どっちにしろデバイス作り直す処理は必要かな。
OpenGL見たいに勝手にやってくれると有難いんだが、
DirectX9もここらへんは変わらないのかなぁ。
0407名前は開発中のものです。
02/11/04 17:04ID:???0408名前は開発中のものです。
02/11/04 18:03ID:???ほら、もうちょっと言葉を足して書こうぜ。
誤解されて変なツッコミが入っちゃうぞ。
0409名前は開発中のものです。
02/11/04 18:03ID:???0410名前は開発中のものです。
02/11/04 21:02ID:???サンプルプログラムの、d3dapp.cppの中にある、メッセージプロシージャは見た?
その中にあるサイズ変更関連のメッセージ(特にWM_SIZING)あたりを読むことを
オススメする。
デバイスの作り直しは、よほど特殊な要求(HAL→REFの切り替えとか)が無い限り
必要ないと思う。ヘルプのResetメソッドについても読もう。
0411DirectX9!!
02/11/04 21:07ID:???0412名前は開発中のものです。
02/11/04 21:12ID:???0413410
02/11/04 21:52ID:???0414370
02/11/05 00:00ID:???デバイスそのものを作り直さないまでも、
RenderState、VertexBuffer、テクスチャ、メッシュ全て設定し直さなきゃいけないなら、
デバイス作り直すのとほとんど変わらないなぁというお話でして。
0415389
02/11/05 00:29ID:???>RenderState、VertexBuffer、テクスチャ、メッシュ全て設定し直さなきゃいけないなら
んなこたないよーヘルプ嫁ヘルプ。D3DPOOL要参照。
0416370
02/11/05 01:15ID:???RenderState以外はMANAGEDにしておけば手間が省けるってことですね。
メッシュは物によって調べる必要があるみたいですが。
話はそれますがヘルプに
CreateVertexBufferのUsageに"次の 1 つ以上のフラグの組み合わせ"
って書いてあるのにサンプル見ると0指定してあるんだけど
どういう意味でしゅおうか??
0417名前は開発中のものです。
02/11/05 01:22ID:???0420389
02/11/05 01:36ID:???>その部分は真似せんほうがええと思うよ。
嘘ですゴメン。
0421370
02/11/05 01:38ID:???D3DUSAGE_DYNAMICに
"D3DUSAGE_DYNAMIC を指定しないと、頂点バッファは静的に作成される。"
って書いてあるんでこれが0なのかなと都合のいい解釈をしつつ寝ます。
0422389
02/11/05 01:44ID:???↑これ日本語ヘルプの誤訳。
「これらのフラグは組み合わせて使えるよ」というのが正解。
何も指定しなければ静的に確保される。
俺の知ってる範囲では、ハードウェアT&Lを搭載してるカードでは
ビデオメモリ上に確保される。ロック&書き込みが重いので静的な
データ以外には使わないほうがええ。
0423名前は開発中のものです。
02/11/05 05:14ID:???原文は「A combination of one or more of the following flags」だから、
「次の 1 つ以上のフラグの組み合わせ」という翻訳は間違いではない。
日本語ヘルプに誤訳が非常に多いのは紛れもない事実だけど、
原文の説明自体が不適切・不十分であることも少なくないのだよ。
0424410
02/11/05 08:07ID:???>メッシュはものによって調べる必要があるみたいですが
既にヘルプを呼んでいるかもしれんが、メッシュを作る時にオプションに
D3DXMESH_MANAGEDを設定すればいいだけ。
>>415
フォロー、サンクス。っていうか肝心なことを書き忘れてたんだな、俺(笑)。
0426名前は開発中のものです。
02/11/05 20:23ID:???テクスチャはった方が描画が速いんだけど、そういうグラカって結構あるもんですか?
他のマシンがないので調べられません。
0427名前は開発中のものです。
02/11/06 01:21ID:NGPM1Ygrキー入力が取れません。
自分のプログラムが悪いのかと思ったのですが、そこらへんに転がってる
DirectX8を使用したプログラム5個ほどでも同様の現象がありました。
これって、自分の環境が駄目なんですか?
それとも、Microsoftのバグ?
0428名前は開発中のものです。
02/11/06 01:27ID:???ハードウェアの仕様
0429名前は開発中のものです。
02/11/06 05:59ID:???CTRLやALTキーをデフォルトにするのも、
ほかのキーよりはこれの確率が低いから。
0430名前は開発中のものです。
02/11/06 06:08ID:???D3DXSpriteは内部でポリゴンにテクスチャ張って描画してます。
使うメリットがないなら、自前のスプライト描画クラスとか
作ったほうが良いものができるかもしれない。
0431名前は開発中のものです。
02/11/06 09:03ID:???キーボードが悪い。安物はそうなる。
USBキーボードはなりにくいのでお勧め。
0432名前は開発中のものです。
02/11/06 10:11ID:???PS2の伝達経路の数が足りず、安物だろうが高級品だろうが、
バッティングする位置が変わるだけ
インタフェイスの問題
USBはなりにくいのではなくならない
0433名前は開発中のものです。
02/11/06 11:24ID:???0434名前は開発中のものです。
02/11/06 11:53ID:F7G6Kvvhキーボードのようなキー数の多いデバイスはキーマトリクスを
作ってスキャンしている(大昔から変わらない)ので、
なんともトンチンカンだよ。
0435名前は開発中のものです。
02/11/06 12:07ID:???うちのUSBキーボードは同時押しできない組み合わせがある。
うちのはクソということでよいか?
0436名前は開発中のものです。
02/11/06 12:44ID:???ところで427ってノートPCでも使ってる?
そこまで同時押しできないキーボードは、俺が今まで使ってきたマシン
ではThinkPadしかなかったけど。
0437名前は開発中のものです。
02/11/06 14:24ID:???ひっそりと大人気のこのキーボードも何個同時押ししても受け付けるYO!
東プレ Realforce 106 キーボード Part1
http://pc3.2ch.net/test/read.cgi/hard/1033925111/
いや、買っちゃったもんで嬉しくて。
0438名前は開発中のものです。
02/11/06 14:40ID:???,、、 ドッカン
━━━━━) )= ☆ゴガギーン
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!>>432出てこいゴルァ!
r ⌒ ̄ ノ __. | (´Д` ) \
| イ |__| | / \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | .| | | /\\
| | | .| へ//| | | |
| | | (\/,へ \| | | |
| ∧ | | ◎\/ \ / ( )
| | | |.| .| | |
/ / / / | .| | |
/ / / /.| |三三三| | |. |
/ / / /...| | ||
0439名前は開発中のものです。
02/11/06 14:52ID:???0440名前は開発中のものです。
02/11/06 15:05ID:???0441DirectX9!!
02/11/06 16:40ID:???0442名前は開発中のものです。
02/11/06 18:17ID:HmH3fN4Eハヨコイ
0443名前は開発中のものです。
02/11/06 20:06ID:???http://www.microsoft.com/downloads/release.asp?ReleaseID=43347&area=search&ordinal=4
正式版のリリースは年明けとの電波をキャッチ。
0444名前は開発中のものです。
02/11/06 20:07ID:???0445名前は開発中のものです。
02/11/06 20:14ID:F7G6Kvvh0446名前は開発中のものです。
02/11/06 20:28ID:???0447名前は開発中のものです。
02/11/07 00:51ID:???427ですが、ノートVAIO使っております。
家で使うときはUSB使おうかなぁ。
ということで、プログラム自体は変更することないんだね。ありがとう。
0448名前は開発中のものです。
02/11/07 10:15ID:???変更する点があるとするならば、キーコンフィグをつける点。
0449名前は開発中のものです。
02/11/07 17:05ID:2yv67rKD↑このdevを別のファイルで扱おうと思ったらどうすればいい?
別のファイルで
LPDIRECT3DDVICE8 dev2;
dev2=dev;
てやったら2重定義でゴラされた。
0450名前は開発中のものです。
02/11/07 17:11ID:???Cの勉強をしなおせ
0451名前は開発中のものです。
02/11/07 17:12ID:???0452449
02/11/07 17:35ID:2yv67rKDもう一つ、聞きたいのだがいいかい?
LPDIRECT3D8 d3d=NULL,d3d2=NULL;
2個用意してd3dの方でDirect3dCreate8をする。
その後、
d3d2=d3d;
とする。こうしたら以後の処理はd3dでもd3d2でもどちらを使っても
良いのかだよな?中身をコピーする、すなわちIDirect3Dインタフェースへの
ポインタがd3d2へコピーされるんだからなw
その後、オブジェクトを開放する時はどちらか一方だけリリースを呼び出せばいいんだよな?
ん?
0453449
02/11/07 17:40ID:2yv67rKDよいのかだよな? ×
よいのだな? ○
鬱だ・・・逝こう
0454まっつん
02/11/07 17:48ID:???0455名前は開発中のものです。
02/11/07 17:51ID:???0456名前は開発中のものです。
02/11/07 17:51ID:???はいはい、正解、あってるからさっさと仕事に戻れよ!
休憩時間はおわったんだからさ・・・・・・・・
0457名前は開発中のものです。
02/11/07 17:52ID:???ム版に逝けよ。DirectX以前の問題だ。
0458名前は開発中のものです。
02/11/07 17:54ID:???0459449
02/11/07 17:54ID:2yv67rKD0460名前は開発中のものです。
02/11/07 17:58ID:???人生おしまいだね
0461名前は開発中のものです。
02/11/07 19:17ID:???次はRelease Candidateみたい。
うまく行けば年内に来るかな?
■ このスレッドは過去ログ倉庫に格納されています