【C++】 DirectX初心者質問スレ Part31 【C】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/09/30(木) 21:45:21これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
前スレ
【C++】 DirectX初心者質問スレ Part30 【C】
http://hibari.2ch.net/test/read.cgi/tech/1278214135/
0412デフォルトの名無しさん
2010/10/13(水) 19:02:26いや、SetVectorなどの関数から描画に必要なデータをすべて渡している状態(でも頂点バッファにはアクセスせず)
DrawPrimitiveUPで描画するのとどっちが速いの?的な話
この2つとも1フレ当たりにグラボに渡すデータ量はほとんど変わらないよね?
大して変わらないことしてるのか、大きな差があるのか?ってとこ
0413デフォルトの名無しさん
2010/10/13(水) 19:17:11頂点バッファは一度のDrawprimitiveで数千ポリを同時に描画するときに真価を発揮する
そもそも1矩形を1回のDrawprimitiveで描くような仕様ならUP系とコスト的には大差ない
UP系は使ってもいいけど使うときは
1000〜2000ポリくらいをバッファに溜め込んで一度のDrawprimitiveUPで描画したほうが効率は良い
それ以上になるとシステムメモリからの頂点情報の転送がボトルネックになって
頂点バッファを使った時ほどのパフォーマンスが出せなくなる
0414デフォルトの名無しさん
2010/10/13(水) 19:41:01DrawPrimitiveで数千ポリを一気に描画する方法があるんですか!?
メッシュとかの話じゃなくて?
0415デフォルトの名無しさん
2010/10/13(水) 19:55:54まちがえました。。。
0416デフォルトの名無しさん
2010/10/13(水) 20:19:160417デフォルトの名無しさん
2010/10/13(水) 20:31:160418デフォルトの名無しさん
2010/10/13(水) 21:02:080419デフォルトの名無しさん
2010/10/13(水) 21:05:120420デフォルトの名無しさん
2010/10/13(水) 21:21:24そもそもバカというのは基準が決まっていないじゃないですか
何が出来なかったらバカなんですか?それじゃあまだ何も出来ない幼児赤子はバカなんですか?
0421デフォルトの名無しさん
2010/10/13(水) 21:21:43お前みたいなクズこそ死ね
0422デフォルトの名無しさん
2010/10/13(水) 21:29:220423デフォルトの名無しさん
2010/10/13(水) 21:33:370424デフォルトの名無しさん
2010/10/13(水) 21:33:450425デフォルトの名無しさん
2010/10/13(水) 21:46:28メッシュは頂点データのかたまり。
これぐらしかわかりません。ごめんなさい。
0426デフォルトの名無しさん
2010/10/13(水) 21:47:36まずはポリゴンがなんなのかを調べるところから始めろ。
0427デフォルトの名無しさん
2010/10/13(水) 21:54:26独学っすか?学校の授業とかですか?
0428デフォルトの名無しさん
2010/10/13(水) 21:56:490429デフォルトの名無しさん
2010/10/13(水) 22:17:54そんなことだからバカとか言われるんじゃね
0430デフォルトの名無しさん
2010/10/13(水) 22:34:38仕方ないよ
0431デフォルトの名無しさん
2010/10/13(水) 22:40:213Dが全く分からなくて手を着けられない。
シェーダの仕組みもさっぱり分からない。
次に進む為のお勧めの書籍はありませんか?
0432デフォルトの名無しさん
2010/10/13(水) 22:41:370433デフォルトの名無しさん
2010/10/13(水) 22:48:410434431
2010/10/13(水) 23:13:580435デフォルトの名無しさん
2010/10/13(水) 23:19:22入門書買って1からやりなおせ。
0436デフォルトの名無しさん
2010/10/14(木) 00:39:09俺も分からないから知りたいんだけど何を信じていいのか分からん。
0437デフォルトの名無しさん
2010/10/14(木) 00:43:440438デフォルトの名無しさん
2010/10/14(木) 00:44:14お願いですので、やさしくしてくださいよ。
0439デフォルトの名無しさん
2010/10/14(木) 00:45:46バージョンはvs,psとも3_0でお願いします。
0440デフォルトの名無しさん
2010/10/14(木) 01:02:47前スレにあったぞ
0441デフォルトの名無しさん
2010/10/14(木) 01:18:17ドキュメントとか全然読んでないのか?
0442デフォルトの名無しさん
2010/10/14(木) 04:12:39初心者以前の問題
0443デフォルトの名無しさん
2010/10/14(木) 07:47:46結果から言うとだいたいヘルプに書いてあるのと同じ感じ
DrawIndexedPrimitive、DrawIndexedPrimitiveUPで
それぞれ20000ポリを1〜10000回に分けて描画
DrawIndexedPrimitiveの方は
静的頂点バッファ(Lock無し)
動的頂点バッファ(描画と同じ回数だけLock)の両方計測
静的頂点バッファをロックするのはお話にならないのでやってません
以下結果
20000ポリ(40000頂点)×1回
静的VB:890fps
動的VB:790fps
DrawUP:710fps
2000ポリ(4000頂点)×10回
静的VB:880fps
動的VB:780fps
DrawUP:700fps
1000ポリ(2000頂点)×20回
静的VB:870fps
動的VB:760fps
DrawUP:690fps
このあたりはほとんど変化なし
やはり1000〜2000ポリを1回で描画するのが効率がよさげ
0444デフォルトの名無しさん
2010/10/14(木) 07:51:56200ポリ(400頂点)×100回
静的VB:830fps
動的VB:680fps
DrawUP:650fps
100ポリ(200頂点)×200回
静的VB:760fps
動的VB:590fps
DrawUP:590fps
20ポリ(40頂点)×1000回
静的VB:470fps
動的VB:300fps
DrawUP:340fps
4ポリ(8頂点)×5000回
静的VB:165fps
動的VB: 85fps
DrawUP:120fps
2ポリ(4頂点)×10000回
静的VB: 90fps
動的VB: 45fps
DrawUP: 65fps
動的頂点バッファを200回LockしたあたりでUP系と並び、それ以上で逆転
1000回ほど描画命令を発行すると最高速の半分以下までパフォーマンスが落ちる
それ以上はお察し
0445デフォルトの名無しさん
2010/10/14(木) 08:00:03計測に使ったチップはGeForce 9600M GT(モバイル用チップ)なので
ちゃんとしたビデオカードでやればもうちょい差は開くかも?
暇な人は試して見てね
計測に使用したソース
ttp://www5b.biglobe.ne.jp/~mya_a/dx/SimpleSample2.zip
0446デフォルトの名無しさん
2010/10/14(木) 08:01:15Draw[Indexed]Primitiveじゃねえかよ。
ありがとう。
0447デフォルトの名無しさん
2010/10/14(木) 08:18:43何をどう勘違いしたのか分からんが
頂点数が増えるだけでDrawPrimitiveでも当然出来るぞ
0448デフォルトの名無しさん
2010/10/14(木) 08:33:23見捨てないでください。お願いします。
0449デフォルトの名無しさん
2010/10/14(木) 08:58:27DrawPrimitiveを連投してポリゴンをたくさん描画するより、
一回のDrawPrimitiveでたくさんのポリゴンを描画したほうが断然速いんですね。
今まで2ポリをオブジェクトの数だけDrawPrimitiveを連投してたわ。
勉強になった。ありがとう。
0450デフォルトの名無しさん
2010/10/14(木) 09:27:42API呼び出し回数は少ない方が速い。
おっぱいは小さく方が美しい。
基本です。
0451デフォルトの名無しさん
2010/10/14(木) 09:41:28>>445をプリプロセッサで
DrawPrimitiveとDrawIndexPrimitiveを切り替えられるようにしたものと差し替えた
後、補足して置くとこの計測値は低CPU負荷の状態で
D3DPRESENT_INTERVAL_IMMEDIATEでぶん回してるだけなので
一見、描画命令1回と10000回の間に10倍のパフォーマンスの違いが有るように見えるけど
例えば当たり判定やAI処理などでCPUに高負荷をかけると
1回の方はその分がガッツリFPSに影響が出るのに対し
10000回の方はGPUのブロック時間の間にCPUが仕事できるのであまりFPSに影響は出ません
つまり、パフォーマンスは差は縮まります
上の方で描画命令が多い場合はCPUで計算させてもかわらねーよ、と言われてるのはこのせいです
それでもなるべくまとめて描画した方が圧倒的に速いですが
その辺の詳しい理屈はこのあたりを読むとわかるかも?
ttp://www.atmarkit.co.jp/fdotnet/directxworld/directxworld01/directxworld01_03.html
0452デフォルトの名無しさん
2010/10/14(木) 09:47:110453デフォルトの名無しさん
2010/10/14(木) 09:49:09心から感謝いたします。
さっき生意気なこといってすみませんでした。
本気で勉強いたします。
0454デフォルトの名無しさん
2010/10/14(木) 17:04:110455デフォルトの名無しさん
2010/10/14(木) 17:05:510456デフォルトの名無しさん
2010/10/14(木) 17:27:44>ステート変更をできるだけ減らし、残ったステート変更をグループ化する。
とMSDNにはある
0457デフォルトの名無しさん
2010/10/14(木) 17:53:55変なことやったシェーダとUPとの比較の話だったんでしょ?
0458デフォルトの名無しさん
2010/10/14(木) 17:55:15お前はちゃんと勉強した方が良い
0459デフォルトの名無しさん
2010/10/14(木) 18:10:36お前は日本語の文章を読む練習からしろ
0460デフォルトの名無しさん
2010/10/14(木) 18:18:08じゃあ、変なことやったシェーダーとUPで実際に動かして比較して見ろよ
絶対にお前が思った通りにはならないから
何を、もって違いがないって言ってるわけ?
0461デフォルトの名無しさん
2010/10/14(木) 18:28:240462デフォルトの名無しさん
2010/10/14(木) 19:10:05そんなこといってねぇだろ
日本語大丈夫か?
いきなり誰も聞いてないような比較データが貼られるから
話わかってるの?って言っただけ
今の話題と違うデータ出してない?
ってことな
0463デフォルトの名無しさん
2010/10/14(木) 19:12:57データ出してくれる奴のほうがよっぽどマシ
0464デフォルトの名無しさん
2010/10/14(木) 19:15:02お前さんがまるで見当違いの問題提起してることに気づけよ
0465デフォルトの名無しさん
2010/10/14(木) 19:17:590466デフォルトの名無しさん
2010/10/14(木) 19:32:04皆さんはDIRECTXをどうやって勉強したんですか?
独学ですか?
ある壁を境になかなか進まないのです。
それはシェーダです。
おそらく座標変換がちゃんとわかってないのです。
皆さんの学習法をお教えください。
真剣ですので、バカとか死ねとか言わないでください。
0467デフォルトの名無しさん
2010/10/14(木) 19:34:45とりあえず死ね。
入門本買え。
0468デフォルトの名無しさん
2010/10/14(木) 19:37:12本気で呪っときます。
0469デフォルトの名無しさん
2010/10/14(木) 19:44:39は?
誰もそんな話してなかったじゃん
お前馬鹿?
もう一度言うよ
誰 も そ ん な 話 し て な い よ ね ?
もう一度言うよ
誰 も そ ん な 話 し て な い よ ね ?
0470デフォルトの名無しさん
2010/10/14(木) 19:54:490471デフォルトの名無しさん
2010/10/14(木) 19:58:28まったく関係ないデータでも?
はぁ?プログラマ辞めちまえよクズ
0472デフォルトの名無しさん
2010/10/14(木) 20:00:04そうやって誤魔化してるけど
君、自分がまったく関係ない話をしてること理解できてないでしょ?
新卒によくいるんだ君みたいなの
会話にちょろっと出てきた単語だけつまんで発言する人w
0473デフォルトの名無しさん
2010/10/14(木) 20:04:490474デフォルトの名無しさん
2010/10/14(木) 20:06:100475デフォルトの名無しさん
2010/10/14(木) 20:07:44>>466おまえ>>431だろ、入門書買えっつってるだろカス
0476デフォルトの名無しさん
2010/10/14(木) 20:08:11毎回人をけなすようなアドバイスしかできないカスがいるからな。
0477デフォルトの名無しさん
2010/10/14(木) 20:08:460478デフォルトの名無しさん
2010/10/14(木) 20:10:08毎日どんな時間帯にもいるし、おそらくニートだろうねw
0479デフォルトの名無しさん
2010/10/14(木) 20:15:470480デフォルトの名無しさん
2010/10/14(木) 20:18:29入門書は買えたのかい?
0481デフォルトの名無しさん
2010/10/14(木) 20:24:410482デフォルトの名無しさん
2010/10/14(木) 20:28:33ただ漠然とどうしたら良い?とか聞かれても困るな
シェーダーが分からないにしても
どの段階で分からないのかも伝わってこないし
とりあえず手を動かして具体的に躓いたら質問に来ればいいよ
とりあえずサンプルのチュートリアルをシェーダーで表示するところから始めたら?
0483デフォルトの名無しさん
2010/10/14(木) 20:30:300484デフォルトの名無しさん
2010/10/14(木) 20:32:470485デフォルトの名無しさん
2010/10/14(木) 20:34:29>おそらく座標変換がちゃんとわかってないのです。
答えは出ているじゃないか。
0486デフォルトの名無しさん
2010/10/14(木) 20:37:410487デフォルトの名無しさん
2010/10/14(木) 20:41:39本当にありがとうございます。
単純に画像を表示するまでならできます。
その後の応用が効かない感じです。
エフェクトファイルもパスをわけて、新しい関数定義すべきなのか、
新たにファイル作るべきなのかとか、その辺もです。
>>483
こんなツールあったんですね・・・!これかなり良さそうです!
本当にありがとうございます。
0488487
2010/10/14(木) 20:42:52どうか見捨てないで下さい。お願いします。
0489デフォルトの名無しさん
2010/10/14(木) 21:06:45ググればいいと思う
0490デフォルトの名無しさん
2010/10/14(木) 21:15:020491デフォルトの名無しさん
2010/10/14(木) 21:22:060492デフォルトの名無しさん
2010/10/14(木) 21:26:250493デフォルトの名無しさん
2010/10/14(木) 21:49:24それだけで質問内容が的を射るかどうかが決まる。
0494デフォルトの名無しさん
2010/10/14(木) 22:36:31ボケとかカスとか教えるの下手糞なサイトばっかり当たる
基本、物理とか数学まわりってはじめからよく知ってないといいサイト見つけるの難しいな
0495デフォルトの名無しさん
2010/10/14(木) 22:51:51DirextXSDKドキュメントだろ。
とりあえずD3D9の日本語版ドキュメント全ページ嫁
0496デフォルトの名無しさん
2010/10/15(金) 11:55:360497デフォルトの名無しさん
2010/10/15(金) 15:21:090498デフォルトの名無しさん
2010/10/15(金) 15:44:11ある程度まともなゲームを作りたいなら多少は求められるがそれならミドルウェアでも変わらない
それに数学が必要といっても公式覚えたり難しい方程式が解ける必要はない
計算はプログラムがやってくれるんだから
要は自分が求めたいことを何を使えば求められるか、ということを知ってれば良いだけ
例えば「2本のベクトルの内積や外積が一体何になるのか」ということさえ知ってれば
内積・外積を求める計算自体は別に知らんでもいい事だ
0499デフォルトの名無しさん
2010/10/15(金) 15:51:03だから線形代数はちゃんとやろう
0500デフォルトの名無しさん
2010/10/15(金) 15:51:540501デフォルトの名無しさん
2010/10/15(金) 15:58:23まぁ、だいたい線形代数の範囲内なんだが。
ライブラリ作成に命をかけてる人たちはその限りではないが
0502デフォルトの名無しさん
2010/10/15(金) 16:02:080503デフォルトの名無しさん
2010/10/15(金) 17:08:39知らなければならない知識はそれほどない
難しく感じるとしたら単に慣れが足りないのだろう
0504デフォルトの名無しさん
2010/10/15(金) 17:12:00普通にゲーム作れるようになりましたか?
0505デフォルトの名無しさん
2010/10/15(金) 17:13:040506デフォルトの名無しさん
2010/10/15(金) 17:21:250507デフォルトの名無しさん
2010/10/15(金) 17:36:14勉強と思わなくなるのにどれぐらいかかりましたか?
0508デフォルトの名無しさん
2010/10/15(金) 17:38:3610年
0509デフォルトの名無しさん
2010/10/15(金) 17:40:24しかしDirectXを理解してきたなぁと実感できるようになるまでには5年かかった
0510デフォルトの名無しさん
2010/10/15(金) 17:41:26数ヶ月でマスターなんて無理なんですかね・・・・
0511デフォルトの名無しさん
2010/10/15(金) 17:42:57俺みたいな馬鹿だと20年掛かるかもしれない
■ このスレッドは過去ログ倉庫に格納されています