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

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

レス数が1000を超えています。これ以上書き込みはできません。
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/
0910デフォルトの名無しさん2005/07/17(日) 18:32:59
>>908
もう馬鹿なんだから3Dゲームなんて作るのやめろよ。
0911デフォルトの名無しさん2005/07/17(日) 19:00:22
とうとう感情むき出しか
0912デフォルトの名無しさん2005/07/17(日) 19:04:44
>>909
画面の一部ならなおさら楽だろw
0913デフォルトの名無しさん2005/07/17(日) 19:08:14
彼は頑張って突っ込み所を見つけたんだよ。見当違いだったけど。
0914デフォルトの名無しさん2005/07/17(日) 19:21:14
いやたぶん話が通じてないだけだ
恐らく描画バッファを直接叩くという概念すら分からないニュータイプ
0915デフォルトの名無しさん2005/07/17(日) 19:29:51
反論できないと人格叩きに転向でつか(^^)
0916デフォルトの名無しさん2005/07/17(日) 19:53:45
今北産業
0917デフォルトの名無しさん2005/07/17(日) 19:58:31
なんかワナビーが暴れてるみたいね。句点がついてないのは全部同一人物か?
ポストプロセスの2D処理でモワモワをまともに表現できるわけがないだろ、バカめ。
0918デフォルトの名無しさん2005/07/17(日) 20:14:02
全部同一人物にされてしまったw
0919デフォルトの名無しさん2005/07/17(日) 20:20:42
正直好きなようにやれよと。
過程が重要なんじゃない、必用なのは結果だ。
0920デフォルトの名無しさん2005/07/17(日) 20:27:53
いや、皆899の「そんなことした覚えないよ」に、「それはお前だけ」と突っ込みたいだけだろ。
句点付けておくか。
0921デフォルトの名無しさん2005/07/17(日) 20:50:06
いつから平気でだろだろ言うようになったのですか?
たががはずれたのはいつどんな瞬間だったのですか?
皆もやってるから自分もいいだろうと思ったのですか?
そんな当たり前の節度も守れない人間が他人にお説教ですか?
恥かしいですね。
0922デフォルトの名無しさん2005/07/17(日) 20:55:33
もはや中傷合戦になっとるな
0923デフォルトの名無しさん2005/07/17(日) 20:58:24
だろ?(^ω^)
0924デフォルトの名無しさん2005/07/17(日) 20:58:38
>>921
極度に厨むき出しの文章について。
0925デフォルトの名無しさん2005/07/17(日) 20:59:08
897 902 904 908が同一人物ね
>>899は、もうどうでも良いですわ…

>>914
同意

>>917
>>871はスプライトと言っている以上2Dゲームっぽいし、十分以上に可能だと思うんだがどうだい
というか>>871自身、画像エフェクトで(全部ピクセルで)やりたがっているみたいなので、
>>880に対し、>>897で助け船を出しただけよ

