トップページ⇒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/
0303デフォルトの名無しさん2005/06/03(金) 01:59:04
>>301
わかる人は判るからいいです。

> 法線にスケーリングが掛かったら、それがどう言う意味か知らない

だいたいさ、SetTransform()内部で、world matrix をextract して、スケーリング成分等を除去した
純粋な回転行列に変換し、それを法線ベクトルの変換に使う実装だってあり得るわけだ。
どういう実装になっているかは、運よくnormalizenormalのステートを見てそれが何であるかを意識した人だけだろう。

0304デフォルトの名無しさん2005/06/03(金) 02:00:20
> 古いカード使ってるユーザーは無視

日本じゃどうしてんのか知らないけど、うちでは無視です。
0305デフォルトの名無しさん2005/06/03(金) 02:00:51
>>303
大丈夫w
そんなもん運に頼って見つけるの君だけだからw
0306デフォルトの名無しさん2005/06/03(金) 02:02:23
>>304
日本でもラブデスはぶっちぎりで無視でした。
0307デフォルトの名無しさん2005/06/03(金) 02:03:49
語尾wくんはここでも叩かれて支離滅裂なレスを付けてるのか。
悲惨なやっちゃな
0308デフォルトの名無しさん2005/06/03(金) 02:05:20
法線スケーリングされて顔真っ赤な低脳のいるスレはここですか?
0309デフォルトの名無しさん2005/06/03(金) 02:06:19
初心者用と叫んで
初めから単位化された法線を
スケーリングなしの行列でトランスフォームした場合でも
全てデフォで単位化するなんて方がアフォ。

プログラマとしての発想の違いとも言える。
数万頂点の法線がはじめから単位化されていて
セットされる行列もスケーリングなし
しかし、その数万回の単位化をなんとも思わない時点で...

プロなら、シェーダー非対応のボードでも
切り替え指定で動くように作るだろw

弊社のゲームはDirectX9、対応ボード必須(256M以上とか...)、
CPU3GHz以上必須(ここは妄想だが)とか言うのがプロなの?
half life2以上は期待しちゃうよ?
0310デフォルトの名無しさん2005/06/03(金) 02:07:15
>>306
らぶデスも別に古いので動くけどな
0311デフォルトの名無しさん2005/06/03(金) 02:09:31
結局、本も読まない、買わない、OJTでしか技術は身に付けないって姿勢だから
法線スケーリングされてポリゴン真っ黒なのに、顔真っ赤にしちゃうわけだよ。ぷw
0312デフォルトの名無しさん2005/06/03(金) 02:11:18
>>311 オメガワロスw
0313デフォルトの名無しさん2005/06/03(金) 02:12:37
>>309
プロだったら、前処理でスケーリングして、normalizenormal を一回だけOFFにセットすりゃいいんだよ。
初心者は、normalizenormal を知らない可能性が高いっつてんだよ。

0314デフォルトの名無しさん2005/06/03(金) 02:13:44
そもそも固定パイプラインって
固定の処理をハード処理して速度を稼ぐって言う
昔の非力なグラボ時代の話であって

それを
シェーダーが主流だから初心者用だとか
APIの実装依存とか
SetTransform()内部で、world matrix をextract して、スケーリング成分等を除去した
純粋な回転行列に変換し、それを法線ベクトルの変換に使う実装だってあり得るわけだ。
とか言っちゃうんじゃないのw

固定処理以外の部分はプログラマが指定しろって事なのに
お前は、固定処理に法線のノーマライズが必要って言ってるんだぞ?グラボ会社に要求しろ
それ以外ならソフト処理の問題であって固定機能とか言ってるな、ボケ
0315デフォルトの名無しさん2005/06/03(金) 02:14:10
内容のないレスで空回りするのが、ここのデフォ?
0316デフォルトの名無しさん2005/06/03(金) 02:20:04
> 昔の非力なグラボ時代の話であって

日本のWindows向けクソ3Dゲーの事は良く知らない。
日本にはろくなD3Dプログラマがいないということだけは知っている。

