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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 22:55:11 ]
※回答する人も、質問する人も必ず読んでください

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

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

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

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

175 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 09:40:20 ]
SetTexture()のコストなんてどうでもいいが、
それに伴うDrawPrimitive()のコストは洒落にならない。

未だにどのエンジンも如何にしてDrawPrimitive()を減らすかに
躍起になっている理由くらい分かるだろ。

176 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 09:45:16 ]
>>175
俺もうそんなの考えてねぇよ
必要なら必要な分だけ何回でもレンダリングしてる
汎用性とシェーダの兼ね合い考えたら
もう汎用性をとるしかない

何度でもDrawPrimitiveしまくる

177 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 09:51:39 ]
そもそもSetTextureってなにかメモリ的な動きあるのか?
これフラグ立てるだけだべ
DrawPrimitiveしたときにすべてを実行してるんじゃねぇのか?

178 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:01:06 ]
DrawPrimitiveの前にSetTextureやりまくってみりゃわかる
ついでにテクスチャサイズでの違いの検証も

よ ろ し く

179 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:08:32 ]
>>176
せめてジオメトリインスタンス使えよ

180 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:12:41 ]
>>177
>DrawPrimitiveしたときにすべてを実行してるんじゃねぇのか?

つまりSetTextureを呼ぶと、DrawPrimitiveに時間がかかるわけだろ。

181 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:15:46 ]
富豪的処理

182 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 10:37:30 ]
DrawSubsetというかDrawPrimitiveは非常に重い処理。 流石に1フレームに1000回はかなり無茶なレベルだぞ。 まったく同じモデルを複数表示してるならジオメトリ インスタンスを使え。

183 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 11:22:49 ]
ジオメトリ インスタンス
って何ですか?



184 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 11:31:37 ]
やふれ

185 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 12:05:20 ]
たぶん、DirectX10は飛ばされて
11がメジャーバージョンになるんじゃないかと踏んでいるんだが

186 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 12:52:49 ]
偶数バージョンが空気になるのは毎度のこと

187 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 13:12:06 ]
7⇒8でさっぱり変わって9で完成形を見たように
9⇒10でさっぱり変わってるから11で完成形を見るんだろう。

8でシェーダーが対応されて9で完成されたのと一緒で
10でGPGPUが使えるようになったから11でより楽にサポート的な。

188 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 13:29:58 ]
>>184

77 :デフォルトの名無しさん:2008/07/29(火) 09:32:33
>>73
DrawSubsetというかDrawPrimitiveは非常に重い処理。
流石に1フレームに1000回はかなり無茶なレベルだぞ。

まったく同じモデルを複数表示してるならジオメトリインスタンスを使え。

同じの見つかったよw

189 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 13:30:15 ]
結局のところ
テクスチャ取り替えたり変換行列変える度に
DrawPrimitiveガ必要になるわけだろ。
いちいち回数減らす小細工しても変わらないよ。

DX10は知らんが。

190 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 13:36:37 ]
そう思うなら好きにすればいいさ

191 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 13:38:24 ]
その小細工の為に大層なエンジンを組むんだろ・・・
骨の行列をfloat4のテクスチャに格納して切り替えを減らすのとか
ジオメトリインスタンスの機能があるのは何のためなのかと。

GPU Gems3を読んで来い。

192 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 15:06:08 ]
っ フレームごとの消去をやめて変化しないものは描きなおさない

193 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 15:08:33 ]
なんか知らんがステートブロック使うだろ



194 名前:デフォルトの名無しさん [2008/11/02(日) 15:19:33 ]
遅い環境に合わせてもしょぼいゲームが出来るだけ

195 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 16:30:01 ]
くだらない高速化に目を向ける前に、完成直前まで持っていいって遅いと感じてから直せ。
余計なところに気を回している暇があったら、とっとと完成させる方に目を向けろ。
どうせ描画の一部を直すより、システム全体のロジックを見直した方が速くなることに気がつくだけなんだから。

196 名前:デフォルトの名無しさん [2008/11/02(日) 16:40:54 ]
そして定期的に速いグラボ買わせる訳ですね。

197 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 17:13:36 ]
testes

198 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 17:46:08 ]
DrawPrimitive()が使うのはGPUじゃなくCPUだぞ、っと。