そもそも俺は、ゲームでよくある、ってとこから画面切り替え効果みたいのを想像してた
917氏はモワモワが何か分かっている様だが…
0926デフォルトの名無しさん2005/07/17(日) 21:04:13

   〃∩ ∧_∧
   ⊂⌒(  ・ω・)  はいはい、わろすわろす
     `ヽ_っ⌒/⌒c     
        ⌒ ⌒

0927デフォルトの名無しさん2005/07/17(日) 21:05:46
もやもや病
0928デフォルトの名無しさん2005/07/17(日) 21:14:48
ところで、モワモワとは何だったのか、871はちゃんと説明してくれよw
0929デフォルトの名無しさん2005/07/17(日) 21:52:42
ピクセル処理



ポストプロセスとして使うもの
顕著にわかる代表例:Hitman Contracts

エフェクトとして使うもの
・煙を表す、ボリュームレンダリング

0930デフォルトの名無しさん2005/07/17(日) 21:54:56
見解がズレたままケンカしてるんやでw
0931デフォルトの名無しさん2005/07/17(日) 22:00:32
自分以外が全て自演に見えたら末期
そんなあなたに

そろそろム板もID付けないか?
http://pc8.2ch.net/test/read.cgi/tech/1105878545/
0932デフォルトの名無しさん2005/07/17(日) 22:15:07
そういうZソート前提の話題より
Zソートをいかにして無くすかの方が
まだやる価値があるような気がするが。
重なる数に2枚までとか4枚までとか制限をつけたら
何とかなりそうとかさ。
マルチインスタンスに動的分岐にそれを組み合わせれば
1パスで全てのスプライトが表示出来てウマーとかさ。
考えてみてくれよ、俺の為に。
0933デフォルトの名無しさん2005/07/17(日) 23:02:26
>>932
>マルチインスタンスに動的分岐にそれを組み合わせれば
>1パスで全てのスプライトが表示出来てウマーとかさ。
よくわかんねぇよ。
この場合ってビュークリップっていついれればいいの?
毎フレーム頂点バッファを構築しなおしてるってこと?
0934デフォルトの名無しさん2005/07/19(火) 01:23:45
Xファイルを表示するサンプルソースを見たのですが、
複数のXファイルを表示する方法がわかりません。
プレイヤと敵を同時に表示する時とか、どのようにすれば
よろしいのでしょうか?
0935デフォルトの名無しさん2005/07/19(火) 01:53:13
ナンカ急にレベルが下がったが、D3DXLoadMeshFromX()を自分の好きなだけ呼べばよかろう。
0936デフォルトの名無しさん2005/07/19(火) 03:43:58
>>934
それは複数表示できてるソースをあげてくれと言ってるのか?
サンプルのここが理解できないからわからん
とかならまだしも
0937デフォルトの名無しさん2005/07/19(火) 08:21:27
>>934
Xファイル……と言うかメッシュの表示ね。
複数じゃなくてひとつの Xファイルを読み込んで
それを複数描画するにはどうすればいいかわかりますか?
0938デフォルトの名無しさん2005/07/19(火) 08:26:08
「ひとつのXファイルを読み込んでそれを複数回描画する」
としか・・・
0939デフォルトの名無しさん2005/07/19(火) 08:53:49
printf関数で"hello world!"を複数表示するにはどうs (略
みたいな質問されてもなぁ
0940デフォルトの名無しさん2005/07/19(火) 12:37:25
初歩的な質問だと思うけど聞かせてください。

VC6++でDirectX9AppWizard使ってスケルトン作って勉強し始めたんですが、
class CMyD3DApplication : public CD3DApplication
になってるからCMyD3DApplicationをいじくればいいんだと思って、
色々いじって反応を見てたんですが。
ウィンドウサイズ変更するときが不思議だったんでおしえてください。

m_dwCreationWidthの値を変更すればいいと思って。
CMy〜の方のコンストラクタの値を弄ってもなぜか500x375からどうしてもかわらず、
「へんだなぁ」と思いつつ
m_dwCreationWidthがDWORDってなってるから整数だっけなと思いつつ、
SetRect( &rc, 0, 0, m_dwCreationWidth, m_dwCreationHeight );→
SetRect( &rc, 0, 0, 640, 480 );

に変えたら変更できたんで。
やっぱm_dwCreationWidthだなぁと思って。
CD3D〜のm_dwCreationWidthを変更してみたら
ウィンドウサイズが変更できました。
コンストラクタはCD3D〜→CMyD〜の順に通るんですよね?

変更できない時は以下の状態だったんですが、
CD3D〜のコンストラクタでは
m_dwCreationWidth = 400;
m_dwCreationHeight = 300;
CMyD〜のコンストラクタ
m_dwCreationWidth = 640;
m_dwCreationHeight = 480;
スケルトン作った直後の表示では (500x375)となってました。
自分の頭の中で解決できないんで助けてください
0941デフォルトの名無しさん2005/07/19(火) 12:45:13
他人の規則に従うのが無理なら、ウインドウの表示ぐらい自前で書けば解決。
09429402005/07/19(火) 12:48:49
今やってみたら
CD3DとCMy3Dのm_dwCreationWidth両方いじっても変更できませんでした。。。
どうなってるんでしょう・・・。

>>941
まだウィンドウの表示とか自前で作れないから、
スケルトンプログラム読んで勉強しようと思ってるんですが…。
0943デフォルトの名無しさん2005/07/19(火) 12:52:31
>>942
ならウィンドウの表示から学べば良い。
スケルトンは飽くまでそういった基礎が解かっている人が作成の手間を省くために
使うものであって、決して勉強用ではない。
どっちにしても結局は覚えなきゃならないよ。
09449402005/07/19(火) 13:05:31
>>943
本来はそうなんでしょうね・・・。
良い参考書が見当たらないんで(あんまり探してないけど…。)、
スケルトンからやってみようと思ってます。

自己解決できました。
スケルトンがレジストリにウィンドウ枠の大きさを保存していて、
コンストラクタの最後でそれを読み込んでいる為でした…。
0945デフォルトの名無しさん2005/07/19(火) 16:20:09
ウィンドウの表示のためだけに本買うの?
お金持ちだねぇ
0946デフォルトの名無しさん2005/07/19(火) 16:27:45
>945はそんなに貧しいの?
0947デフォルトの名無しさん2005/07/19(火) 16:32:39
>>946
だって無職だもの。
0948デフォルトの名無しさん2005/07/19(火) 16:35:50
>>945
じゃあなんとなくAdvancedWindowsを買った俺はなんなんだ!
0949デフォルトの名無しさん2005/07/19(火) 17:14:26
しかもウィンドウの表示なら買うのはプログラミングWindowsなのにッ!
0950デフォルトの名無しさん2005/07/19(火) 22:23:24
>>940
適当にブレークポイントしかけて、
ウォッチウィンドウで値確認してけばいいんじゃね?
0951デフォルトの名無しさん2005/07/20(水) 08:40:48
http://developer.nvidia.com/object/nvperfhud_home.html#Downloads

Japaneseがダウンロードできないけど手に入れる方法ない?
0952デフォルトの名無しさん2005/07/20(水) 08:45:28
ちょっと考えれば簡単に手にはいるぞ。
0953デフォルトの名無しさん2005/07/20(水) 10:27:38
入手できました
ありがとうございました
0954デフォルトの名無しさん2005/07/20(水) 16:21:26
3Dとか触ってみようと思ったんですが、
どっかのページのサンプルをコンパイルしたら
D3DXMatrixTransformation2D
がネーヨって言われて、d3dx9math.hを見たら、たしかにありませんでした。
ヘルプにはあるっぽく書いてあるのに...

ひょっとしてOSのせい(Windows 2000 sp4)?
0955デフォルトの名無しさん2005/07/20(水) 16:24:42
(´-`).。oO(なんでこんな池沼がD3Dなぞ触ってるのだろう)
0956デフォルトの名無しさん2005/07/20(水) 16:50:46
>955
それくらい教えてやれよ
俺のDirectX知識は7.0で止まってんだよ。

