トップページ⇒tech
1001コメント306KB

【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/
0002デフォルトの名無しさん2005/05/08(日) 02:04:56
ところで、「DirectX総合スレ」ってどこ逝っちゃった?
0003デフォルトの名無しさん2005/05/08(日) 02:06:37
おまいが建てる予定だってさ
0004デフォルトの名無しさん2005/05/08(日) 02:32:33
DirectXプログラマのコーヂングスタイルってどんなの?
やっぱMS風のハンガリアン?
俺DirectXでプログラム覚えてライブラリ作ってきたから
100%MS準拠だったんだけど、最近きもくなって
過去のライブラリ書き直ししようか迷ってるマンコ。
0005デフォルトの名無しさん2005/05/08(日) 02:46:03
前スレこぴぺ。
シミュレーションゲームで、敵の行動思考を計算する時、
市販のゲームとか、別スレッドで計算してるのですか?
自分の場合、適当に時間持たせて考えてる「フリ」にするつもり。

ハンガリアン気にしない。割には使ってます。
いちいち書き直すなんて。
0006デフォルトの名無しさん2005/05/08(日) 08:20:20
マジレスすると、ゲームに依る。以上。
0007デフォルトの名無しさん2005/05/08(日) 09:32:11
一人で作るなら俺ルールでいいとおもうけど
ルールがないのはやばいが
0008デフォルトの名無しさん2005/05/08(日) 15:07:23
DirectXの入門書で「これを買え」っていう本、何でしょうか?
CやJAVAなどの本なら書店で立ち読みして良書を見極めて買ってるんですが、
DirectXの本って僕のいきつけの書店に置いてなくて、
通販で買おうと思ったんですがDirectXの本って結構たくさん
あって選ぶのに苦労してます。
値段も結構張りますし。

0009デフォルトの名無しさん2005/05/08(日) 15:27:49
 マジレスすると、DirectX SDKについてくるHelpファイルが最強のチュートリアル。
その名の通りチュートリアルってプロジェクトがあるからそれを頭からみれば大体の
事は解る。
0010デフォルトの名無しさん2005/05/08(日) 15:44:27
>>8
t-potの人のDirectX9 シェーダプログラミング
工学社のDirectX9 実践プログラミング
DirectX SDK ヘルプ
GPU Gems
0011デフォルトの名無しさん2005/05/08(日) 15:55:07
>>9
SDK見れっつーのは確かにそうなんだが
それ言うと初心者質問スレの意味が無くなっちゃう気が。

DirectXゲームグラフィックスプログラミング Ver. 2.0
http://www.amazon.co.jp/exec/obidos/ASIN/4797329807/qid=1115534492/sr=8-1/ref=pd_ka_0/250-6648048-1546651
書籍版 DirectX9実践プログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4875934998/qid=1115534492/sr=8-2/ref=pd_ka_1/250-6648048-1546651
DirectX 9 DirectX Graphics
http://www.amazon.co.jp/exec/obidos/ASIN/477751112X/qid=1115534492/sr=8-8/ref=sr_8_xs_ap_i8_xgl14/250-6648048-1546651

今の所、これくらいしか無いのが現状。
変日本語SDKの代わりに、リファレンスとして見るなら、
下2つのI/O books系が良いかもしれんが・・眠くなる。
「で?何しよう・・」となると、一番上の本が役に立つかもしれん。

ハッキリいって良書と呼べるかどうかは微妙過ぎるが、総数が少ないしな。。
SDKでチュートリアルと、DX用語のイメージを掴んでから書籍を買ってみれば?