199 名前:デフォルトの名無しさん [2008/11/02(日) 17:57:21 ]
所詮はCOM
秒間何百回も呼ぶように作られちゃいねーのよん

200 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 19:09:27 ]
COMを一秒間にたった数百回呼び出したところで、それがシステム全体にどんな影響を与えると?
頭が悪いにも程がある。

201 名前:デフォルトの名無しさん [2008/11/03(月) 00:01:33 ]
おまいらはこの本から勉強しなおすべきだな。

ttp://image.excite.co.jp/feed/news/Excite/bit/2008/E1225123817444_1_s.jpg

202 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 02:50:42 ]
>>189
まったくだな
しかも、一発で描くようにしたらシェーダをアフォかってほど書かなきゃならない
もはや人間がやってられる量を完全に超えてる

もう俺なんかあきらめて2度塗り3度塗り上等だよ
ディフューズやスペキュラ、ライト1個目、2個目・・・
DrawPrimitiveなんて呼びまくってナンボだろ

203 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 08:04:53 ]
>>201
ドイツ人はこんな教科書で日本語を勉強してるのか・・・・orz



204 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 09:56:48 ]
>>199
>>200
DrawPrimitiveが重いのはCOM云々じゃなくて
中でGPUコマンドの生成を行なってるからだぞ・・・。
この辺はMSやnVIDIAの技術者からも情報がいろいろ出てるだろ。

205 名前:デフォルトの名無しさん [2008/11/03(月) 10:43:14 ]
流れを切ってしまうが・・・

みんなはDXUTとか使ってる?

206 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 10:52:51 ]
使ってない。
DirectXも使ってない。
ていうかプログラム作ってない。

207 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 11:06:59 ]
使っていない。
その程度自前で作れる程度でないと、そもそも何も出来ない。

208 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 11:24:14 ]
使ってる
楽できるとこは楽しないと
自己満足のために納期は待ってくれないし

209 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 11:30:33 ]
仕事で使ってる人がなぜ初心者スレに・・

210 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 11:35:47 ]
まだ初心者だけどGUI機能だけ使おうかと思ってる

211 名前:デフォルトの名無しさん [2008/11/03(月) 11:55:18 ]
ゲームクリエイターズバイブル
に自分しか信じない病って書いてあったなー

212 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 13:40:41 ]
D3DX系の高レベルAPIは信用出来ないぞ。
バグがあってもいつ直るか分からないは、勝手に仕様を変更されるは、
そんな物を使っている奴は気が狂っているとしか思えない。

213 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 13:47:01 ]
あれはラッパライブラリと同列に扱うものであって基盤になるAPIじゃない



214 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:37:16 ]
ID3DXFont::GetDC()で取得したHDCって使い終わったらどうすればいいんでしょうか?
Win32Apiで解放した方が委員でしょうか?ID3DXFont::ReleaseDC()が見当たらないので

215 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:53:11 ]
>>214
pc11.2ch.net/test/read.cgi/tech/1224745158/405-407


216 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 16:37:01 ]
えーと、その405は自分です。元の戻すのはいいんですが、解放はどうするのかなぁ、と思ったもので・・・

217 名前:デフォルトの名無しさん [2008/11/03(月) 17:09:00 ]
Fontは遅いから使うなとかなんとか…

218 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 18:11:12 ]
そもそもGetDCで何がしたいんだろう?
あまり安全じゃないから使わないほうが良いという話だが
一度削除されて、いつのまにか復活してる

219 名前:デフォルトの名無しさん [2008/11/03(月) 18:21:35 ]
ID3DXFont::GetGlyphDataは使ってる

220 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 19:21:51 ]
まぁ、多少遅くてもいいかなと思って使ってます。
>>218危険性についてググッても出なかったんですが、何が危ないんでしょう?

221 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 19:35:55 ]
>>220
アルファチャンネル

222 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 19:41:28 ]
LPD3DXFONT::Release
て無くなったの?
前はなかったっけ?

223 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 20:21:08 ]
>>222
COMだからQueryInterface, AddRef, Releaseは必ず存在する。



224 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 20:27:44 ]
あぁゴメンReleaseDCか

225 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:06:16 ]
冗談かと思ってたら本当にDirect2Dとかでるのな
channel9.msdn.com/pdc2008/PC18/

226 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:16:57 ]
また海のものとも山のものともつかぬようなAPIが増えるのか