質問の内容で、こいつ古いバージョンのDirectX使ってるくらい分かるだろアホ
0957デフォルトの名無しさん2005/07/20(水) 17:03:03
>>954
ヒント:WindowsUpdate
0958デフォルトの名無しさん2005/07/20(水) 17:46:33
>>957
全然おもしろくない。
0959デフォルトの名無しさん2005/07/20(水) 19:03:53
>>954
どこのサンプル?
0960デフォルトの名無しさん2005/07/20(水) 20:49:06
>>954
SDKのバージョン
0961デフォルトの名無しさん2005/07/21(木) 00:04:45
Win2K+VC6+DX8で開発してます。

ウィンドウの最小化ボタンをつけていた(ウィンドウスタイルにWS_MINIMIZEBOXを指定)場合、
最小化ボタンやWindowsキー+Dで最小化するとエラーが起きて終了しちゃうんです、
(恐らくReleaseし忘れとかだと思います)

んで、エラー箇所がよくわからないのでとりあえず置いといて、
今度は最小化ボタンを表示しないでウィンドウを作ったですが(閉じるボタンのみ)、
この場合にWindowsキー+Dで最小化してもエラーが起きなかったんです。

Windowsキー+Dの最小化、というのは普通(?)の最小化と違うのでしょうか?
また、エラーが発生しなかったので、最小化ボタンを表示しないのであれば
このまま何かエラー対策処理などを加えなくても大丈夫なんでしょうか?
0962デフォルトの名無しさん2005/07/21(木) 00:57:41
スレ違いではないでもない気もするのですが、質問です
多角形のポリゴンを3角形に分割する方法に悩んでいます。
ある配列Aがあり、その中には多角形を構成するn個の頂点のデータが時計回りで連続して入っています。
この配列のデータを3角形を構成するデータに変換するにはどうしたらいいでしょうか。
0963デフォルトの名無しさん2005/07/21(木) 01:04:50
>>962
triangulationとかでぐぐるといいそうだ
0964デフォルトの名無しさん2005/07/21(木) 01:27:19
>>962
…間違ってたらスマンが
配列に時計回りで連続で入ってるなら
0番目の頂点と、後は配列で連続する2頂点をずらして
三角形を形成して行くだけなんでは?
012
023
034
045
…こんな感じ…
0965デフォルトの名無しさん2005/07/21(木) 01:32:09
>>963
ありがとうございます。ドロネー法という難しそうなのがヒットしました。これを考えて見ます。

