【C++】 DirectX初心者質問スレ Part4【C++】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/05/08(日) 01:53:41これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する香具師 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
前スレ
【C++】 DirectX初心者質問スレ Part3【C++】
http://pc8.2ch.net/test/read.cgi/tech/1108987183/
0404デフォルトの名無しさん
2005/06/06(月) 07:50:37俺のレスが気に入らないならスルーすればいいだけ。
嫌なら相手にしなくて結構。
懐古ってわけじゃないけど、昔は質問への回答なんてそこまで重要なことではなく
むしろ勉強するにあたっての姿勢を大事にする傾向があった。
どのぐらい頑張れば自分のめざすことができるようになるんだろうとか
そういうのが回答からわかった。
ゲームPGの技術力の高さは掲示板でそういうところまで
面倒を見てくれるところで支えていたと思うんだけどね。
ところがこの質問スレはそういうのがないから、最近の初心者は損をしてると思うんだよね。
俺が先人(主にPS世代の人かな)から受け継いだものなんて、そんなものだけど
お前等がいらないっちゅーなら、それもアリだな。と思う。
初めて何ヶ月目か知らんけど、カワイそうだけどこんなペースじゃ一生かかっても俺にはおいつけないだろうな。
俺等の頃にあって、今無いものの差はかなりでかいぞ。
0405デフォルトの名無しさん
2005/06/06(月) 08:19:18説教好きが2ch全体に増えている
これはこのスレに限った事じゃない
0406デフォルトの名無しさん
2005/06/06(月) 08:26:592D!!のDirectXをやってみるかもな
http://pc8.2ch.net/test/read.cgi/gamedev/1005133911/
0407デフォルトの名無しさん
2005/06/06(月) 08:52:38受け継がなくて良かったです。というか何を受け継いだのでしょうか。
404の書き込みから何が伝わってくるのでしょうか。
伝わってくるのは間違いなく404はキチガイであるということだけです。
ここは404なんぞいなくても今まで通り粛々と進んでゆきます。
さようなら404。
0408デフォルトの名無しさん
2005/06/06(月) 09:54:55ここは質問スレだ。質問と回答以外必要ねーんだよ。
なにが「スルーすればいいだけ」だよ。
テメェがスレ違いなどうでもいい昔話をご高説なさってるから邪魔だって言ってんだよアホ。
背中に「↑バカ」って張り紙されてるタイプだよお前w
0409デフォルトの名無しさん
2005/06/06(月) 11:00:44答える奴も馬鹿で結構バランスとれてるよ。
0410デフォルトの名無しさん
2005/06/06(月) 11:22:29ちょっと気になる流れだったから話戻していい?
Summer2004以降はVC6はサポート外になったけど、
ExtrasのVC6用D3DXファイルに差し替えればとりあえず動くよね。
今はVC6+Oct2004にしてるんだけど、なんか問題あるかしら?
海外サイト見ると一応イケるっぽいんだけど・・・
0411デフォルトの名無しさん
2005/06/06(月) 12:14:550412デフォルトの名無しさん
2005/06/06(月) 12:44:07ただ、わざわざVC6用のファイルを残しているから
完全に切り捨てたというより互換性を気にしなくなっただけなのかな、と思ってね。
回避できない致命的な問題がなけりゃそれでいいの。
0413デフォルトの名無しさん
2005/06/06(月) 17:31:400414デフォルトの名無しさん
2005/06/06(月) 18:04:49.net無駄に重くね?
0415デフォルトの名無しさん
2005/06/06(月) 19:02:06逆に.netにしなきゃいけない理由って何。
0416デフォルトの名無しさん
2005/06/06(月) 19:21:250417デフォルトの名無しさん
2005/06/06(月) 19:41:57インテルコンパイラ用の最適化機能と新規格の準拠度
0418デフォルトの名無しさん
2005/06/06(月) 19:54:41STL 等のライブラリは new が bad_alloc 投げることを前提にしてるから、
NULL チェックされとらんのよな。
bad_alloc を投げるようにハンドラ変えてやればいいんだけど。
あと、static const int メンバが直接初期化できないから
enum を使わないといけなかったり。
0419デフォルトの名無しさん
2005/06/06(月) 20:11:450420デフォルトの名無しさん
2005/06/06(月) 20:23:10とりあえずboostでコンパイル通るコンポーネントが飛躍的に増えること。
これだけで導入の価値は充分にある。
あとVC6ではテンプレート周り、とくに特殊化/部分特殊化に関連するバグには
かなり悩まされてきたが、VC7.1ではほとんど修正されてる。
0421デフォルトの名無しさん
2005/06/06(月) 20:27:150422デフォルトの名無しさん
2005/06/06(月) 20:31:140423デフォルトの名無しさん
2005/06/06(月) 20:34:51ベータ初期しか試してないが、多少は良くなったのかね
0424デフォルトの名無しさん
2005/06/06(月) 20:35:560425デフォルトの名無しさん
2005/06/06(月) 21:25:220426デフォルトの名無しさん
2005/06/06(月) 21:28:26国や組織によっても認識が違ってたりするからなぁ。
0427デフォルトの名無しさん
2005/06/06(月) 21:32:38どこでも
0428デフォルトの名無しさん
2005/06/06(月) 21:40:547.1でも部分特殊化はイマイチだ
8買っちゃうかも。
0429デフォルトの名無しさん
2005/06/06(月) 23:27:390430デフォルトの名無しさん
2005/06/07(火) 00:59:520431デフォルトの名無しさん
2005/06/07(火) 01:14:220432デフォルトの名無しさん
2005/06/07(火) 03:41:510433デフォルトの名無しさん
2005/06/07(火) 10:22:573〜4万円くらいで乗り換えれたよ。VBやVJ等でも可。
もう1年前にキャンペーン終わってしまったが。
0434デフォルトの名無しさん
2005/06/07(火) 11:45:360435デフォルトの名無しさん
2005/06/07(火) 11:55:560436デフォルトの名無しさん
2005/06/07(火) 13:08:04「ディテール」を「ディティール」とかいうバカも気に入らない。
0437そもそもカナで表記することが(ry
2005/06/07(火) 14:16:50「ディテイル」もしくは「ディーテイル」
0438デフォルトの名無しさん
2005/06/07(火) 14:50:500439デフォルトの名無しさん
2005/06/07(火) 15:48:260440デフォルトの名無しさん
2005/06/07(火) 16:26:16ディティールが違うんだよディティールがフォー
0441デフォルトの名無しさん
2005/06/07(火) 16:29:190442デフォルトの名無しさん
2005/06/07(火) 19:43:14自作自演で質問ゴッコするスレ
0443デフォルトの名無しさん
2005/06/09(木) 22:30:560444デフォルトの名無しさん
2005/06/10(金) 14:15:250445デフォルトの名無しさん
2005/06/10(金) 17:16:580446デフォルトの名無しさん
2005/06/11(土) 01:30:39パフォーマンスは気にしたほうがいい。
0447デフォルトの名無しさん
2005/06/11(土) 01:39:090448デフォルトの名無しさん
2005/06/11(土) 01:43:530449デフォルトの名無しさん
2005/06/11(土) 02:00:360450デフォルトの名無しさん
2005/06/11(土) 02:08:36「vectorの要素数が上限を超えると」だろ。
要素が変化するごとに再アロケートなんかおきてたらスパコンでも使えんわそんなもん。
0451デフォルトの名無しさん
2005/06/11(土) 02:22:21毎回起きるわけでもないみたいだけど。
0452デフォルトの名無しさん
2005/06/11(土) 02:30:48効率気にするなら reserve しときゃええ話やね。
0453デフォルトの名無しさん
2005/06/11(土) 04:29:11文字やグラフィックを表示することはできますか?
0454デフォルトの名無しさん
2005/06/11(土) 07:19:040455デフォルトの名無しさん
2005/06/11(土) 10:39:280456デフォルトの名無しさん
2005/06/11(土) 12:55:38http://gamdev.org/up/img/2757.zip
以下の内容を100万回施行
移動して、徐々に透明になる事を想定してのプログラムです。
1、テクスチャを描画、板ポリを生成、描画
2、板ポリ生成、描画
3、板ポリ描画
4、板ポリ描画(Lock版)
だいたい速度が同じなのですよね。
作り方がおかしいのでしょうか?
それとも、こんなもんなのだろうか・・・
Effective C++見るとみるからに変わってるんですがね
0457456
2005/06/11(土) 19:28:58もしや、クラッシュさせてしまったのかっ!!
0458デフォルトの名無しさん
2005/06/11(土) 20:03:11VSync待ってたりして。
0459デフォルトの名無しさん
2005/06/11(土) 21:14:47最適化を有効にして実行してみた。
北森2.8 RADEON9600XT DirectX9 april
VC6
Time1 31074
Time2 30790
Time3 6088
Time4 6853
VC7.1
Time1 30740
Time2 30578
Time3 6297
Time4 6667
0460デフォルトの名無しさん
2005/06/11(土) 21:30:300461デフォルトの名無しさん
2005/06/11(土) 22:01:06AthlonXP2500+ Radeon9600np DirectX9 april
VC7.1
Time1 29627
Time2 30479
Time3 10981
Time4 10163
0462デフォルトの名無しさん
2005/06/11(土) 23:18:24Pen4 1.8GHz Radeon9600 SERIES
VC6
Time1 46553
Time2 46654
Time3 11250
Time4 11690
0463456
2005/06/12(日) 02:18:56結果が大きくちがいますね。なんでだろう。
Athlon1.8GHz Geforce256で 一律4000でした。
プログラムは問題なさそう。なのか?
1,2は
リスト構造の中に予めVertexBufferを入れるか
描画する時にだけVertexBufferを生成するかどうか
(クラスの設計をどうしようかと考えていたので)
3,4は
データを上書きするのと
Lockしてデータを書き換えるのとは
どっちがパフォーマンスがいいのか?というのが目的です。
メモリの問題はとりあえず後回しとして。
実行してくれた方々ありがと〜。
0464456
2005/06/12(日) 02:28:460465デフォルトの名無しさん
2005/06/12(日) 03:39:07NVPerfHUDでパフォーマンスを解析したほうがいい。
ビデオカードは買わないとダメだけど効果は大きい。
使い方のムービーあるから見てみるといい。
0466デフォルトの名無しさん
2005/06/12(日) 12:13:10やっぱグラボって重要なんだね…
0467デフォルトの名無しさん
2005/06/12(日) 17:29:15起動した瞬間固まる。。。
Win2000、RADEON9100、1GB
0468デフォルトの名無しさん
2005/06/12(日) 17:31:42それ、重すぎて画面に表示できてないよ。
数分経つと正常に終了するから
0469デフォルトの名無しさん
2005/06/12(日) 19:55:52終了するようになってます。
0470デフォルトの名無しさん
2005/06/12(日) 21:59:19DirectXのサンプルと、VisualC++.netなどでDirectXのプログラムを起動させると、
「Switching the Direct3D reference rasterizer, a software device that implements the entire Direct3D feature set, but runs very slowly. Do you wish to continue?」
とテキストボックスが出現した後FPS0.1というとても遅い速度でしか動きません。
以前はスムーズに動いたはずなのですが。。。
あるとすれば、キチンと動いたときからパソコンを初期化してメモリ増やしたくらいしか。。。
どなたかご教授おねがいいたします。
スペック
Dellノートパソコン
Pentium2.66GHz
メモリ640
開発環境
VisualC++.net
DirectX SDK 9.0(june 2005)
0471デフォルトの名無しさん
2005/06/12(日) 22:02:57まずエラー文をちゃんと読もう、な!
0472デフォルトの名無しさん
2005/06/12(日) 22:03:02そのメッセージをexcite翻訳すると
>Direct3D参照ラスタライザを切り換えて、全体のDirect3Dの特徴を実装するソフトウェアデバイスは、非常にゆっくりセットしますが、動きます。 あなたは続きたいですか?
ノートパソコンの時点でまさかとは思うが、ビデオカードが無いとか言わないよな?
0473デフォルトの名無しさん
2005/06/12(日) 22:09:34以前はちゃんと動いてたので多分問題は他にもあるかと思います。
0474デフォルトの名無しさん
2005/06/12(日) 22:13:29コンパネからDirect3Dの設定を変えてみるとか。
0475デフォルトの名無しさん
2005/06/12(日) 22:18:56DX9の同じサンプルでだよな?
0476デフォルトの名無しさん
2005/06/12(日) 22:32:44今色々試してはいるんですが、変化が無い感じです。
>>475
そうです。同じサンプルで動作が遅いという現象が出てます。
やっぱり、ビデオカードの問題なんでしょうか(^^;
ところで、DLしたのって、
Microsoft DirectX 9.0 SDK Update (June 2005)
のみなんですけど、これってUpdateのみだから、DirectX 9.0b SDK (2002)
が必要ってわけじゃないですよね?
あと、診断ツールのDirectXファイルで
「いくつかのファイル (d3d9d.dll、Microsoft.DirectX.Direct3DX.dll) はデバッグ版です。製品版より遅く動作します。」
と出ましたが、これって影響ないんでしょうか?
0477デフォルトの名無しさん
2005/06/12(日) 22:38:58だからコンパネでDirect3Dの設定を変えてみなよ。
Emulate reference rasterizer
とかの項目を切り替えたり、Debug/Rereaseモードを切り替えたり。
0478470
2005/06/12(日) 22:52:51やっぱり、ノーパソでやること自体が無謀なんでしょうか(^^;
0479デフォルトの名無しさん
2005/06/12(日) 23:09:210480470
2005/06/12(日) 23:15:55ご教授ありがとうございました。
再度一人でがんばってみます(^^
0481デフォルトの名無しさん
2005/06/13(月) 01:36:070482デフォルトの名無しさん
2005/06/13(月) 11:46:56SetRenderState(D3DRS_ZENABLE, TRUE)は書いてるんですけど、
これ以外にも何か必要なものとかあるんでしょうか?
0483デフォルトの名無しさん
2005/06/13(月) 11:55:430484デフォルトの名無しさん
2005/06/13(月) 12:28:42単に精度の問題とかじゃ?
0485482
2005/06/13(月) 12:39:33を書いてもだめでした。
0486デフォルトの名無しさん
2005/06/13(月) 15:02:04「画面一杯に1枚絵を表示」する方法の質問です。
クライアント領域640x480のウィンドウに同サイズのテクスチャを
画面ぴったりに表示させようとしています。
で、表示自体は出来たのですが、各ドットが補完されボケて表示されて
しまいます。
SetTextureStageStateでD3DTEXF_NONEやD3DTEXF_POINTを指定すると
ボケた上に端々が汚く、D3DTEXF_LINEARだと綺麗だけどやはりボケます。
(↑これは当たり前ですが)
補完無しでくっきりと表示させる方法を教えて下さい。
orz オナガイシマス
0487デフォルトの名無しさん
2005/06/13(月) 15:24:56orzとかオナガイシマスとか、いい加減恥かしくないですか。
礼儀というものを知らないのですか。
いつからそういったものを覚えたのですか。
そういうノリだと誰かが教えてくれると思ったのですか。
0488デフォルトの名無しさん
2005/06/13(月) 15:29:530489デフォルトの名無しさん
2005/06/13(月) 15:50:44勝手にイメージが拡大されるのを知らないってオチが大半やねこの場合。
あとは頂点座標を-0.5ピクセル分ずらすとか、UV座標を+0.5テクセル分ずらすとか。
0490デフォルトの名無しさん
2005/06/13(月) 15:53:50ID3DXSpriteの存在を本気で忘れてました
単純な矩形表示ならこっちの方が相応ですな…
ちょっと調べてみます。マリガトウ
>>487
つ● ウンコドゾー
0491デフォルトの名無しさん
2005/06/13(月) 16:21:32射影行列のZnをいくつにしてる?
>>490
せっかくいい線まで行ってるんだから、ID3DXSpriteなんて使うな。
原因はたぶん489の言う通り。
描画以前に読み込み時にテクスチャがボケてる。
0492486
2005/06/13(月) 16:33:06>>491
489氏のレスみてテクスチャ座標を0.5テクセルずらしたらSetTextureStageStateの
D3DTEXF_NONE時の表示がだいぶマシになりました。
後はD3DXCreateTextureFromFileを使ってるのでご指摘の通りかと思われます。
D3DXCreateTextureFromFileはCodeGuruのサンプルをそのまま使ってた
だけなので、これをCreateTextureに置き換えてみます。
回答有難うございました。
ノシ
0493デフォルトの名無しさん
2005/06/13(月) 16:50:44D3DXCreateTextureFromFileExを使え。
0494486
2005/06/13(月) 17:41:01今ちょっとやってみたらテクスチャが縦横に妙に縮小されて取りこまれてしまいました…
こう↓書いてたのを
D3DXCreateTextureFromFile( g_pd3dDevice, fname, &g_pTexture[num] );
このように↓変えただけなのですが…
D3DXCreateTextureFromFileEx(g_pd3dDevice, fname, 0, 0, 0, 0,D3DFMT_UNKNOWN,
D3DPOOL_DEFAULT,D3DX_FILTER_NONE,D3DX_FILTER_NONE,
0,NULL,NULL,&g_pTexture[num]);
読んでるファイルは640x480の24bppのBitmapで、D3DXCreateTextureFromFileExの
引数にサイズを指定したりフォーマットにD3DFMT_R8G8B8を指定しても同じでした。
ちょっと自力で調べてみます
D3Dッテムズカシイ('A`;)
0496デフォルトの名無しさん
2005/06/13(月) 19:17:180497デフォルトの名無しさん
2005/06/13(月) 19:43:58テクスチャ座標を1.0にしてない?
たぶんD3DXCreateTextureFromFileExで640*480の画像を読み込むと
1024*512のテクスチャが作成されている。
D3DXCreateTextureFromFileExの後にサーフェスのサイズからテクスチャ
座標を計算する必要がある。
(1024*512と決め打ちするなら、640/1024,480/512をテクスチャ座標に)
0498486
2005/06/13(月) 20:15:23できました!
座標直したらドット単位くっきりな画像が表示できました。
今しばらく勉強してみます。
皆さん有難う。( ´∀`)ノシ
>たぶんD3DXCreateTextureFromFileExで640*480の画像を読み込むと
>1024*512のテクスチャが作成されている。
この動作知りませんですた。サイズは512Pixel毎?
手持ちのDX9ヘルプにも見当たらないような…
0499デフォルトの名無しさん
2005/06/13(月) 20:19:390500デフォルトの名無しさん
2005/06/13(月) 20:32:55つ● ウンコドゾー
0501デフォルトの名無しさん
2005/06/13(月) 20:34:15ネットを見てもファイルを再生する方法はよくありますが、そうではなく、その時々で任意の音を出したい
のですがどなたかご存知ではないでしょうか。よろしかったら教えてください。
0502デフォルトの名無しさん
2005/06/13(月) 20:37:27WAV データを自前で生成しつつ再生すればいいと思う。
ストリーミング再生の資料は多少はネット上に落ちてる筈。
0503デフォルトの名無しさん
2005/06/13(月) 20:40:05本当にありがとうございます!!さっそく調べてみます。
■ このスレッドは過去ログ倉庫に格納されています