227 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:27:39 ]
>>221今回はコンパチの作成とフォントハンドルの取得にしか使ってないんですが・・・
分からないっちゃ分からないですよね。安全かどうかは・・・
でも、それはさておきID3DXFont::GetDCで取得したHDCはリリースすべきなのか、どうするのか
分かる人いないですか?

228 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:32:08 ]
正直いまさら2D機能なんて作られてもいらねぇだろ・・・

229 名前:デフォルトの名無しさん [2008/11/03(月) 21:38:07 ]
日本は2D

230 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:56:58 ]
>>227
普通にリリースすればいいんじゃね?

msdn.microsoft.com/en-us/library/bb173963(VS.85).aspx
特になにも書いてないね

231 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:59:41 ]
ぶっちゃけた話DirectWriteの為だけに用意された気がしないでもない

232 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:03:29 ]
エロゲなんざDirectDrawかGDIでつくりゃーいい。
いまどき同人ですらDirect3Dでゲームつくってるっつーのに

233 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:04:47 ]
さすがに今GDIはないわ



234 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:13:10 ]
3Dゲームだってアイコンやらゲージやらマップやら2D表示部分はいくらでもあるだろ

235 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:19:47 ]
3DゲームならそういうのはなおさらDirect3Dで描くだろ。

236 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:22:42 ]
Direct3Dの上に実装されるらしいから問題ないだろ

237 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:25:53 ]
Direct2Dの中身も分からないのに何を言っているのやら
Direct3Dでやるより楽なら使えばいいし面倒なら使わなきゃいいだけの話だろ
新しい物を試しもしないうちから否定してもプログラマとして成長しないぜ

238 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:42:10 ]
やる前にある程度のことは分かれよ、大人なら(笑)

239 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 23:19:24 ]
>>238
憶測で分かったつもりになるのが大人というなら
大人になんかなりたくないと、ぼくはおもいます

240 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 23:20:33 ]
どうでもいい機能が追加されることなんてよくあるだろ
そんなのどうでもいいと思う事すらどうでもいいだろうに

241 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 23:23:32 ]
それだけ要望が多かったんだろ。
その程度の実装すら自分で出来ない馬鹿の。

242 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 23:57:07 ]
DirectDrawの焼き直し。DD扱いにくかったからな・・・。

243 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 00:19:35 ]
動画やってる人にも需要ないかな?



244 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 01:08:51 ]
>>230
::ReleaseDC()で開放しろって意味ですよね?
HDCはいいけど、HWND引っ張ってくるのめんどいズェ・・・ID3DXFontから引っ張れるけど・・・
解放しなくていい気がしてきた。怖いなぁ。 よし放置しよう!

245 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 05:31:41 ]
DirectShowは糞

246 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 08:40:37 ]
DirectX9 とC++で
DirectX Graphicsを2Dについても濃厚に解説している
お勧めの書籍があれば教えてください。


247 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 12:45:16 ]
その質問は何度もでていますが
残念ながらそのような本は存在しませんので
直接本屋に足を運んで
自分のレベルにあっていると思われる本をお選びください
ある程度慣れてくると
その本に何が足りなくて、自分が何を必要としているのかがわかってくるので
そのとき改めて別の本を買うなりネットを検索するなりしたほうが良いと思われます

248 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 14:37:52 ]
ネットで十分ですよ

249 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 14:40:17 ]
本を片っ端から買う金がないならネットでコツコツと探せ
わかんない人にとっては無駄じゃないから

250 名前:デフォルトの名無しさん [2008/11/05(水) 19:42:41 ]
IDirect3DDevice9::CreateStateBlock
でググって絶望するわけですな。

251 名前:デフォルトの名無しさん [2008/11/05(水) 19:50:23 ]
ちゃんとMSDNがヒットするぞ

252 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:34:35 ]
250みたいな馬鹿はググリ方すら分からないから、
インターネッツの使い方の本なら買う価値があるかもね

253 名前:デフォルトの名無しさん [2008/11/06(木) 00:03:00 ]
なんでここの連中って高圧的なの?



254 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 00:13:38 ]
ストレス溜まってるからだろ

255 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 00:57:55 ]
>>246じゃないが
DrectDrawに相当するものについて説明してるところないだろうか
3Dの解説してるところは山ほどあるけど
2Dになると「もうなくなったからあきらめてね」みなたいな流れなのが悲しい
とりあえず画面に線を引くくらいでいいから取っ掛かりがほしい