>>964
FANで構成すると、ひねったような位置に2頂点がくるとまずいことになります。。。
0966デフォルトの名無しさん2005/07/21(木) 01:34:49
>>964
凹型ポリゴンで氏ぬ

>>965
Blue Impulse SDKっていうオープンソースなライブラリのなかに
凸型ポリゴンに分割する関数がある。
そこまでやれば964の方法も使える。
少々癖のあるソースだがこいつを研究してみるのもありだ。
0967デフォルトの名無しさん2005/07/21(木) 02:37:50
>>965
Delaunay法は点群→三角形群の変換なので、凹多角形→三角形群の変換には使えない。
"polygon" や "polygons" あたりを加えて絞り込んで検索したほうがいいと思うよ。

SGI OpenGLサンプル実装のGLUのTessellation関連のソースを見てみるのもいいかもね。
http://oss.sgi.com/projects/ogl-sample/
↓によれば、GLUのソースを抜き出して利用するのは "It was very easy" らしい。
http://www.vterrain.org/Implementation/Libs/triangulate.html
俺はソース読むのが面倒だからDirectXでもGLUをそのままブラックボックスとして使っちゃったりするけど。
09689652005/07/21(木) 22:36:08
>>967
ありがとうございます。教えていただいたGLUで検索すると
http://graphicsbb.itgo.com/solutions/extrude.html
というところが見つかりました。これでなんとかできそうです。
ありがとうございました。
0969デフォルトの名無しさん2005/07/21(木) 23:48:48
再現性が低いバグが出た場合
おまいさんがた、どう対処してますか?

d3dxmath.hこんなファイル名だったか
 inline
 D3DXVECTOR3 operator - 忘れた
 {
⇒     return D3DXVECTOR3( x - v.x, y - v.y, z - v.z );
 }
こんな汎用的に使う場所で・・・
0970デフォルトの名無しさん2005/07/21(木) 23:50:48
何がおかしいの?
0971デフォルトの名無しさん2005/07/21(木) 23:53:35
あ しまった。

初回の例外は〜〜〜〜〜とでて止まった。
0972デフォルトの名無しさん2005/07/22(金) 00:00:05
>>969の存在そのものがバグ。
修正するのなら死ぬしかない。
0973デフォルトの名無しさん2005/07/22(金) 00:04:50
>>972
そいつは困った。

ブレークポイントも効果ない上に
なかなか症状がでないなぁ。
0974デフォルトの名無しさん2005/07/22(金) 00:09:17
C MAGAZINEのプログラムの禁じ手にある
・自動変数をポイントして,それを関数の戻り値にする
・解放したものを使う

ここらへんを やらかしたんだろうか?w
0975デフォルトの名無しさん2005/07/22(金) 00:38:26
>>969は自動変数のコピーを返してるだけじゃないの?
0976デフォルトの名無しさん2005/07/22(金) 00:47:42
vが怪しいかも
0977デフォルトの名無しさん2005/07/22(金) 00:52:54
d3dx9math.inl(385)

D3DXINLINE D3DXVECTOR3
D3DXVECTOR3::operator - ( CONST D3DXVECTOR3& v ) const
{
    return D3DXVECTOR3(x - v.x, y - v.y, z - v.z);
}

これか。
…構文的には間違ってないように思えるけど。
09789692005/07/22(金) 00:59:31
971,973,974は自分です
名前欄いれるの忘れてた。