> SetTransform()内部で、world matrix をextract して、スケーリング成分等を除去した
純粋な回転行列に変換し、それを法線ベクトルの変換に使う実装だってあり得るわけだ。
とか言っちゃうんじゃないのw

「とか言っちゃう」って何がおかしいんだよ?説明しろ。
0317デフォルトの名無しさん2005/06/03(金) 02:23:16
>>314
> お前は、固定処理に法線のノーマライズが必要って言ってるんだぞ?

>>285 から書いている通り「初心者のためにnormalizenormalはデフォでONにすべき」
っていってんだよ。何回説明したら論旨を理解するんだ?バカ。

0318デフォルトの名無しさん2005/06/03(金) 02:26:20
つか、こっちの語尾wはマトモで、相手が変なのか。まぁ自作自演なら両方ともすごい変な人だがw
0319デフォルトの名無しさん2005/06/03(金) 02:27:17
一見意味のありそうな議論に見えるが、
実際はAだ!Aだ繰り返してるだけの屑議論だな。

つまんね
0320デフォルトの名無しさん2005/06/03(金) 02:28:47
【この議論の関連スレ】

インパルス板倉「学校で浮いている奴が、2chで虚勢を張っている」
http://news19.2ch.net/test/read.cgi/news/1117727344/
0321デフォルトの名無しさん2005/06/03(金) 02:28:55
314は今必死に matrix とextractでぐぐってます。

0322デフォルトの名無しさん2005/06/03(金) 02:29:55
>>316
それをハード固定機能に求めるのか
SetTransform()内部のソフト的な部分に求めるのか混同してる

ソフト的な問題なら、今までの”パイプライン”とかの意味不明な発言の落とし前はどうするの?

>>317
お前は、”固定機能が初心者用だから”って前提を突っ込んでるのは完全無視なのか?
03233172005/06/03(金) 02:31:02
>>319
こんなの意味なんかあるかよ。わけわかんねーよ食ってかかってきてるやつ。
おれの論旨は「D3D初心者のためにnormalizenormalはデフォでONにすべき」
であって、それ以上なにもない。
03243172005/06/03(金) 02:34:01
>>322
> それをハード固定機能に求めるのか
あのー、
HALと、Fixed pipelineを絡めて議論する意味ってなに????
訳わかんないんですが。

0325デフォルトの名無しさん2005/06/03(金) 02:36:45
>>323
アフォか
それなら、D3D初心者のために行列は使用しない
座標値と角度のみとか
角度も初心者のためにラジアンは使用しないとか
正しい要求なのか?w
03263172005/06/03(金) 02:38:55
結局、中途半端な知識(しかも勘違い甚だしい)しかないやつが、おれの話を理解できずに食って掛かってきているってことでよろしいですね?
くだらないので逝きますね。
0327デフォルトの名無しさん2005/06/03(金) 02:40:55
>>マトモな人の方へ

言った言わない議論でスレ伸ばしても無意味。

それとも、スレ延ばすとあんたの収入が増えるビジネスモデルなんかい?
0328デフォルトの名無しさん2005/06/03(金) 02:41:48
すげぇ下らん自作自演だったな
0329デフォルトの名無しさん2005/06/03(金) 02:43:36
HALとはグラボとのやりとりの規格であって
固定パイプラインの中で処理されるH/W T&Lのハード機能とは別ものである

中途半端なのはどっちだw
0330デフォルトの名無しさん2005/06/03(金) 02:46:38
それより、固定機能が初心者用なんて恥ずかしい決め付けだって指摘に
一つも反論してないよ?

無理前提を、突っ込み無視で押し通すつもり?w
03313172005/06/03(金) 02:49:09
>>325

あのなぁ、論旨となっている使用するAPIのとっつき易さ(優れたデザイン)と、
ユーザーに求められる数学の素養くらい分けて考えろ。
「理学者は全員D3Dのエクスパート」とキミの論理は恥ずかしくバグっている。
バカ丸出し。
まぁ、お前のような奴が、三角形を一つでも表示させることができている
とすれば、D3Dは十分 "fool proof"ということだ。
0332デフォルトの名無しさん2005/06/03(金) 02:52:31
いつまでやるの?