256 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:41:06 ]
画面に三角形を書く、その三角形にテクスチャを張るぐらいの説明はどこでもやってる気が

257 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:42:45 ]
よくある3Dの解説サイトでも、最初は画面にポリゴン一枚から、とかじゃない?
そのポリゴン一枚を2Dの絵と見立てれば解決のような。それじゃ嫌なのかな?

258 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:44:51 ]
3Dができれば2Dなんて軸が1本減っただけだろう

>>255
D3DPT_LINELISTかD3DPT_LINESTRIPで引けば

259 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:49:54 ]
>>255
DirectDrawには、画面に線を引くなんて機能すらないよ。
あるのは画像のブロック転送だけ。
線を引きたかったら、1ピクセルずつ自分で描かないとダメ。

あと、あらゆるピクセルフォーマットに対応できる仕様になっているから、
物凄く面倒だよ。フォーマットの変換はやってくれないから、全部自分で
読み込み時に変換しないとダメ。

最近のDirect3Dで2Dだけを扱うよりも数倍面倒。
デバイスの初期化だけで100行くらいのコードになるし。

260 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 01:50:16 ]
そこまでやる気ないのだとしたら
ゲームライブラリとか公開してる人がいるからそういうのを使う方がいいかも

261 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 07:51:25 ]
>>255
モニターの設定を取得してそのカラー設定に応じて自分で点を打っていく
RGB888( )とかRGB565( )みたいなマクロ作っとくといいよ


262 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 10:02:55 ]
線を引きたいなら1ドットのビットマップを引き伸ばして回転させて線にするとか

263 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 13:15:43 ]
>>262
DirectDrawに回転ないってw



264 名前:デフォルトの名無しさん [2008/11/06(木) 13:51:53 ]
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=5493f76a-6d37-478d-ba17-28b1cca4865a&DisplayLang=en
DirectX Software Development (November 2008)
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en
DirectX End-User Runtime Web Installer

265 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 13:52:38 ]
>DrectDrawに相当するもの
って書いてあるからDDじゃないと思ってた

266 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 14:06:04 ]
>>255の言いたい事は、2Dグラフィクを扱う方法と考えるべきだな。
頭の悪い奴は、DirectDrawでできることというお馬鹿な解釈をする。
>>259>>263のようにね。

267 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 15:42:03 ]
DirectDrawで線を引く機能があっても意味ねー。
ゲームの画面が線で描かれることは無い。
すべて絵だし。ビットマップだし。

268 名前:デフォルトの名無しさん [2008/11/06(木) 15:45:37 ]
まー解説サイトも板ポリゴン作って拡大回転テクスチャをごにょごにょのレベルまでだけどな

DrawPrimitiveの削減とか考えると本買うしかない

269 名前:デフォルトの名無しさん [2008/11/06(木) 16:00:25 ]
2Dでそこまでしなくても

270 名前:デフォルトの名無しさん [2008/11/06(木) 16:55:05 ]
最新のDirectXがどうしてもインストールできません。
何度やっても「ファイルをダウンロードできませんでした。
後でもう一度実行するか、ネットワーク接続を確認してください」
というダイアログが出ます。

どういった原因なのか分かる方いらっしゃいますでしょうか・・・?

271 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 16:58:39 ]
ブラウザ変えてやってみるとか。
うちでも一定バイト数以上にならなくて別ブラウザにしたら一発だった。

272 名前:デフォルトの名無しさん [2008/11/06(木) 17:04:46 ]
VC++で説明している本の内容をC#で実装するのって手間かかりますか?

273 名前:デフォルトの名無しさん [2008/11/06(木) 17:17:09 ]
SlimDX使えば



274 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 17:22:42 ]
最初はオープンソースのライブラリを使ってゲームを作る
そしてライブラリの中身を見ながら自分風のライブラリに置き換えていく。
俺はこうやってWinAPIとDirectXを習得した。

まぁDirectX7+ELの時代なんですけどね。

今だとオープンソースで使えるライブラリつったらDXライブラリかな?

275 名前:デフォルトの名無しさん [2008/11/06(木) 17:36:29 ]
自分で書いたほうが早い






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

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

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