D3DXVECTOR3をnewしてもいないのに
ポインタとかありえんしなぁ

void hoge( D3DXVECTOR3* pV )
こんな関数は沢山作っちゃったけど
pVの参照元が何もありません
とかも考えきれんしなぁ

0979デフォルトの名無しさん2005/07/22(金) 01:01:00
少なくとも、D3DXVECTOR3::operator - には何の問題もない。
0980デフォルトの名無しさん2005/07/22(金) 01:02:41
あるあるww
俺の場合は呼び出し元が壊れたオブジェクトだったり、無効なポインタdeleteした後だったってことが多いw
関数は問題ないんだよなww
09819692005/07/22(金) 01:04:27
>>977
おお まさにソレです

とりあえずあやしぃ場所に
assert( pV )
仕掛けまくってみますた
そもそもデバッガ機能を
使いこなせてない俺ガイル

それでは、おやすみ
09829692005/07/22(金) 01:07:50
壊れたオブジェクトか
STLのvectorでの消し方がまずかったかな

参考にしてみます。ありがとう!!
0983デフォルトの名無しさん2005/07/22(金) 01:20:52
遅レスだが、エフェクトというMS用語にはマジでむかついた。
nVidiaのCg以上にむかついた。
混乱するだけだろっての。
0984デフォルトの名無しさん2005/07/22(金) 02:04:25
>>969
そろそろデバッガの使い方を覚えた方がいいと思うぞ。
例えば「初回の例外」って何のことだか分かってるか?
0985デフォルトの名無しさん2005/07/22(金) 09:24:10
>>983
DX7あたりのエフェクトはクソだったが
今はだいぶ使えるようになったぞ。
頑張って慣れろ、絶対エフェクトマンセーになるから。
0986デフォルトの名無しさん2005/07/22(金) 09:26:14
>>985
そういう話じゃないだろ
09879852005/07/22(金) 09:26:45
ああ>>983は、エフェクトの名前そのものに文句いってるのね。
それは同意、つーかコンピュータの技術って一般的な名前つけるの
多すぎ。アトラスとかベロシティとか、検索めんどくせーんだよ。
0988デフォルトの名無しさん2005/07/22(金) 09:30:58
日本語なら、まだカタカナ語として専門用語っぽく区別できるけど、
英語の中に紛れると非常に不便だよね。
0989デフォルトの名無しさん2005/07/22(金) 09:34:17
だからといって、英語の医学用語みたいにラテン語バリバリとかも嫌だけどw
0990デフォルトの名無しさん2005/07/22(金) 09:46:26
まともな名前を考えるとしてRenderingSolution?
0991デフォルトの名無しさん2005/07/22(金) 10:03:45
せめて2単語なら検索しやすくなるのに、1単語だもんな。
検索しにくいったらありゃしない。非常にむかつく。
0992デフォルトの名無しさん2005/07/22(金) 10:11:33
史上最強のクソ名前ってやっぱCgか?
09939692005/07/22(金) 12:38:02
>>984
漠然とでしか解ってなす。
大概、リリースとかデリートしたものにアクセスすると
そういうのに引っかかるかな。
0994デフォルトの名無しさん2005/07/22(金) 13:38:38
BBX荒らしてるjj = スレ主
0995デフォルトの名無しさん2005/07/22(金) 13:51:26
むしろ荒らしは休暇中。
何であんなに得意気なんだ?
0996デフォルトの名無しさん2005/07/22(金) 18:17:09
おまいら次スレって概念は無いのか
またリンク無しか、テンプレ議論も無しか

ここの>>1自体は良いテンプレだけどな(誰も守らんが)
他、初質系の割に、いつまでたっても参考リンクが出来ないとことかどうよ
0997デフォルトの名無しさん2005/07/22(金) 18:26:19
>>996
じゃあ次スレよろしく
0998デフォルトの名無しさん2005/07/22(金) 20:21:15
【C++】 DirectX初心者質問スレ Part5 【C++】
http://pc8.2ch.net/test/read.cgi/tech/1122031254/
0999デフォルトの名無しさん2005/07/22(金) 20:52:32
ume
1000デフォルトの名無しさん2005/07/22(金) 20:53:04
hara
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。