鬱だ氏のう 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)
コピペスマソ
0330名前は開発中のものです。
02/11/02 20:29ID:???0331名前は開発中のものです。
02/11/02 21:16ID:???0332名前は開発中のものです。
02/11/02 22:16ID:???そんなことができるようになるのって何年先の話だろう?
インターネットにつなげればPCでもケータイでも電子レンジでも
3Dゲームができるのかな?
0333名前は開発中のものです。
02/11/02 22:30ID:???意味が分かっていない馬鹿発見!
0334名前は開発中のものです。
02/11/02 22:46ID:???バカでいいから、どこらへんの意味を理解していないか教えてください
サーバーサイドでレンダリングするんでしょ?違うの?
0335名前は開発中のものです。
02/11/02 23:01ID:???携帯レベルでも何の問題も無いのに何を勘違いしているんだ?
頭が固すぎ
0336名前は開発中のものです。
02/11/02 23:31ID:???0337名前は開発中のものです。
02/11/02 23:37ID:???いや、だから、ダム端末(とその類似品)で可能なのはわかるけどさ、
サーバーが追いつかないってことだよ
そんなに能力の高いサーバーに帯域が現時点でございますか?
(現在は数値データの処理だけでラグだのさばダウンだの問題があるじゃん)
まあ、並列処理の出番だとは思うけど、現時点で何台のサーバーが必要なのか
別釣るわけじゃないけど、私って本当に頭固いの?
0338名前は開発中のものです。
02/11/02 23:48ID:???硬い、とてつもなく硬い
>サーバーが追いつかないってことだよ
誰も何も言っていないに勝手に時間当たりのヒット数を途方も無い数字で妄想しているだろう
もしくはソースデータにとんでもないポリゴン数を勝手に妄想
レンダリングしてその結果を返す、それだけしか話が出ていないんだぞ
>まあ、並列処理の出番だとは思うけど、現時点で何台のサーバーが必要なのか
妄想もそこまで逝くと病気
0339名前は開発中のものです。
02/11/02 23:52ID:???0340名前は開発中のものです。
02/11/03 00:05ID:???現時点でそういうことをやっているシステムが存在するのでしょうか?
存在するのなら教えてください
「レンダリングしてその結果を返す」それだけでも十分に重いと思います
実用の範囲内で動作させるのはどう考えても不可能では?
>勝手に時間当たりのヒット数を途方も無い数字で妄想しているだろう
一ユーザーあたり一秒間に20回は送信させないとゲームにならないかと
え?20FPSじゃなくて静止画ってことですか?
だったら何で「DirectX」なの?
>もしくはソースデータにとんでもないポリゴン数を勝手に妄想
ポリゴン数よりもむしろメモリ帯域が問題では?
こういうことをやろうとしたとき、一番のネックでしょ
ビデオメモリ→システムメモリは当然のことながら
システムメモリ自体が遅すぎる
関係ないけど、妄想って言葉好きですね
妄想って根拠の無い推論のことなんですが・・・
0341名前は開発中のものです。
02/11/03 00:30ID:???>>ネットワークレンダリング
そういう商売やってるとこもありますね
リアルタイムじゃないけど
ちなみに帯域で言うならビデオチャットやライブカメラを見る限り大丈夫では?
0342名前は開発中のものです。
02/11/03 00:52ID:???時代に取り残される人の典型ですなこりゃ
> え?20FPSじゃなくて静止画ってことですか?
> だったら何で「DirectX」なの
OpenGLだったらこのシトはナットクしてたんだろうか・・・
0343名前は開発中のものです。
02/11/03 01:01ID:???ビデオチャットやライブカメラはP2Pなんじゃ・・・
たとえサーバークライアントだったとしても少人数だし
ネットワークレンダリング(こういう名前でしたっけ?)は知ってるけど、
リアルタイムなんて現時点では不可能なのでは
>現時点では...って
>時代に取り残される人の典型ですなこりゃ
商売は時代に取り残されても失敗しますが、
時代の先を見すぎても失敗します
「現時点では不可能」これの何が悪いのでしょう・・・
論理的に説明してほしいです
>OpenGLだったらこのシトはナットクしてたんだろうか・・・
言葉尻を捕らえないで・・・でもまあ納得したでしょうね
だってOpenGLはもともとリアルタイム性を考慮していなかったから
みなさん、ただ私を非難するんじゃなくて
反論してください、でないと何も得るものが無いです
非難と反論の違いはわかりますよね?
0344名前は開発中のものです。
02/11/03 01:32ID:???ちょっと計算すれば解ることまで説明せにゃならんのかよ
話の前提が違いすぎる
0345名前は開発中のものです。
02/11/03 01:46ID:???可能性を否定したいだけ?
それとも可能性のある方法を探りたい?
0347343
02/11/03 02:22ID:???私は可能性のある方法を探りたい
>>338
第一、サーバーにレンダリングしてもらうなんていうのは
光の速度が「遅すぎる」せいで明らかに現実的ではないはず
(どうせ言っても理解してくれなさそうだから言わなかったけどね)
どんなにPCが進化しても(今のままの通信・コンピュータの構成では)
光の速度のせいで空間的な制約を受ける
妄想妄想と非難をする前に情報と物理について学んでほしいものだ
硬い硬いと言うけどね、この宇宙に住んでいる限り
宇宙の法則に縛られて生きなきゃいかんのだよ
はっきりいって、光の速度とかノイズとか回路の応答速度とかの問題って絶望的だよ?
絶望的な中で何とかしようとしてるのに、それを頭が固いなどと言われては・・・
0348名前は開発中のものです。
02/11/03 03:07ID:???ターンアラウンドタイムが長すぎると一文で済むんだから
わざわざバカにしたような長文返さなくていい
それからP2Pかどうかはこの場合関係無い
ちなみにライブカメラはCS、ビデオチャットはP2P(商用エロビデオチャットはCS)が主流
0349名前は開発中のものです。
02/11/03 04:24ID:3BaP/5EM画像A,B,Cを合成しながら描画したいのです。
画像Aは背景で、B,Cはオブジェクトです。
このとき、B+Cを描画したいのですが、加法合成で描画をすると、
A+B+Cとなってしまいます。
かといって最初にAを描画しないわけにもいかず、どうしたらいいか分かりません。
どうすればいいのでしょうか。
0350名前は開発中のものです。
02/11/03 05:31ID:???「インターネットの仕組み」って、
何か解決法があるかのような言葉に聞こえますけど。
0351名前は開発中のものです。
02/11/03 06:04ID:???解決できない原因がそこにある、とも読めるな。
0352351
02/11/03 06:12ID:???0353名前は開発中のものです。
02/11/03 06:40ID:???0354名前は開発中のものです。
02/11/03 07:36ID:???(1)テクスチャにBとCを描画(加算合成)
↓
(2)フレームバッファにAを描画
↓
(3)フレームバッファに(1)のテクスチャを描画
0355354
02/11/03 07:46ID:???○ バックバッファ
0356330
02/11/03 09:23ID:???適当にレスったらすごいことになってますた。おはようございます。
以下妄想
クライアントはDirectPlayにDirectInputをアタッチ
あとはストリームビデオ再生。
全ゲーム共通クライアントのできあがり。こんなかんじです。
0357名前は開発中のものです。
02/11/03 14:09ID:???その前に
君は>>321と同一人物でないということを
先に断っておいたほうがいいんじゃないのか。
0358343
02/11/03 14:59ID:???あ、すみません、二つの視点からの反論が交錯しているのでわからなかったかも
・サーバーの処理能力が足りない
・ターンアラウンドタイム(つまりはレスポンス)が長い
ということで、P2Pは上方の意見
光速の限界は下方の意見です
ところでインターネットの仕組みが原因ということならば
待時系でなく即時系なら(サーバーの能力如何で)可能性はあると言うことですか?
0359名前は開発中のものです。
02/11/03 15:24ID:J+IbtFrh0360名前は開発中のものです。
02/11/03 16:14ID:???すふぇあマッピングってバーテックスシェーダー使って自分で組むしかないのかな?
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は内部でポリゴンにテクスチャ張って描画してます。
使うメリットがないなら、自前のスプライト描画クラスとか
作ったほうが良いものができるかもしれない。
■ このスレッドは過去ログ倉庫に格納されています