毎日が休みの人はいいな、
API設計の良し悪しなんていう
どうでもいい議論で盛り上がれて
03333172005/06/03(金) 02:53:38
>>329
> それをハード固定機能に求めるのか
>SetTransform()内部のソフト的な部分に求めるのか

これで何が言いたいんだって聞いてんだよ。


>固定機能が初心者用
だからさ、固定なんか使ってんのは今時日本のクソ3Dゲーか美少女ゲーの特殊効果だけだっつってんの。
ほとんどの初心者が最初に三角形を出すのに固定パイプラインを使うことはほぼ間違いない
。
0334デフォルトの名無しさん2005/06/03(金) 02:55:30
法線にスケールが掛かると、ベクトルの大きさが変わるかも知れないって数学的な部分を
初心者用、APIデザインとか言ってるのは
その数学的な素養が要らないって意味だろう?

じゃ、C言語を扱うプログラマ初心者の為に
C言語基本的素養は、初心者用、関数デザインとか言って
求めないのと一緒だろw
03353172005/06/03(金) 02:56:12
>>332
悪いがこっちはまだ19時で休憩中なもんで。
0336デフォルトの名無しさん2005/06/03(金) 02:57:30
>>317

お前さ、次から次に自分の理屈を言ってるだけで
突っ込み無視で、技術有ります見たいな発言繰り返すのみ、言い訳のみ、だなw
0337デフォルトの名無しさん2005/06/03(金) 02:59:16
ヨーロッパかよ。すげぇ不思議なロケーション
0338デフォルトの名無しさん2005/06/03(金) 02:59:20
>>324
の恥ずかしい勘違い?知識無し?の発言で
317と話す必要もなくなったなw
0339デフォルトの名無しさん2005/06/03(金) 03:00:49
================================================================
以上、ほぼ自作自演でした。週末も自作自演の予定です。
ここまで読んでくださった皆様、どうもありがとうございました。
ねぇ、僕って孤独じゃないよな?
================================================================
03403172005/06/03(金) 03:01:18
>>334
キミさ、なんでもいいけどあたまわるすぎ。自覚ないでしょ?
もう、勝手にお吼えください。
03413172005/06/03(金) 03:02:50
そう、脳内ヨーロッパの脳内ゲームの脳内ソフトハウスに脳内駐在中です。
0342デフォルトの名無しさん2005/06/03(金) 03:20:55
>ほとんどの初心者が最初に三角形を出すのに固定パイプラインを使うことはほぼ間違いない。
だから、固定パイプラインは初心者用?
ウルトラ頭悪いねw