ま、漏れも最初は良書探しをしたんだが、結局SDKチュートリアルから始めて
なんとなく理解できたわけで。。どうにも楽には行かないべ。
0012デフォルトの名無しさん2005/05/08(日) 15:58:58
SDK!SDK!言ってるがSDKに付いてくる日本語ヘルプの事ね・・('A`)
0013デフォルトの名無しさん2005/05/08(日) 16:35:17
DirectX7のDirect3Dで、
頂点にDIFFUSE色を含ませて、その色のアルファ成分を利用して、
アルファブレンドしたいのだが、これってできる???(できなかったので)

ブレンド方法は、
SetRenderStateを使って、SRCBLENDとDESTBELND を使ってやるやつ。

頂点にカラーがあるから、ライティングは不要にしてる。(無効にする)
一応なぜか、マテリアルを割り当ててるが、マテリアルの要素は全て無効だろう。(ライティングなしだから)
ライティングを有効にしても、頂点のディフューズカラーのアルファ成分を使った、ブレンディングはできなかった。

アルファ成分は、常に1.0だと判断されてるようで、
これは、ピクセルカラーに含まれるアルファ成分を使ってるのではないかと思われるが。
001482005/05/08(日) 16:47:27
皆さんのおかげで、購入する本を決められます。
皆さん、どうもありがとうございました。
0015デフォルトの名無しさん2005/05/08(日) 17:08:27
テクスチャを2D的に表示する為、
変換済み頂点のバーテックスバッファを作って
トライアングルファンで四角ポリを表示させているのですが、
これを拡大する時はVBの頂点を直接弄るしかないでしょうか?
変換済み頂点なんで、
D3DXMatrixScalingとかかけてSetTransformしても意味ないですよね?
0016デフォルトの名無しさん2005/05/08(日) 17:11:30
↑テクスチャっていうのは、画像ファイルという意味です。
0017132005/05/08(日) 18:06:09
COLORVERTEX をfalseにしてますた。。。
0018132005/05/08(日) 18:39:24
COLORVERTEX をTRUEにしたけど、アルファ値が変わらない。。。
0019132005/05/08(日) 19:42:56
できた。。。(T_T)...
こんなことで半日かかったよ。ヽ(`Д´)ノUWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNNNNN!!!!!
0020デフォルトの名無しさん2005/05/08(日) 21:18:05
>>19
つまんねー日記でレス消費してんじゃねーよ
0021デフォルトの名無しさん2005/05/09(月) 09:50:45
画像ファイルをスクリーン座標で表示する為、
変換済み頂点のバーテックスバッファを作って
トライアングルファンで四角ポリを表示させているのですが、
これを拡大表示したい時はVBの頂点を直接弄るしかないでしょうか?
変換済み頂点なんで、
D3DXMatrixScalingとかかけてSetTransformしても意味ないですよね?
0022デフォルトの名無しさん2005/05/09(月) 15:31:09
>>21
その通り。
0023132005/05/09(月) 18:08:45
D3DXMatrixScaling
0024デフォルトの名無しさん2005/05/09(月) 18:45:20
変換済み頂点だって言ってんだろうが
0025デフォルトの名無しさん2005/05/10(火) 08:09:54
ちょとイタイ>>13が居るスレは此処ですか?
0026デフォルトの名無しさん2005/05/10(火) 13:11:11
D3DXCreateTextureFromFileExがDirectXデバイス既に作成したのに
「デバイスの準備ができてません」とHRESULT値を返す。
NULLチェックして確かめてるから間違いない。
しかも、引数に渡したファイル名の文字列が関数実行後「""」になってる。
const のはずなのに、デバッガが間違ってるのか、なんなのか、わけわかめ。
憂さ晴らしに書いた。
0027262005/05/10(火) 13:13:01
「デバッガが間違い」というのは、深い意味で考えないでください...
0028262005/05/10(火) 13:37:29
少し前にあるassert関数を省いたらバグ取れた。わけわかめ
0029デフォルトの名無しさん2005/05/10(火) 14:04:31
VCでのプログラミングの経験はあるのですが、DirectXは初めてです。お薦めの本を教えてください。
0030デフォルトの名無しさん2005/05/10(火) 14:22:24
>29
C,C++、win32APIでウインドウぐらい作れるのか?
0031デフォルトの名無しさん2005/05/10(火) 15:40:01
↑何で偉そうなんだろう。
個人的にはDXでお勧めの本はない。
とりあえず工学者とかI/Oのは終わってる。
量産してるけど全部糞。
シェーダーとかグラフィックに特化したのは高いけど比較的まとも。

最初はSDKチュートリアルと個人サイトのチュートリアルをやって、
リファレンスとしてはSDKドキュメントがあれば十分いけると思う。
0032デフォルトの名無しさん2005/05/10(火) 16:18:31
まあ、SDKのヘルプとサンプルが確実に最良の教科書なので、読みまくれってこった。
DirectX Graphicsだけなら、ノート取りながら読んで1日かからんはずだ。
0033デフォルトの名無しさん2005/05/10(火) 16:28:18
つーか俺の経験だと、初心者が一段登る程度の情報だったらどんな本を買っても書いてあるよ。
本屋に行って適当なのを選んで来たら医院ジャマイカ
0034デフォルトの名無しさん2005/05/10(火) 18:05:29
>>28
assertをとったらバグ取れたってのは表面的だな。
メモリリークしてる場合の症状だろ、それ。
0035262005/05/10(火) 18:50:59
assertは、D3DXCreateTexture..の前にあるから、無関係。
assertで引っかかってるわけではないです。

assert(size);
..
D3DXCreateTextureFromFileEx(...);

で、最後の引数に帰ってくるポインタ(テクスチャ)はNULLではなく、
変な値。
メモリ配置に関するエラーだと思われますが。
0036デフォルトの名無しさん2005/05/10(火) 19:19:52
レンダリングターゲットにアルファ値を書き込む方法ってありますか?
ターゲットのアルファ値は常に0xFFだと思ってるんですが。
(アルファ値の計算で色が決定され、ターゲットにその色が反映されて、
ターゲットにアルファ値は本来不要だと思われるから)
HPゲージのような一部分(矩形のような単純な形ではない)にだけ
塗ろうとして、その一部分のみを透明にして、その他部分は不透明
を表現しようとしてます。
0037デフォルトの名無しさん2005/05/10(火) 20:03:22
>>36
常に0xFFだったらアルファブレンディグできないだろ。
0038362005/05/10(火) 20:55:29
普通に考えたら、そんな遠回りする必要なく、
その形をかたどったモノをそのまま転送すればいい事に気づいた。
0039デフォルトの名無しさん2005/05/10(火) 21:38:09
>>38
そんなことしないで、転送先ピクセルのアルファ値を使用した、
ブレンディングを学べ
0040デフォルトの名無しさん2005/05/10(火) 22:03:28
メモリリークした箇所をデバッガで知ることが出来ますが、アホなものでその情報を生かせません。

Direct3D9: (ERROR) :Memory Address: 00c64028 lAllocID=1 dwSize=000047f8, ReturnAddr=017134c8 (pid=00000584)

例えば上記のような情報から、どうやってリークした対象を特定するのでしょうか。
デバッガでメモリの状態を見ることが出来ますが、それで確保された瞬間を見るとD3DのDeviceだったりしてお手上げでした。
IDというのが便利そうなのですが…。
0041デフォルトの名無しさん2005/05/11(水) 02:03:59
メモリリークしたら、企画ごとボツが定石
0042デフォルトの名無しさん2005/05/11(水) 02:17:56
サーフェスを画面に表示するにはどうやるの?
0043デフォルトの名無しさん2005/05/11(水) 04:35:09
>>37
アルファブレンディングで、ターゲットのアルファは使わないのでは?普通の式だと。

Result = Src * Src_α + Target * (1 - Src_α)
0044デフォルトの名無しさん2005/05/11(水) 05:15:21
http://www112.sakura.ne.jp/~kaientai-project/creategame2.htm

0045デフォルトの名無しさん2005/05/11(水) 13:04:12
>>41
昔初心者の頃マジでそうしてた(;・∀・)
0046デフォルトの名無しさん2005/05/11(水) 15:12:51
ピクチャーコントロールにDXで描画するダイアログベースのツールを作ろうとしているのですが、
ピクチャーコントロールの更新されるタイミングが分からず困ってます。

まずはアプリの起動時にDXで適当な矩形でも表示してみようと、
WM_INITDIALOGで矩形描画関数を呼んでみたのですが、
一瞬描画されたあと、ピクチャーコントロールの色で塗りつぶされてしまうようでした。
なので、WM_PAINT内でも同じように描画関数を呼んで見たのですが相変らず
起動時に矩形を表示してくれません。
(というかピクチャーコントロールの描画で消されているような感じ。)
WM_LBUTTONDOWN内などで描画すればきちんと表示されるのですが、
WM_MOVE内で呼んだ時などは、一度目の移動では表示されず、
二度目以降の移動では表示されるという、よく分からない挙動になっています。
どうしたらいいのでしょうか?
環境はW2k、VC6、DX9.0bです。よろしくお願いします。
0047デフォルトの名無しさん2005/05/11(水) 16:37:29
>>44
この荒らしまだいたのか?

〜陸海空Ponline〜壊滅度6%
http://ex9.2ch.net/test/read.cgi/net/1111323121/l50
0048デフォルトの名無しさん2005/05/11(水) 19:19:52
原因不明のバグをがんばって取れるのがプロ
0049デフォルトの名無しさん2005/05/11(水) 21:54:32
>>45
初心者じゃないところで一つお願いできませんか>>40
0050デフォルトの名無しさん2005/05/11(水) 22:43:51
>>40
ttp://www1.kcn.ne.jp/~robe/pf/pf008.html
0051デフォルトの名無しさん2005/05/11(水) 23:13:26
>>50
横からなんだけど、この場合関係なくね?
0052デフォルトの名無しさん2005/05/11(水) 23:51:29
>>50
あぁ、そうか。D3D9 内部でやってるメモリ確保でのリークなのか...。
0053522005/05/11(水) 23:51:56
×>>50
○>>51
アンカーミス...
0054462005/05/12(木) 01:03:39
APIスレいってきます
0055デフォルトの名無しさん2005/05/12(木) 01:17:52
DirectXのメモリリークは
一兆%の割合でrelease忘れ。
0056デフォルトの名無しさん2005/05/12(木) 17:04:21
すいません、Xファイルを読み込ませてもオブジェクトが真っ黒なのですが。。。
自己照明の設定にすると見えることは見えるのですがどうにも平坦で。。
0057デフォルトの名無しさん2005/05/12(木) 17:24:39
ふーん。だから?
0058デフォルトの名無しさん2005/05/12(木) 20:26:28
はぁ?わざわざ説明しなきゃわかんねーの?読解力ゼロだね
0059デフォルトの名無しさん2005/05/12(木) 21:59:10
糸冬 了
0060デフォルトの名無しさん2005/05/13(金) 08:37:57
再 起 重力
0061デフォルトの名無しさん2005/05/13(金) 14:02:13
走己重力
0062デフォルトの名無しさん2005/05/13(金) 14:04:33
頂点xyzを指定して、プリミティブを見るソフト教えてください。
簡易ソフトでビューア、形状確かめに使おうとしてます。
使ったことあるけどソフト名は覚えていない
0063デフォルトの名無しさん2005/05/13(金) 15:58:38
DierctX9 C++ wizardで立ち上げたプロジェクト内で、
MFCを使うことは可能ですか?

それともMFCで立ち上げたプロジェクトでDirectXを使用したほうが
楽なのでしょうか?
0064デフォルトの名無しさん2005/05/14(土) 10:24:06
ALPHAOPにSELECTARG1
ALPHAARG1 -> DIFFUSE
ALPHAARG2 -> TEXTURE
を指定しているのに、
テクスチャ作成の際、指定したカラーキーによる透過に成功している。
頂点色のアルファ値を使ったアルファブレンドがしたいのに。
頂点のアルファ値はちゃんと半透明になってるのに。
0065左利き2005/05/14(土) 13:29:12
質問させてください。

DXライブラリを改造したライブラリを使って(DirectShow利用)
Webカメラの撮った映像を表示するプログラムを作っているのですが、
キャプチャ出来ません。

その理由に、
ビデオキャプチャするデバイスが
Conexant 2388x Video Captureと
Mic Cam
2つが存在し、
デフォルトのビデオキャプチャのデバイスがConexant 2388x になっているから
だと思うのですが、
(Mic Camしかない別のPCだとキャプチャ出来る)
Mic Camに設定してキャプチャする方法はないでしょうか?

↑はプログラムで設定するのではなく、
コントロールパネルのような所で設定できませんか?

お願いしますm(_ _)m
0066デフォルトの名無しさん2005/05/14(土) 13:51:43
http://www.google.co.jp/search?hl=ja&q=PPPax980.kanagawa-ip.dti.ne.jp:8080
http://www.google.co.jp/search?hl=ja&q=PPPax980.kanagawa-ip.dti.ne.jp:80
0067デフォルトの名無しさん2005/05/14(土) 15:27:11
DX9.0cでvsyncをオフにしたいのですが…
0068デフォルトの名無しさん2005/05/14(土) 15:39:12
だから何?
0069デフォルトの名無しさん2005/05/14(土) 15:45:10
>>68
すいませんでした。VSYNCをオフにする方法を教えてください。
ググって見てもIDirect3DDevice9::Presentが関係しているということしかわかりませんでした。
0070デフォルトの名無しさん2005/05/14(土) 15:46:13
ageてしまったorz
0071デフォルトの名無しさん2005/05/14(土) 15:50:59
PRESENT_PARAMSが関係していると連想できない?
0072デフォルトの名無しさん2005/05/14(土) 15:54:15
http://www.google.co.jp/search?hl=ja&q=ppxe014.enta.cli.wbs.ne.jp:8080
http://www.google.co.jp/search?hl=ja&q=ppxe014.enta.cli.wbs.ne.jp:80
0073デフォルトの名無しさん2005/05/14(土) 16:04:48
>>71
ありがとうございます。
0074デフォルトの名無しさん2005/05/15(日) 16:26:32
何か最近変な奴が沸いてるな
0075デフォルトの名無しさん2005/05/15(日) 17:39:15
「はじめての3Dゲーム開発―「DirectX9」の使い方から「1人称3Dフィールド・ゲーム」の制作まで」という本は
このスレ的にはどんな評価でしょうか?

今読み進めてるのですが、初めは割と解説も多かったのですが当たり判定のことが書いてあるページ位になると
かなり多くの新しい関数が出ているのにもかかわらず殆ど細かい説明はありませんでした・・・
もっといい書籍はありますかね?
0076デフォルトの名無しさん2005/05/16(月) 01:04:36
>>75
はい。
0077デフォルトの名無しさん2005/05/16(月) 01:20:27
DirectX10はいつ出るのでしょうか?
0078デフォルトの名無しさん2005/05/16(月) 02:08:46
WGFです
0079デフォルトの名無しさん2005/05/16(月) 17:05:29
WGF1.0 = DirectX9.1
WGF2.0 = DirectX10

安心してDirectX9やっとけ
ちなみにRMは廃止な、今さら使ってる奴いないだろうけど
0080デフォルトの名無しさん2005/05/16(月) 17:30:30
>>76
書籍名を教えてください
0081デフォルトの名無しさん2005/05/16(月) 17:47:42
いやです。
0082デフォルトの名無しさん2005/05/16(月) 17:50:30
>>81
そうですか。
知らないのですね。
0083デフォルトの名無しさん2005/05/16(月) 20:57:10
知っているがお前の態度が気にいらない。
0084デフォルトの名無しさん2005/05/16(月) 21:04:02
いえいえ、無理していただかなくて結構ですよ。
0085デフォルトの名無しさん2005/05/16(月) 22:16:26
次の方どうぞ
0086デフォルトの名無しさん2005/05/16(月) 22:58:28
次の方は銅像。
0087デフォルトの名無しさん2005/05/17(火) 02:29:11
ここのところ、まともな回答が一つもないなぁ…
特にちょっと難しめの奴には
0088デフォルトの名無しさん2005/05/17(火) 02:46:35
>>87
考察ご苦労。
下がってよいぞ
0089デフォルトの名無しさん2005/05/17(火) 03:33:08
こんにちは、DirectXって何ですか?
俺にもわかるように優しく教えて。
0090デフォルトの名無しさん2005/05/17(火) 03:52:37
フォントオブジェクトを使って文字を表示するとアンチエイリアスがかかって、ぼやけた感じになるのですが、
これを防ぐ方法を教えてください。
0091デフォルトの名無しさん2005/05/17(火) 04:26:36
フォントオブジェクト? ID3DXFontけ?
だったらそれを使うのを止める。
代替案に関してはググれば出てくる。頑張れ。
0092デフォルトの名無しさん2005/05/17(火) 05:18:15
なんじゃそら。もったいぶる意味がわからない。
0093デフォルトの名無しさん2005/05/17(火) 05:24:24
はよ出せやタコ
なんのための質問スレだ
0094デフォルトの名無しさん2005/05/17(火) 05:24:35
すっげえ悪質なイタズラ思いついたwwww
http://ex10.2ch.net/test/read.cgi/news4vip/1116266649/

はい、お疲れさまね
0095902005/05/17(火) 05:24:58
>>91
早く答えろよ、いい加減にしないと怒るぞ
0096デフォルトの名無しさん2005/05/17(火) 05:25:36
>>90
グロ画像
PC有害
閲覧注意
0097デフォルトの名無しさん2005/05/17(火) 05:26:43
>>94
なるほど納得
VIPPERも平日の朝からご苦労だなw
0098デフォルトの名無しさん2005/05/17(火) 05:26:56
>>94
グロ 踏んだらPCから神山満月ちゃんが出てくる
0099デフォルトの名無しさん2005/05/17(火) 05:26:59
またVIPPERかよ
0100デフォルトの名無しさん2005/05/17(火) 05:28:48
>>96
アンカーミスすんなwwwww
0101デフォルトの名無しさん2005/05/17(火) 05:30:34
wの使い方でVIPって分かる
■ このスレッドは過去ログ倉庫に格納されています