一応サンプルブラウザーにはビギナーレベル指定でベーシックHLSLなんてサンプルが有るんですが?
チューリアルの初心者以前、これから入門しますってレベルで物を言って
そのレベルでAPIデザインとか抜かしてるんだろうか...
0343デフォルトの名無しさん2005/06/03(金) 03:47:16
>>342
うざいよゲー専門学校生が。お前だろ初心者はw
恥ずかしすぎるぜこいつ。
0344デフォルトの名無しさん2005/06/03(金) 03:56:13
スーパークリエーター>>317を
尊敬するぞ
尊敬するぞ
尊敬するぞ
尊敬するぞ
0345デフォルトの名無しさん2005/06/03(金) 04:08:50
固定でも互換にできちゃうような処理しかしてねークソゲー
だったら、はなっからシェーダーなんか使わねーで固定で書いてろ。
0346デフォルトの名無しさん2005/06/03(金) 07:56:55
つまり固定で書かれているFFXIは初心者プログラマが作ってるのか。
ターゲット環境を低くするために、わざとやってるのかと思ってた。
0347デフォルトの名無しさん2005/06/03(金) 08:10:43
馬鹿な糞餓鬼が法線スケーリングされてファビョってるスレはここですか?
0348デフォルトの名無しさん2005/06/03(金) 08:26:37
347みたいなのって、もういい加減はずかしい。
0349デフォルトの名無しさん2005/06/03(金) 09:49:34
質問です。
VC++7.1のReleaseのデバッグ無しで開始のみ面が描画されません。
デバッグ開始だと描画されます。
原因がさっぱりわかりません。
Direct3DのDebugモードとRetailモードで試してみても結果は同じで
やはりデバッグ無しで開始だと面が表示されません。
ReleaseじゃなくてDubugだと問題ありません。
解決方法を知ってる人がいたら教えてください
0350デフォルトの名無しさん2005/06/03(金) 10:33:39
法線をスケーリングするとおかしくなるのはなぜに?
法線で重要なのは絶対値じゃなくて向きでしょ。
法線を単位ベクトル化しても、ベクトルはベクトル。向きは変わらないんじゃないの・・・? ちがうの?
0351デフォルトの名無しさん2005/06/03(金) 10:37:25
>>350
問
正規化されていない法線A、Bがあります。
この法線どうしの角度を求めよ。(cosθでもよい)
0352デフォルトの名無しさん2005/06/03(金) 10:37:44
こういうバカのためにもnormalizenormalsはデフォルトでオンになってたほうがいいな
0353デフォルトの名無しさん2005/06/03(金) 11:06:35
正規化って平方根の逆数だから結構重いよな。
でもGPUって極端な話レイテンシが1000であっても
スループット1なら別に問題ないんだよな。
つまりガンガン正規化してもOKってこと?
0354デフォルトの名無しさん2005/06/03(金) 11:12:52
>>349
自分のプログラムを先頭から最後まで、100回見直す。
0355デフォルトの名無しさん2005/06/03(金) 12:14:20
おれなんか未だに固定少数でニュートン法で平方根求めてます。
痛いです。
0356名前は開発のものです。2005/06/03(金) 13:04:09
俺の疑問、質問にだれか答えてくれ。

1.DrawPrimitiveUP、DrawPrimitiveの違い。

速度で、DrawPrimitiveUP < DrawPrimitive
な理由は、DrawPrimitiveUPを呼んだあとに、頂点情報をGPUに転送して
描画待ちをしているせいなんでしょうか?

DrawPrimitiveは、頂点バッファのアドレスを指定してあとはDMAで頂点を
転送しているから描画待ちをせずに並列で処理できるから早いってことでしょうか?

2.半透明ポリゴンのソート方法
半透明ポリゴンのソートをポリゴンの頂点座標を透視変換して計算した
Zの値0.0〜1.0で比較してソートしているんだが激しく遅い。
0.0〜1.0を100分割して 0.01刻みでバケツソートしても遅い。
高速化する方法ってどんなのあるでしょうか?

0357デフォルトの名無しさん2005/06/03(金) 13:29:45
>354
4回目で直りました。thx
0358デフォルトの名無しさん2005/06/03(金) 15:10:05
>>349
もう直ったようだが、DebugとReleaseで動作が変わる場合は
まず変数の初期化がらみだと思っていい。
0359デフォルトの名無しさん2005/06/03(金) 15:26:32
>>356
2. ソートのアルゴリズムを代えろ。
0360デフォルトの名無しさん2005/06/03(金) 15:27:03
>358
仰るとおりでコピーコンストラクタの部分でした
03613562005/06/03(金) 18:27:21
>>359
ソートのアルゴリズムっていっても
バケツが早いとおもうんだが、クイック、バブル、2分どれもだめだとおもう。
他にあるならおしえてくれ
0362デフォルトの名無しさん2005/06/03(金) 18:59:50
例えば50頂点のモデルがあったとして、
途中で53頂点と3頂点追加したい場合はどういう風にすればいいのでしょうか?
全部最初から頂点バッファを作り直さないで、
バッファのサイズを変更して3頂点だけ追加したいのです。
0363デフォルトの名無しさん2005/06/03(金) 19:39:15
⊃DrawPrimitiveUP
0364デフォルトの名無しさん2005/06/03(金) 23:24:01
>>362
頂点インデックスとか法線とかどうすんの?
03653622005/06/03(金) 23:55:03
DrawPrimitiveUP+std::vectorで出来ました
でも数万ポリゴンのモデルだとOpenGLより明らかに描画速度が遅いです
0366デフォルトの名無しさん2005/06/04(土) 00:01:18
内部で作り直しが行われていようと、
自分が見えないところでやる分には構わないのか。
馬鹿の考えることはさっぱり分からん。
0367左利き2005/06/04(土) 00:09:28
すいません、
DirectXとの質問とは違いますが、

VideoCaptureの列挙子が記述されている
レジストリのある場所を知っている人はいませんか?

DirectXを使ったライブラリを使っているのですが、
そのライブラリは
VideoCaptureが2つあってもデフォルトのほうしか使えないので、
レジストリでデフォルトの設定を変えたいのです。

お願いしますm(_ _)m
0368デフォルトの名無しさん2005/06/04(土) 00:14:16
一つの軸による回転のみの行列から角度を得ることは
容易に出来そうですが、
任意軸による回転行列から角度を得ることは可能でしょうか?
0369デフォルトの名無しさん2005/06/04(土) 00:19:30
角度を得るのは簡単だが、答えが複数あるというだけの話。
0370デフォルトの名無しさん2005/06/04(土) 01:28:59
>>369
thanks
0371デフォルトの名無しさん2005/06/04(土) 01:48:42
>おれなんか未だに固定少数でニュートン法で平方根求めてます。

_mm_sqrt_ps使うか、_mm_rsqrt_psで逆数求めて_mm_rcp_psで逆数にすると
平方根が4ついっぺんに求められる。精度低い代わりに速い。
0372デフォルトの名無しさん2005/06/04(土) 07:58:31
質問のフリ荒らし:書くことはないがスレの流れが気になって仕方なく
          とりあえずスレ違いにはならないとおもわれる範囲で
          質問・同意を得る形式でレスをすること。
          答えがどうあろうとレス稼ぎが問題なので単発で終わることが多い。
0373デフォルトの名無しさん2005/06/04(土) 11:19:30
DirectShowを使って、複数の静止画からaviファイルを作成するにはどうしたらよいのでしょうか?
0374デフォルトの名無しさん2005/06/04(土) 12:08:16
まずプログラムを書く。
0375デフォルトの名無しさん2005/06/04(土) 12:15:15
DirectPlayが廃止されるそうですが次はIndigoですか?
それとも別のなにか?
0376デフォルトの名無しさん2005/06/04(土) 12:35:55
WinSock
0377デフォルトの名無しさん2005/06/04(土) 13:01:27
>>374
そんな意地悪言わずに教えてくだすれ
0378デフォルトの名無しさん2005/06/04(土) 13:30:43
キーボードを叩く。
0379デフォルトの名無しさん2005/06/04(土) 13:38:34
>>377
多分>>374は解からないから誤魔化すようなレスしてるだけ
0380デフォルトの名無しさん2005/06/04(土) 13:41:58
指の筋肉を動かす。
0381デフォルトの名無しさん2005/06/04(土) 14:08:13
マジレスすると、まず検索サイトで調べる。
0382デフォルトの名無しさん2005/06/04(土) 14:20:40
>>373
マルチいくない。
DirectShowスレで回答もらってんだから、こっちはもう終わり。
0383デフォルトの名無しさん2005/06/04(土) 17:01:28
マルチ投稿見つけたら回答しないようにしましょう。
場合によっては少し叩いてやりましょう。
0384デフォルトの名無しさん2005/06/05(日) 14:58:21
Direct3D9: (ERROR) :Memory still allocated! Alloc count = 98
系のエラーってどうやって解決するんですか?

ttp://64.233.187.104/search?q=cache:31PVzUOwFSYJ:fkaine.hp.infoseek.co.jp/cgi-bin/webnews.cgi/yaneSDK%3Fmode%3Dthview%26thtop%3D1648+Memory+still+allocated!++Alloc+count&hl=ja&lr=lang_ja

を読んでみましたが解決策が解らないので質問させていただきました
0385デフォルトの名無しさん2005/06/05(日) 15:28:04
メモリリークしてるから
Release() し忘れてるところを探すといいよ。

あと、Alloc ID ってのが出てるはずだから、
Dxコンパネで Break On AllocID にその値を指定すると
幸せになれるかもしれない。
0386デフォルトの名無しさん2005/06/05(日) 16:36:13
vector a(1,0,0) と vector b(0,0,1)で
外積を求めたら(0,-1,0)になりますが、
外積は右ねじっていいますが、違うんじゃ
0387デフォルトの名無しさん2005/06/05(日) 16:52:12
左手座標系なら左手の法則だよ
0388デフォルトの名無しさん2005/06/05(日) 16:52:49
>>385 �dクス いけました
Break On AllocIDに値を入れてブレークしてくれたけど アセンブラわがんねorz
0389デフォルトの名無しさん2005/06/05(日) 16:54:14
ずっと騙されてた。何故、今まで上手くいってたのだろう。
0390デフォルトの名無しさん2005/06/05(日) 16:59:25
>>388
ステップアウトするんだ。
0391402005/06/05(日) 17:09:48
なにげにおいらも幸せになれたわー
0392デフォルトの名無しさん2005/06/05(日) 22:46:12
質問です。

簡単なゲームを作ってみようと思い、DirectXを始めてみました。
とりあえずwebにあったものを組み合わせてビルドしてみたのですが、
リンクするときに、
「dinput8.lib(dilib2.obj) : fatal error LNK1103: デバッグ情報が壊れています; モジュールを再コンパイルしてください
link.exe の実行エラー」
と出てしまって、ビルドが完了できません。

dinput8.libを作り直せば良いのかと思ったんですが、ソースが見当たりません。
どうすればいいのでしょうか?
また、同じような状況になった方はいらっしゃいませんか?

よろしくお願いします。
03933922005/06/05(日) 22:50:33
書き忘れましたが、SDKは9.0c(2005April)、開発環境はVisual C++ 6.0です。
0394デフォルトの名無しさん2005/06/05(日) 22:58:03
まずはリリースノートを読みましょう。
そこに全て書かれています。
0395デフォルトの名無しさん2005/06/05(日) 23:26:27
DirectX以前の問題なのにね
03963922005/06/06(月) 01:06:10
>>394
>>395

お返事ありがとうございます。
解決しました。
デバッグ情報作れないんだったら、作んなきゃいい話なんすね。
DirectXの問題どころか、IDEの扱いかたっつーか日本語が読めていませんでした....orz

で、ちょっと気になったんですが、これってリリースノートに書いてあるんですか?
自分が見た限りでは見つけられなかったんですが....
0397デフォルトの名無しさん2005/06/06(月) 01:20:55
リリースノートを見ろ。
話はそれからだ。
0398デフォルトの名無しさん2005/06/06(月) 01:29:52
ここは日本語が通じないインターネットですね
0399デフォルトの名無しさん2005/06/06(月) 01:50:19
>>398
あんまりくだらない質問ばかりする初心者&人を見下す態度を取る返答者の争いが
絶えないのでとうとうスクリプトになってしまいました。
ちょっと使い難いかもしれませんが我慢してください。
0400デフォルトの名無しさん2005/06/06(月) 03:44:14
>>399
初心者スレで初心者なりの質問がきて、「くだらない質問」などと言ってんじゃない。

>人を見下す態度を取る返答者

まさしくおまえのことだ。
0401デフォルトの名無しさん2005/06/06(月) 05:24:23
>>400
ここは日本語が通じないインターネットですね
0402デフォルトの名無しさん2005/06/06(月) 05:41:05
最近は質問する側の態度もでかいのが気に入らないな。
ホントにこんな質問してる奴が俺等に還元するようになるのかねぇ?
とか本気で思う。
ま、絶対、ならねぇだろうな。
0403デフォルトの名無しさん2005/06/06(月) 06:51:49
嫌なら回答しなきゃいいだけ。君が答えなくてもべつの答えたい人が答えてくれる。
初心者相手に見返り期待してないでどうぞ上級者のあなたにお似合いなレベルの高いところへお行きください。
さいなら。
■ このスレッドは過去ログ倉庫に格納されています