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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/12/12(金) 19:39:57 ]
前スレはカスしか居ないので廃棄の方向で。

※回答する人も、質問する人も必ず読んでください

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

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

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


266 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 02:37:03 ]
PIX って便利だね。

初めて知った。

267 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 03:04:02 ]
まるぺけの最小コードを動かしてみて、猫でもも読んで、MSDNで確かめて、
ウィンドウが作れたのが1年半前
今では立派なサンデーコピペプログラマですw
まー、APIスレの範疇なのかな

268 名前:デフォルトの名無しさん [2009/01/24(土) 03:41:14 ]
ビルボードの縮小に、Lanczos フィルタとか使えない?

269 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 03:43:28 ]
mipmap

270 名前:258 [2009/01/24(土) 04:11:48 ]
>>261,262
Unicode非サポートなんですわ。

>>263
つまり、2バイト文字非対応ってこと?

仕方がないので、古いIDirectXFile系のインターフェース使ったら、
2バイト文字でも書き込めたけど、
今度は配列に配列いれたら(2次元配列という意味ではない)、
ちゃんと書き込めるのに、
読んだとき外側の配列が全て始めのデータで同じになってしまう…

なんでこんなに挙動変なんだ…
動作確認しないなら、カスタムテンプレートなんか作るなよ…

271 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 08:49:19 ]
拡張するなら自前のフォーマットを作れって話ですわ。

272 名前:デフォルトの名無しさん [2009/01/24(土) 19:35:54 ]
>>271
そらそうですわな…

273 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 19:38:46 ]
DirectXを最初から勉強するにあたってこれだけは読んどけって本ない?

274 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:38:18 ]
SDKのヘルプ



275 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 20:59:16 ]
>>273
高額社の本でもよんどけ。
全く使えないというほどひどくもないから。

シェーダーにHLSLを使ってないのが時代遅れだが
インフィニティの本はそれなりの質だと思う。

276 名前:デフォルトの名無しさん mailto:sage [2009/01/24(土) 21:49:16 ]
サンクス!
早速注文してくるわ

277 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:17:42 ]
SPRITEでの移動は画面のサイズが単位ですか?
800*600や1024*768など

278 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:19:57 ]
DirectXにSPRITEなど存在しない

279 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 12:31:21 ]
Spriteです
すいません

280 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:48:27 ]
DirectXにSpriteなど存在しない

281 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 13:51:33 ]
正直初心者って最初はソース見れるライブラリで何か作ってみて、
そのあとライブラリの中を調べながら学習していくのがベストだと思う。

282 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 17:58:01 ]
DirectSoundCaptureBuffer8でバッファのロック後データの移動をしたいんですが
これロックしたらデータ書き込めなくないですか?
2つバッファ作って一方に書き込み、一方をデータ移行、で繰り返すならわかるんですが、
もしかして、次の書き込みが来る前にアンロックできないと音飛びする仕組みなんですか?

283 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:04:24 ]
>>282
ストリーム再生なら次の再生位置に来る前の書き込み終わってなきゃ
どう考えても音飛びするだろ。

そもそもストリームのバッファ内でのデータの移動なんて意味不明なことをなんでするんじゃ。

284 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:24:36 ]
ループスタートでキャプチャをしてバッファの一周したら動的メモリに書き込みを繰り返すと
ヘルプに書いてあるんですが、ロックした
あーすいません。lockのパラメータとしてサイズの指定がありました。バッファ全体をロックするのかと思いました
すいませんでした!



285 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:36:55 ]
「タスクシステム」でググって出てきた本全部買っとけ

286 名前:デフォルトの名無しさん mailto:sage [2009/01/25(日) 18:53:12 ]
books.google.co.jp/books?q=%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0&lr=lang_ja

287 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 00:14:57 ]
IUnknown派生のAddRef, Release両関数にはアトミック性はありませんか?
代入などコピー時に参照数を加増したいのですが、自前で管理したほうがいいのかな。

288 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 09:11:44 ]
マルチスレッド下ではInterlock系APIによって保護されている
らしい
てか、そこを疑ったらCOMを使ったプログラムは
全てスレッドセーフではないことになってしまう

289 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 10:05:55 ]
テクスチャをWrapで繰り返し表示させると負荷が高いって聞いたんですが、これって本当ですか?

290 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 10:47:09 ]
何と比較しての話なのかも明示せず、本当なのかもへったくれもないだろ。
どれだけ能無しなんだよ?

291 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 11:02:36 ]
まぁそういう現象の起きるハードウェアは実際に結構あるので
Wrapに頼る設計はWindowsではやらん方がいいね

一応言っとくが、↓でマップチップ使う使わないのケンカは禁止な

292 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 21:05:58 ]
↑てめーがな

293 名前:デフォルトの名無しさん mailto:sage [2009/01/26(月) 23:35:29 ]
PIX for Windowsを使ってフレームの情報をキャプチャしようとしているのですが、
自分で書いたプログラムを起動すると、"PIX Experiment File Version Mismatch" というエラーのようなものが出て、キャプチャが出来ません。
このエラーは何が原因なのでしょうか?
DirectX SDKのバージョンは August 2007 です。

DirectXのサンプルをコンパイルしたものは上記のエラーは出ずに正常に動作して、キャプチャも出来ます。

294 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 00:08:54 ]
>>293
ファイルパスに全角文字があるとダメな場合があるわよ。



295 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 00:37:53 ]
>>294
実行ファイルをドライブのルートに置いて試したところ、正常に動作しました
ありがとうございました

296 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 02:34:41 ]
HLSLを使って描画したいんですが、IDirect3DDevice9::CreateVertexShader メソッドの引数の
const DWORD *pFunction,
[in] 頂点シェーダ機能トークン配列へのポインタ。このパラメータでは、各頂点に適用する処理を定義する。
の意味がよくわからないんですけど、いったい結局何を渡せばいいんでしょう?

297 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 06:15:44 ]
>>289
めちゃくちゃ重い
uvの値を5,6・・・10,11,
って上げるほど恐ろしく重くなる
っていうかいくつかのPCでやってみろよ
少なくとも自分の環境でやって報告しろ
すぐにわかる

>>290
知らないなら黙ってろよ
ためしたことあるやつならわかる

298 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 06:43:29 ]
>>296
msdn.microsoft.com/ja-jp/directx/cc917744.aspx

>>297
試してみたけど別に何も変わらん
GeForce7900GT
GeForce 8600 GT
Quadro FX 3700

てか、別に全ての環境で落ちるわけじゃなくて
落ちる場合もあるのでそれに頼るのは止めようねって流れだろ?
なんか前にも同じ事書いてスルーされて切れてた奴と同じ匂いがする

299 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 08:28:42 ]
>>288
明らかに古いごみドライバ使ってるとか
いんてるwのオンボードとかの話なら論外だぞ。

自前でソフトレンダラー組んだことあれば分かるが
WRAPのアルゴリズムは&演算1個だからどう考えても重くなりようがない。

300 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 08:32:22 ]
ソースのピクセル量が増えて負荷が増えるだけなんだから、
それで遅くなるビデオカードならwrapしようが、
パターンを敷き詰めてた大きなテクスチャを使おうが、
同じように遅くなるだけ。

301 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 08:44:31 ]
>>300
テクスチャキャッシュのキャッシュミスか・・・。
つーかそれならよほどデカイテクスチャ使ってるか
貧相なグラボつかってるかのどっちかだな。

302 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 10:30:28 ]
描画サイズが変わらないなら
何回wrapしても
ソースのピクセル量は変わらないし
サンプリング回数も変わらないし
フィルレートも変わらないと思うんだけど
もしかして何か別の話してる?

303 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:05:03 ]
wrapするかしないかの話をしているんだろ。
wrapせず描画色が決定して範囲外を単一カラーで塗りつぶす処理と、
何度もパターンを敷き詰める処理、当然前者の方が軽くなるというだけの話。

304 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:10:44 ]
塗りつぶしてる時点でコストは一緒でそ



305 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:38:31 ]
全然違うぞ。
どれだけ頭が悪いんだ?

306 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:42:35 ]
>>304
ミップマップ計算で重くなるという話ならこの辺に出てるね。

ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4245145&SiteID=7

307 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 12:44:41 ]
とりあえずWrapの定義をはっきりさせようぜ

1、テクスチャ・アドレッシング・モード
(D3DSAMP_ADDRESSxのD3DTADDRESS_WRAP)

2、テクスチャ・ラッピング・モード
(D3DRS_WRAPxのD3DWRAP_x)

3、それ以外の何か

308 名前:306 mailto:sage [2009/01/27(火) 12:47:18 ]
さっきの書き方だと語弊があるか。

ミップマップを作っていない場合に極端に遅くなったって話ならここにでてる。
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4245145&SiteID=7

309 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:46:26 ]
なんかWrapを
スタンプみたいに敷き詰めてると勘違いしてるお馬鹿さんが混じってない?
単なるテクスチャ座標の扱いの違いだろ

310 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 14:55:25 ]

一番馬鹿

311 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:08:04 ]
UVが0-1の範囲を超えていたらスタンプのようになるし、
Wrapが設定されていなければ境界色なりで塗りつぶされる。

312 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:13:56 ]
違うだろう
結果的にスタンプになるだけで
やってることは
たとえば(u,v)=(2.5,3.8)を(u,v)=(0.5,0.8)
としてサンプリングしてるだけだ

313 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:18:19 ]
Windows via C/C++みたいなコンセプトがわかる書籍ってありますか?
ここにいる人は詳しそうなのでどういったもので勉強しているのか教えてください。

314 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:42:08 ]
DirectXのコンセプト?



315 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 15:57:49 ]
>>312
繰り返しにならなければ範囲外の色が決定できるんだから、
そのぶんの読み出しコストが無くなるだろ。
もう頭が悪いのは仕方がないから、せめて自分で塗りつぶし処理を書いてみろよ。

316 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:08:18 ]
話噛み合ってねーーー!!

317 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:38:49 ]
第三者だが噛み合ってなさ過ぎワロタ

318 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 16:54:24 ]
だれか助けてやれよw

319 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:03:03 ]
たとえばスクリーン上の100x100の領域に描画するとしましょう
この描画はどこで行っているかというとピクセルシェーダです
自分で塗りつぶし処理を書く必要はありませんね
以下が最小のテクスチャ付きピクセルシェーダです
固定機能パイプラインであっても見えていないだけで似たような処理をしています
float4 PixScene( float4 Diffuse : COLOR0,float2 Tex0 : TEXCOORD0 ) : COLOR0
{
 return tex2D( g_Texture, Tex0 ) * Diffuse;
}
これは、アドレッシングモードが違ってもまったく同じものが
ピクセルの数だけ、つまり100x100=10000回呼び出されます
たとえ広範囲に同じ色が固まっていっても関係ありません、どのモードでも1フレームあたり10000回です
ここでピクセルシェーダーの中をみてみましょう
tex2Dとはg_Texture(テクスチャです。ここでは256x256のテクスチャを既にセットしてあるとします)
のTex0(uv座標、頂点シェーダで計算済み)の色をサンプリングしてくれる関数と考えてください
例えば、Tex0.x=0.25、Tex0.y=0.5だったときはフィルタリングの状況にもよりますが
テクスチャの(64, 128)ドットの位置の色を返します
この色とDiffuse(ポリゴンの色、頂点シェーダで計算済み)を合成して最終的に塗りつぶす色を決定しています。
アドレッシングモードの違いはTex0の値が0.0〜1.0を超えたときのtex2Dの挙動を決定します
Tex0.x=1.25、Tex0.y=1.5だったとしましょう
CLAMPでは0.0以下であれば0.0、1.0以上であれば1.0として扱います
つまりTex0.x=1.0 Tex0.y=1.0と同じ色、テクスチャの(256, 256)ドットの位置の色を返します
WRAPでははみ出た分は巻き戻って計算します
つまりTex0.x=0.25、Tex0.y=0.5と同じ色、テクスチャの(64, 128)ドットの位置の色を返します
当然では在りますが、PIXで処理時間を計測しても両者に差異は見当たりません

320 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:06:21 ]
そういえば
nVidia系のボードだと
同じ処理を固定機能で書いた場合とシェーダーで書いた場合で
結構処理速度に違いがでるんだけど
ATI系だとほとんど差がでないんだけどこれって何でだろう?

321 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:33:15 ]
>>319
恥の上塗りをしてるだけだからやめとけって……

>>320
どっちの方向に違いが出るのよ?

322 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 19:23:04 ]
>>306,308
これだ

GeForce8300Gsでも激重になる現象確認
>>306,308の対応をしたら直った

というわけでmipmapに気をつけないと糞重くなります

323 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 20:39:27 ]
今まで気をつけていなかった方が逆に不思議なんだが。

324 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 20:43:10 ]
>>323
そこまでいうほどじゃねぇと思うな
俺なんか全く知らなかったしw



325 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:42:40 ]
なんでミップマップ使うと軽くなるか分かってないんだろうな・・・

float4 PixScene( float4 Diffuse : COLOR0,float2 Tex0 : TEXCOORD0 ) : COLOR0
{
 return tex2D( g_Texture, Tex0 ) * Diffuse;
}

このソースで速度が上下するのはtex2D()の部分。
テクスチャが大きすぎてキャッシュに乗らない場合は1サンプルごとに
メモリからの読み込みで帯域を食ってしまうが、キャッシュに乗るくらい
小さければキャッシュからの読み出しができるので大変高速に読み出せる。
ミップマップを使うと過剰なサンプリングを回避できる。

命令数と描画ピクセル数だけでは速度は決まらない。

テクスチャサイズが256x256で、-2.5をサンプリングしたら
-640&(256-1)の計算でサンプルピクセルが出る。
この計算がどの程度重いかは考えてくれ。

326 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:50:23 ]
でかいテクスチャを使うと重くなる理由がキャッシュだけしか思いつかない馬鹿が、
知ったかを晒す悲しいスレ。

327 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:59:58 ]
素直に感心した。なるほどな

328 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 22:12:57 ]
>>325
おおー
俺も理解できた
すごいね

329 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:36:16 ]
なんで、ATI系はおそくならないの?
多少大きいテクスチャを参照したぐらいで
露骨に性能減するって、しょぼい木がするけど
そんなもんなの?

330 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 23:40:02 ]
>>329
前、Radeon9600proもってたけど
遅くなった気がするけどな

331 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 00:13:01 ]
ドライバーのバージョンによっても変わるし、
実際のゲームだと描画するたびにテクスチャ切り替えとか
複数のテクスチャを1度の参照したりとかで重くなったりするから、
正確に何が重くなってるか測らないとあかん。


332 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 05:57:00 ]
>>331
変わるか?
あんまり大差ないよ

333 名前:デフォルトの名無しさん [2009/01/28(水) 13:12:45 ]
同次座標(D3DFVF_XYZRHW)での表示はビルボードと同じ効果が得られますか?

334 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 13:18:27 ]
はい



335 名前:デフォルトの名無しさん [2009/01/28(水) 13:29:32 ]
>>334 ありがとうございます

336 名前:デフォルトの名無しさん [2009/01/28(水) 16:36:54 ]
まぁそういう現象の起きるハードウェアは実際に結構あるので
Wrapに頼る設計はWindowsではやらん方がいいね

337 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:23:38 ]
XFileでアニメーションを実装するのとObjファイルを書きだしてモーションパスでアニメーションを実装するのはどちらがいいですか?

XFileは簡単だけど処理が重いと聞きました

この2つならどちらがいいかアドバイスお願いします

338 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 21:41:32 ]
ファイル形式が違うだけで処理の重さは処理を作るやつ次第だと思うが・・・

339 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 07:15:44 ]
Xファイルは処理が重いって言うより、単純にアニメーション再生させるなら簡単だけど
それ以上のことをやろうとすると難しいっていう感じだな

340 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 07:19:50 ]
>> 339

なるほど 例えばOBBで衝突判定をしたりとかですか?

341 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 07:27:22 ]
>>337
objファイルでアニメーションしたほうが何かといいよ

342 名前:デフォルトの名無しさん [2009/01/29(木) 15:54:56 ]
up2.viploader.net/pic3/src/vl2_094953.jpg
これだろ

343 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 16:27:31 ]
半透明のポリゴンを持つメッシュを表示したいんですが
普通に描画すると、半透明ポリゴンを先に描画してしまった時に後ろのポリゴンが表示されない場合があると思うんですが
どうすればいいでしょうか?

344 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 17:02:21 ]
Zバッファ法の限界なのでどうにもならない
半透明ポリゴンは最後に書き込む何らかの仕組みが必要



345 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:37:16 ]
ttp://www.hsjp.net/upload/src/up57929.jpg
販促チラシ


346 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:48:17 ]
ここんとこずっと朝から晩まで本見たりネット見たりしているのにいまだに画面に何か出すことすら出来ない

347 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 20:54:56 ]
Javaでもやれば?手っ取り早いし、それなりに実用的だぞ

348 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 22:42:13 ]
DirectMusic8で音鳴らしてるんだが
エラーでないのに音が鳴らないときとかあって困る

DirectMusicLoaderは1つしか使うなっていうから
1つしか使わないようにコードかえたが
やっぱり音が鳴らないときがある

349 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 22:49:49 ]
>>346
だせぇなゆとりにもほどがある

350 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:02:52 ]
>>348MIDI?WAV?そもそもキミのPCは正常に音は再生できてるのかい?

351 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:11:26 ]
>>349
みんなできててすげーな
これでも高校のとき成績は理系でトップクラスだったんだぞ

352 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:18:12 ]
>>351
ケツからだろ
夢みんな

353 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:32:02 ]
そもそも発想がイケてない
画面に何か出てるサンプルからみろよ

っていうかそこまでアフォならちょっとしたゲームを作れる入門書から買ったほうが速いだろ?
VCとかDirectXとかもうダウンロードしてきたのか?

354 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:37:27 ]
VC++もSDKももうある
サンプルを改変して.xを表示することくらいはできた
自分で1から作ることができない。"概念"さえ掴めばパッパといける気はするが



355 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:41:07 ]
>>350
WAV 正常に再生できてるよ
DirectSoundのサンプルはちゃんと再生されるけど
DirectMusicのサンプルは再生されないときがある
ワケワカラン
おとなしくDirectSound使いたいところだが
SDKのVerがアレなので(ry


>>346
WIN32APIプログラムとかの入門をとばして
いきなりDirectXの入門書を見てたりしないか?


356 名前:デフォルトの名無しさん mailto:sage [2009/01/29(木) 23:52:36 ]
>>354
なんだできてんじゃん

>自分で1から作ることができない
1からってどういうこと?
なにもみないで書くって意味だったら10年やってる俺でも無理だ
テキトーに必要なもんかき集めてぺたぺた貼って動かすぐらいならできるがな
初期化処理の書き方なんてその時代時代でやることかわるし
大事なのはサンプル理解して応用していける力なので
そういう自分で・・・っていうのは必要ない
まずはなんでもいいからゲームを作ってみろ
それ以外のことは無駄だから考えるな
そうだ、テトリス作れ3Dテトリスな(ゲーム的には2Dの)ハイ決定さっさと作れ

357 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 00:31:25 ]
頭が悪い奴って勉強頑張れるらしい

358 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 03:52:30 ]
ID3DXSpriteはIDirect3DDevice9のように2つのテクスチャを合成してから表示させたり出来ないんでしょうか?

359 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:18:22 ]
質問です
Direct3Dで線分を描画したいんですけど、どうすればいいんでしょうか?

360 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:23:30 ]
これはググレカスといわざるを得ない

361 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:31:36 ]
DrawPrimitiveで引数にLINELIST

362 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 19:58:38 ]
なるほど、DrawPrimitiveでできたんですね
ありがとうございました

363 名前:デフォルトの名無しさん [2009/01/30(金) 23:00:59 ]
DirectXのプロジェクトってユニコードビルドにしないとだめなのでしょうか、
単にデフォルトがそうなっているだけなのでしょうか?
チュートリアルのプロジェクトがデフォルトがユニコードになってます。

364 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 23:15:07 ]
サンプルフレームワークのDXUTがUnicodeビルド前提ってだけだ。
DirectX SDK使う分にはどっちでもいいよ。



365 名前:デフォルトの名無しさん [2009/01/31(土) 01:40:58 ]
トンクス!

366 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:19:59 ]
中国人ですらこれ位作れるのにお前らときたら

ttp://www.amazon.cn/mn/detailApp?qid=1232375855&ref=SR&sr=13-1&uid=168-9317868-9331419&prodid=pcgm812027

367 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:33:34 ]
画面にピクセル単位で指定して描画したのですが

D3DFVF_XYZRHWで描画したポリゴンではできるのですか?

368 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:38:10 ]
画面にピクセル単位で指定して描画したいのですが

D3DFVF_XYZRHWで描画したポリゴンではできるのですか?

訂正ですすいません

369 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:40:31 ]
>>366
ただのBitBltじゃん

370 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 18:45:50 ]
既に描画したポリゴンでできるのかと聞かれても、よくわからない。
D3DFVF_XYZRHWを使って作った頂点バッファだったら簡単にできると思う。

>>369
どういうこと?話が見えないんだけれども

371 名前:368 mailto:sage [2009/01/31(土) 18:50:16 ]
>>370

レスありがとうございます

とりあえずやってみます><

372 名前:371 mailto:sage [2009/01/31(土) 20:13:11 ]
タイトル画面を表示させようと思い試しに作ってみました

appleloader.bbsnow.net/pic_loader/nomal/html/4441.html

上の画像は512*512のテクスチャをD3DFVF_XYZRHWを使って作ったポリゴンに貼り付けて
表示させたやつです

下の画像は1024*768のテクスチャを・・・

512*512のほうは正常に描画されるのですが1024*768のほうは変になってしまいます

これはDirectXが2のべき乗の大きさのテクスチャしかサポート?していないからですか?
他に理由あったら指摘お願いします

373 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:17:52 ]
なんで1024×1024で試してみてから質問しないのですか?

374 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:23:01 ]
>>373

1024*1024で貼り付けてUVで調整したら解決しました

お手数掛けて申し訳ありません



375 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:23:34 ]
テクスチャの画像はどうやって作ってるの?
それのために呼び出したAPIを全部調べたの?

376 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:30:33 ]
D3DXCreateTextureFromFileEx です

API調べてませんでした

次から調べてから質問します 申し訳ございません

377 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 22:02:43 ]
DirectXに、次はねぇ・・・

378 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:09:12 ]
if(diks[DIK_UP] & 0x80) {
m_dir = FOR;
Sleep(500);
}
DirectInputでキーボードから入力値を取得しています
Sleep()を抜くととてつもない速さでカーソルが移動してしまいます
Sleep()を使うとほかの処理も止まってしまうので
他の処理をとめないで同じようなことできる方法ありませんか?

379 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 23:50:11 ]
押しっ放しじゃなくて
押した瞬間だけ検出するようにしろよ

380 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:24:16 ]
>>378
マルチ

381 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:41:44 ]
D3DPRESENT_PARAMETERSのPresentationIntervalをD3DPRESENT_INTERVAL_ONE
にするとリフレッシュレートに勝手にあわせてPresentが行われまする。
普通1フレーム当たり1/60秒になるので、待たせたい秒数になるように
フレーム数をカウントして、一定数ごとにカーソルを移動とかじゃだめ?
間抜けな回答してたらどうしよう・・・。

382 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:11:24 ]
>>381
SDKのサンプルみろ
それが一番速い
設定選べるようになってるサンプルあるだろ?

383 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:13:23 ]
> 普通1フレーム当たり1/60秒になるので、

とはかぎらない。

384 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:16:10 ]
まあ、だいたい液晶だからなるっちゃなるなw



385 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:17:04 ]
よくいるよね、一般的な例の話をしてるのに特殊な例を持ち出してこれは違う!って言う奴。
そんなことは百も承知だってのに。 そんなに自分が物知りだってひけらかしたいのかね。

386 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:29:04 ]
www-06.ibm.com/jp/domino04/pc/support/Sylphd03.nsf/jtechinfo/SYJ0-02925C4


387 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:30:52 ]
>>386
>>385を読めばそれが反論になってないことは理解できるだろ、馬鹿?

388 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:49:27 ]
お前らよくこんなカス共の質問に回答してやれるなw

389 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 04:52:54 ]
そもそもマルチだしな。

390 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 07:07:06 ]
60にすると具合悪い事はままある

391 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:17:41 ]
V-Syncって普通自前でやるのかな?

392 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:07:32 ]
>>382の言ってるサンプルがどれかわかんなかったw
よく調べたらうちのはディスプレイモードによってリフレッシュ
レートが56〜75の間で4種類くらいあるから、フレーム数決め打ち
だと環境によって変わっちゃうなあ。>>386は50Hzだったし。
QueryPerformanceCounterとかからミリ秒算出して、前のカーソル
移動時の時間と比べて一定時間たったら再実行とか。だめ?だめ?

393 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:09:49 ]
液晶でも最近のフルHDのTVにつなぐとデフォが24Hzになったりするしな。

394 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:24:32 ]
QueryPerformance系使うくらいならtimeGetTime()の方が制約が少なくてらくだけどね
どうせミリ秒単位を扱うわけだし



395 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:30:29 ]
DirectXのVSyみそなんかリフレッシュレートっぽい
時間でウェイトかけてるだけだから。
ゲーム機の実Vクロックでループ回すのとはわけが違う。

396 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:32:20 ]
>>395
タイマでウェイトかけるのはウインドウモードのときだけだよ。

397 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:37:00 ]
>>392
>サンプルがどれかわかんなかったw
全部見ろよ

398 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:38:53 ]
サンプル連呼されても初心者にはわからんものだよ
頭の固い奴にはそれがわからんのです

399 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:39:41 ]
ゲームで複数のXFileを読み込むときのロード時間が気になっているのですが
これを高速化したりするのは可能でしょうか?

ネットで調べたところ、一度DirectXの「Xファイル読み込み関数」で
ロードしておいたメッシュデータをバイナリで保存して、次回起動時に
そのデータを直接読み込むという手段を取られていた方がいるのですが
具体的にどうやるのでしょうか?また、本当に早くなるのでしょうか?

D3DXLoadMeshHierarchyFromXなどのXファイルロードルーチンはそのマシン
で描画が早くなるようにロードしたメッシュを最適化しているという
話を聞いたことがあるので、このやり方で本当にロードが早くなるのか
心配です・・・。

どなたかXFILEのロードの高速化について詳しい人がいたらアドバイスを
お願いします。

400 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:36:01 ]
どれだけ速くなるかは知らないけど
頂点バッファとインデックスバッファ、あと属性テーブルみたいなの取得すればいいじゃん

401 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 04:57:21 ]
>400
ありがとうございます、階層化されたメッシュの場合にかなり面倒そうですが
今度の週末にでも一度組んでみようと思います。

402 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:55:43 ]
>>401
最近その問題(遅い)にぶちあたったが、遅いのはアニメーションのロードだった
アニメーションのロードだけ自前でやるのお勧め
メッシュのロードはそこそこに早かったよ

403 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:21:39 ]
カメラの回転での質問です。

横回転は問題ないのですが、縦回転すると90度を超えると
急に視界が反転してしまいます。

90度になったらD3DXMatrixLookAtLHのpUpを逆方向にすると
縦回転だけする場合は良いのですが、
少しでも縦回転した状態で横回転すると、視点がぐるぐる
変に回ってしまいます。
どうすれば良いでしょうか?

404 名前:403 mailto:sage [2009/02/03(火) 00:32:03 ]
すいません
横回転が加わっている状態で縦回転すると、でした。
横回転はどの場合でも普通に回転してくれます。



405 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:12:25 ]
まわす順番がおかしいんじゃねーの?
とりあえずその部分のコード貼れや


406 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 02:39:51 ]
D3DXMatrixLookAtLHの引数で回転するんじゃなくて
注視点を原点とするカメラのローカル姿勢を回転させて
そこからビュー行列を逆算すればおk

407 名前:403 mailto:sage [2009/02/03(火) 06:23:07 ]
>>406
すいません具体的にどのようにすれば良いでしょうか?
今現在は

D3DXMatrixRotationX(&mat, g_CameraAngle.x);
D3DXVec3TransformCoord(&g_Camera.vecEyePt, &g_Camera.vecEyePt, &mat);

という感じでカメラの座標を変換してから

D3DXMatrixLookAtLH(&matView, &vecEyePt, &vecLookatPt, &vecUpVec);
pDevice->SetTransform(D3DTS_VIEW, &matView);

でカメラ位置を変更しています。

408 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 11:04:16 ]
// カメラの初期姿勢(視点(0,0,-10)、注視点(0,0,0)の場合)(変更しないで保持する)
const D3DXVECTOR4 vecEyePt(0,0,-10,1) ;
const D3DXVECTOR4 vecLookatPt(0,0,0,1) ;
const D3DXVECTOR4 vecUpVec(0,1,0,0) ;//ここだけw成分が0であることに注意(回転のみ反映)

// 初期姿勢からどれくらい移動したいかの行列
// 回転だけでなく拡大縮小移動なども合成できる
D3DXMatrixRotationY(&mat, g_CameraAngle.y);

D3DXVECTOR4 Eye, Look, Up
D3DXVec4Transform ( &Eye, &vecEyePt, &mat ) ;
D3DXVec4Transform ( &Look,&vecLookatPt, &mat ) ;
D3DXVec4Transform ( &Up, &vecUpVec, &mat ) ;

D3DXMatrixLookAtLH(&matView, (D3DXVECTOR3*)&Eye, (D3DXVECTOR3*)&Look, (D3DXVECTOR3*)&Up);


もうちょっとスマートなやり方あるけどそれは少し考えればわかるよね

409 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:17:31 ]
最初はスマートなやりかたより理解しやすさを追求すればいいじゃない

UpVectorが0成分だと気づかなくて
3日くらい悩んでたのを思い出した

410 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:00:34 ]
>402
ありがとうございます、時間が取れたのでアニメーションの書き出しを
試してみたのですが、アニメーションコントローラにアニメーションデータの
実体が見当たりません。

アニメーションデータの実体とサイズはどうやって取得したら
宜しいのでしょうか?

411 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:59:38 ]
>>410
sizeof()じゃだめ?

412 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 05:07:11 ]
Xファイルを読み込むためのD3DXLoadMeshHierarchyFromX関数にて
LPD3DXANIMATIONCONTROLLERというアニメーションコントローラに
値を入れてアニメーションを管理しているんですが、どうもこの
LPD3DXANIMATIONCONTROLLERに実体が無いというかsizeofしても
4の値しか返ってこないんですが・・・。

413 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 05:20:33 ]
C/C++の基礎を勉強したらどうかね?

414 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 08:22:41 ]
DirectXの前のCの本読んだほうがいいなコレは。



415 名前:412 mailto:sage [2009/02/04(水) 09:57:16 ]
日頃の勉強不足を晒してしまい申し訳ございませんでした。
DirectXでゲームを何本か作った事はあるのですが、DirectX側で
保持しているアニメデータを直接いじった経験が無く、ネットで色々
調べてみたのですが、どうにもお手上げな状態です。

アニメデータ等が読み込まれているメモリ配列部分がどこにあるのか
皆目見当がつかないのです。
なにかアドバイス等もらえないでしょうか・・・?

416 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 11:47:54 ]
>>415
頭に LP がついているのは、ポインタだ。
ポインタは(32bitOSなら)4バイトで当然。
あと、アニメーションコントローラーの内部が確保したメモリーに直接アクセスする手段はない。
AnimationSetを取得したり、そこからさらにAnimationを取得したりという間接的な手段でアクセスするべし

あと、AnimationControllerをいじるのはやめたほうがいいぜ。
メモリーリーク含め、バグが多すぎる。
例えば時間0の情報を書き換えると、アニメーションが正常に行われなくなる。
取得したAnimationSetを、他のコントローラーにセットしてもまともに再生されない。
Animationを削除してから追加すると、メモリーリークする。などなど

417 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 12:40:57 ]
ウィンドウの左端を画面外に移動させると画像も画面外から描画されることを期待していたのですが
画面端から表示されてしまいます。
画面外に移動させてもクライアント座標の(0, 0)から描画させるにはどうすればいいのですか?

// これだとウィンドウの左端が画面外に出たときに(0, 0)から描画されない
LPDIRECT3DDEVICE9 pD3Ddev;
pD3Ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 255, 255), 1.0f, 0);
pD3Ddev->BeginScene();
Draw();
D3Ddev->EndScene();
if( FAILED(pD3Ddev->Present(NULL, NULL, m_hWnd, NULL)) )
{
pD3Ddev->Reset(&g_pDirectX->d3dpp);
}



418 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:24:28 ]
つーかアニメデータなんて自分用の形に吐き出して自分で管理クラスつくれよ

419 名前:デフォルトの毛無しさん mailto:sage [2009/02/04(水) 19:49:35 ]
>>417
Presentの引数を全部NULLにするとか。

ごめん、勘で言った。

420 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:46:56 ]
>>417
ウィンドウサイズを変える毎にクライアント領域のサイズに合わせてデバイスを作り直す

421 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:51:39 ]
デスクトップ領域からウィンドウが外れたときの話だと思うが

422 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:56:26 ]
無知発見。

423 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:51:27 ]
>>417
そのソースコピペ?
コピペじゃないならコピペにしてくれ。
他にも書き写しのときにミスがありそう。

ああ、あと、俺の環境では画面からはみ出しても普通にクライアント座標の端っこから描画されるぞ。
はみ出した部分は画面外だから当然見えない。
<環境>
WindowsXP Home Edition SP2
DirectX 9.0c (4.09.0000.0904)
DirectX SDK Novemver 2007
こんぱいら BCC 5.5

424 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:57:09 ]
だからクライアントサイズとデバイスサイズが合ってないとそうなるんだよ



425 名前:403 mailto:sage [2009/02/04(水) 23:06:07 ]
>>408
とても参考になりました
わかりやすいコメントまでつけてくださって
本当にありがとうございます

426 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 07:31:39 ]
DirectinputのDIK_LEFTとかを引数で渡したい場合は

どうやるんですか?

intなら

foo(int i);

foo(??? DIK)

427 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 07:45:17 ]
BYTEでいいんじゃね?
>Dinput.h に定義されているキーボード デバイス定数は、キーボード デバイスの
>データ パケット (256 バイト配列) 内でのオフセットを表す。

428 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 07:52:20 ]
ありがとうございます><

429 名前:412 mailto:sage [2009/02/05(木) 08:21:42 ]
>416
丁寧な解説ありがとうございました。
自前でアニメーションの仕様を0から組むのはあまりにも敷居が高いですし
メモリリークなどが発生してしまうようではどうも面倒の方が多そうですね。

430 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:04:07 ]
現在頂点カラー(0xFFFFFFFF)で描画しているテクスチャを
頂点カラー(0xFF000000)に変更して全く同じように描画、
つまり、テクスチャのポリゴンとの合成方法を加算合成にしたいのですが、
どの設定メソッドを使用すればいいのでしょうか?
ピクセルシェーダを自作すべきなのでしょうか?

431 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:58:25 ]
DirectInputやDirectSoundについて質問です

ゲームループをタイトルとゲームで分けています

タイトルが呼ばれたらインプットデバイス・サウンドデバイスを作る
ゲームが呼ばれたらタイトルを破棄してゲームでインプットデバイス・サウンドデバイスを作る

というやり方でいいでしょうか?

432 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:51:35 ]
>>430
デバイス->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );// 合成元1(テクスチャ)
デバイス->SetTextureStageState( 0,D3DTSS_COLORARG2, D3DTA_DIFFUSE );// 合成元2(頂点カラー)
デバイス->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_ADD );// 合成方法(加算)

433 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:55:41 ]
>>431
タイトルとゲームでウインドウ遷移したりするの?
しないならデバイス作り直さなくてもよくね?
別に作り直ししちゃいけないわけでもないし
そのやりかたでもいいんじゃね?

シーンごとにリソース解放するってならわかるけど
デバイスを無理して作り直す必要はないとは思うけどね

434 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:21:31 ]
>>433

ありがとうございます



435 名前:430 mailto:sage [2009/02/06(金) 13:53:26 ]
>>432
ありがとうございました

436 名前:デフォルトの名無しさん [2009/02/06(金) 16:01:00 ]
最近3Dの勉強を始めた者ですが、質問です。

人間モデルがあったとして、手に別のモデルをくっ付けたい場合は、その座標等を取得する関数のような
モノがあるのでしょうか?

いまいちその辺のスタンダードな取得方法がわからなくて迷走してます。
3Dモデルのノード?に名前をつけれるのでその名前から取得したりするのかなぁと思ったりしてるんですが
どうなんでしょう?

ググッて調べても検索ワードがまずいせいか、その辺がまったくわからなくて…Orz

437 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:06:28 ]
ボーンの座標計算を自前で行えば自由自在

438 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:07:26 ]
一発で座標を取得できるような便利関数は無い
しかし、どんな方法であれアニメーションをさせている限り
ボーンが今現在どんな姿勢をしているかは取得できるはずなので
自力で目的のボーンの変換行列を探せばOk

439 名前:436 [2009/02/06(金) 16:31:55 ]
>>437
>>438
なるほど、モデルじゃなくボーンの方を何らかの方法で調べて
目的の行列が見つかりさえすれば座標が取得できるわけですね。

もやもやした感じが少し晴れました。
その方向で調べてみます。
ありがとうございました。

440 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:48:29 ]
深度バッファの取得方法がよく分からないんだけど
もしかして2回レンダリングするの?

441 名前:デフォルトの名無しさん [2009/02/06(金) 22:08:55 ]
direct X ではベクトルの始点、終点を与えて矢印を引くことできないんだ。。。

(x,y,z)成分が与えられていれば、θ=arctan(y/x)、φ=arctan(z/sqrt(x^2+y^2)
から角度が求められるから、x-Fileで作成した例えばy方向の矢印を順次回転
させて(x,y,z)方向に向ければいいんだろけど(しかし、これもx≒0のときθの
精度が悪くなるからarcsinやarccosに切り替えたり、θが第何象限にあるかを
判定する必要があるから、そう簡単ではない)。

それよりもわからないのは、剛体の3次元運動の角速度は、普通、剛体に固定
された回転座標系ξηζ上で成分表示されている。これをもとに角速度ベクトル、
角運動量ベクトルをワールド座標系上で矢印表示するにはどうしたらいいんだ?

directXの回転変換マトリックスってベクトルを回転してるのか、それとも座標系
を回転してるのか?マトリックスの内容と表示を照らし合わせて確認すればいいが
面倒クセェ。


442 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:34:26 ]
>>440
深度バッファをシェーダで利用したりするのは、DirectX10以降でないとダメ。
それ以前はNVIDIAが独自拡張で別のことに使っていた関係で使えない。

だから9では、MRTで深度値を別のテクスチャに描画して使う。

>>441
なんでいちいちθを求めるんだ。
方向ベクトルがあれば、そこから直接回転行列作ればいいだろう。
ちゃんとベクトルの勉強してたら暗算でできるレベル。

443 名前:デフォルトの名無しさん [2009/02/06(金) 22:51:54 ]
>>442

わかってない。もういい

444 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 23:09:43 ]
>>443
質問文が長すぎる
簡潔にこれがわからないって最初に書け詳細がその後だ



445 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 00:56:22 ]
正直、何が聞きたいのかさっぱり分からないけど
ベクトルからその向きになるような回転行列を作りたいって話なら
ここを参考にすればいいと思うよ

ttp://marupeke296.com/DXG_No47_CharacterDirectionMatrix.html

446 名前:デフォルトの名無しさん [2009/02/07(土) 07:25:07 ]
>>444

お前はひっこんでろ

>>446

ありがとう。

directXには任意の軸方向回りに、ある角度だけ回転した場合の
回転行列を求める関数がある。

なので、X-Fileで作成した初期方向のベクトルaと希望の方向の
ベクトルbの外積を求めれば、必要な情報が得られることは紹介
してくれたサイトを見ないでも、しばらくしてわかった。

あとは、World座標系と剛体に固定された座標系の間の座標変換行列
が必要だけど、これはベクトルの回転変換行列と要素が一致するだろう。
(そうあってほしい)


447 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 08:20:06 ]
>>446
直接 〜が知りたい って文章かけないわけ?

448 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:57:37 ]
もういいから放置しておけよ
こいつが必要なのはDierctXの知識じゃなく日本語の知識だ

449 名前:デフォルトの名無しさん [2009/02/07(土) 16:49:31 ]
>>447

馬鹿は相手しないね。悪いけど。

>>448

馬鹿がもういっぴき。臭ぇーちんぽが、死ね。



450 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 16:58:13 ]
考えるまでもなくベクトルの回転も座標の回転も同マトリックスでできるだろ。
座標の回転なんて基底ベクトルの回転に等しい。

451 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:06:21 ]
数学がわからんだけじゃないか
DirectX関係ねぇ

452 名前:デフォルトの名無しさん [2009/02/07(土) 17:18:49 ]
ふぁーーっ。

>>450

おお!、あんた、なかなk筋のいい回答してるよ。

良くできましたね! 皆さんでほめてあげましょう(校長先生のお話)w。


>>451

相変わらず馬鹿だな。お前に言われるのは、100年早い。
死ね、臭ぇーーー腐れチンポが。






まだ、書いていいぞ。あっははは。






やーい、腐れチンポ、あははは




453 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 17:58:32 ]
DirctXってかシェーダーの質問なんです

game.watch.impress.co.jp/docs/20071227/3d30.jpg
↑みたいにライティング結果をメッシュのテクスチャに焼きこんで
それを出力させたいんですが、どうすればいいんでしょうか?

454 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:55:54 ]
見た瞬間、グロかとおもた。



455 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 22:58:12 ]
ビビタ

456 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 01:45:47 ]
>>453
UV座標をスクリーン座標にしてレンダーターゲットに描画するとか?
ttp://www1.axfc.net/uploader/File/so/18247
でもテクスチャの使いまわし(特に左右対称の場合とか)があると
うまくいかないのよね。

457 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 04:05:10 ]
>>453
モデリングソフトで真正面・真横・真上・真下から
レンダリングした絵をテクスチャにして平行投影で貼ればよかろ?

458 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 04:06:46 ]
ってCGワールドに載ってたw

459 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:19:04 ]
ゲームのDVDから画像データを抜き出すことってできるんですか?


460 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:24:09 ]
できるよ

GetModuleDds(Disk code);

461 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:25:43 ]
>>459
ゲーム実行中にVRAMコピーすれば余裕
でもそんなこと頑張ってもたかが知れてるぞ

462 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 16:47:30 ]
>>461
専門がそっちなんで最初はそれを作ってたんですが、XBOXを3台ほど壊してしまって
少しぐらい難しくても経済的にソフトでやろうと思ったんですが、予想以上にファイルがどうなってるのかわからず困ってます
アドバイスお願いします。


463 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:31:16 ]
スレチ

464 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:46:12 ]
該当しそうなスレはことごとく餓鬼の巣窟でまったく話にならないんです。
本気で取りだしたいのでゲームに埋め込むときのノウハウががわかっている方がいるであろうこのスレを選びました。
3Dデータの本質がわかっているこのスレでお願いします!



465 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 17:52:42 ]
pc11.2ch.net/test/read.cgi/prog/1229250800/


466 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:06:42 ]
それらしいスレにはわかる人はいないんですよ


467 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:07:47 ]
俺はわからないけど、とりあえず夜まで待てば?

468 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:17:12 ]
データだけ取り出せればいいの?
画像フォーマットの解析は自分でやるんだよね?

469 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:26:14 ]
暗号化されているのか、対応ソフトがあれば見れるのか
そもそも3Dデータであろう部分は判別できるのかとか
ゲームを作る時のデータ扱いの常識と、あとは自分で調べていけるような流れを教えてもらえるとうれしいです


470 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:30:33 ]
スレチだっつってんだろ死ね

471 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:31:00 ]
XBOXは覗いたことないけど普通は独自で解析できないようにしてるんじゃないのか?
もし見れたらMADゲームとかで好きにキャラとか動かして遊べるからそうとう盛り上がってるはずだけど
ぐぐっても出てこない、きびしいんじゃないだろうか

472 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:38:46 ]
DirectX関係ないだろアホか

473 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:41:32 ]
単なるbyteの配列を抜き出してどういうフォーマットのデータがどう並んでいるかなんて判別不可能に近い。
ましてやXBOXなんてUMAだからシステムメモリとビデオメモリが共有だろ。
どこに何があるのかすら分からないだろ。

474 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 18:45:32 ]
まったく関係なくもないな
同じような道だし
DirectXを使ったPCゲームで3Dモデルをどう使ってるかから調べればいいんじゃないのか?
XBOXはPCゲームを移植しやすいように作ってあるらしいから共通点がみつかるかも



475 名前:デフォルトの名無しさん [2009/02/08(日) 18:54:57 ]
俺も知りたいからあげ

476 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 19:01:56 ]
そんなもんゲームによりけりだろ

477 名前:ボコボコにしてやんよ ◆BokoBoko7c [2009/02/08(日) 19:31:23 BE:1083996656-2BP(2537)]
氏ね

478 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:19:06 ]
>>471
VRAMに展開された状態なんだから圧縮も糞もないだろ
開発環境あったら普通にみれるじゃん

479 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:47:04 ]
VRAMってもしかしてメモリチップのことじゃなかった?

480 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:53:17 ]
質問者はDVDからっていってるからファイル解析じゃないの
というかVRAM覗ける様にする方がしんどくね?

481 名前:デフォルトの名無しさん [2009/02/08(日) 21:08:52 ]
D3DX10CreateEffectFromFile()で失敗します。
FXファイルはあります。この場合失敗する理由をどうやって調べればよいですか?
よろしくお願いします。


482 名前:デフォルトの名無しさん [2009/02/08(日) 21:12:11 ]
481です。
D3DX10CreateEffectFromFile()からはE_FAILが返ってきてました。


483 名前:デフォルトの名無しさん [2009/02/08(日) 21:33:39 ]
481です。
自己解決しました。
fxc.exeでFXファイルをコンパイルしてみたところコンパイルできなかったので
FXファイルを再度チェックしたところ、書き方の間違いが見つかりました。
それを修正したら動作しました。
ありがとうございました。


484 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 21:34:03 ]
fxc使う!



485 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 21:34:58 ]
orz

486 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 02:49:37 ]
まずは圧縮(パッキング含)されてそうならそのアルゴリズムを解析する。
たいていLZ法やハフマン法とかなんで、あとはつじつまが合いそうな
データ並びを調べ、展開ツールを自作する。

それが終わったらデータ一つ一つのフォーマット解析だ。
単純そうなデータがあればそれを解析サンプルとして使う。

ピクセルカラーやパレットがどう入ってるかあたりを付けながら、
確認可能な画像フォーマットに変換してみる。

ここまで読んでわからない奴には無理だから諦めなさい。

487 名前:デフォルトの名無しさん [2009/02/09(月) 03:19:16 ]
HLSLの質問です

サチュレーションをシェーダで実装したいのですが
参考になるサイトや書籍、調べるきっかけになる単語があれば教えてください。
よろしくお願いします。

488 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 03:24:06 ]
>>487
もっと詳しくかいて
何をどう飽和させたいのかがさっぱり意味不明

489 名前:デフォルトの名無しさん [2009/02/09(月) 03:49:45 ]
すみません、
実装したい現象は2つあります。
@
game.watch.impress.co.jp/docs/20030403/tcsc2.htm
での炎で起こるサチュレーション
他のモデルに光が浸食する現象です

A
夜中に車のライトを直視して、光の針が四方に突き出るような現象

よろしくお願いします

490 名前:デフォルトの名無しさん [2009/02/09(月) 05:00:05 ]
@はHDRを中心に検索をかけ、ある程度自己解決
Aは、擬似HDRで実装したゲームでの表現があることから糸口発見

もし参考になるサイト、書籍を知っている方、
アドバイスをいただける方がいらっしゃれば情報をください。
よろしくお願いします。

491 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 13:13:40 ]
シェーダプログラミングブックのクロスフィルタ

492 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:01:19 ]
質問です。
3Dキャラクタを表示するとともに、仕込んであるボーンも表示するビュワーを作ったところ、疑問がでました。
3DキャラはXファイルを読み込んでいます。

Direct3Dだと、どうやらボーンは「ボーンの長さ + そのボーンの先での変換行列」という形で情報を持っているようです。
ですが、通常3Dソフトだと「そのボーンの根本での変換行列 + ボーンの長さ」という形が一般的だと思うのです。

たしかにDirect3Dの形式だと、「末端のボーンには長さ要らないんだけどなー」という点において有利な気はします。
が、直感的には後者のほうがずっとわかりやすいと思います。

また、ボーン名を表示する機能もつけてあるのですが、Direct3Dの仕様に合わせると「1つ上の階層のボーン名」を表示しないと、人間の直感からは1つずれた名前になってしまいました。

私が思ってる「一般的」は、もしかしてズレてるのでしょうか?
Xファイルしかファイルフォーマットを勉強したことないのですが、他の形式がどうなっているのか知っている方がいらっしゃいましたらコメントいただきたいと思います。
よろしくお願いします。

493 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:51:18 ]
Xファイルなんか使うな

494 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:03:59 ]
Xfile使うなって言ってるやつは何つかってんだよ
誰が何使おうが好きなようにすればいいじゃない



495 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:10:29 ]
>>494
調べればわかるけどXファイルは面倒臭い
逆に聞き返すが何のツールでXFile出そうとしてんの?

5万だしてXSI買ったほうがナンボか楽

496 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:27:42 ]
modとかならmaxかmaya行くと良いよ

497 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:32:28 ]
>>496
maxとmayaってゲームで使えるモデルが出力できる環境整えると
いくらぐらいになんの?
mayaがタダになったような気がするけど
プラグインまで使えるバージョンだっけ?

498 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:39:31 ]
いきなり初心者に5万出せってのはどうなんだよw

499 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:44:05 ]
>>498
オラァ!さっさとジャンプしてみろ!
チャリチャリなるだろチャリチャリィィィィィィィィィ!

500 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:58:34 ]
>>499
夜中に声出して笑っちまったw

501 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 07:11:33 ]
チャリチャリなるような財布に5万はないだろ

502 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 07:13:21 ]
ウォレットチェーンに違いない

503 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:14:00 ]
DirectXシェーダプログラミングとかいう本読んでるんですが、
これ、DirectXほとんど関係なくないですか?シェーダって思いっきり別言語じゃないですか
DirectXでGPUを操作するものは用意されてないんですか?
今後はシェーダのスレに言った方がいいんでしょうか?そもそもシェーダのスレはあるんですか?

504 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:20:37 ]
>>503
お前はDirectXを何だと思ってるんだ

シェーダのスレはあるかと思いきや意外と見あたらないな。
別にここでいいと思うが。



505 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:29:09 ]
まじこのHLVSとかいうの覚えなきゃいけないんですか?

506 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:35:21 ]
HLSLだよ何で間違えるw

覚えたくないならDirect3D9以前を使うこと。
Direct3D10では必須。 基本的な機能だけならコピペでもなんとかなるが。

507 名前:417 mailto:sage [2009/02/10(火) 10:37:56 ]
返信遅れてすみません。
>424さんの言うとおりクライアントサイズをデバイスサイズが違うことが原因でした。
ありがとうございました!

508 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 15:35:53 ]
HLSLってかなり楽しいと思うんだが
正直、DirectXとか機能覚えるだけで全然楽しくないけど
シェーダは、この表現はそういう処理になってたのか、とか
そういうのがあって楽しいよな

509 名前:デフォルトの名無しさん [2009/02/10(火) 20:43:00 ]
SIZE構造体とか、RECT構造体とか、こういうのって使いますか?
本のサンプル見てるとやたら使ってるんですが、全部覚えないとだめ?


510 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:54:57 ]
>>509
関数の引数で決まってるので使わざるを得ない


511 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 20:59:09 ]
>>509
なんで覚えるんだよ
必要なとき調べりゃいいだろ
まさか暗記でもする気か?
無駄だぞ無駄

512 名前:デフォルトの名無しさん [2009/02/10(火) 21:10:16 ]
DirectXシェーダプログラミング読もうかと思ったんですが、この本の内容ってDirectX10
でも使えますか?

513 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 21:59:54 ]
特にDirectXAPI側の形式が変わってしまっているが、やってることは同じ。
そのままコピペで使えるのかという質問なら否。

514 名前:デフォルトの名無しさん [2009/02/10(火) 22:57:42 ]
>>513
ありがとうございます。
そのままコピペできるような本は日本語ではないですか?
なければ英語でもいいので教えてください。




515 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:20:06 ]
なんでコピペにこだわるんだろうか・・・
初心者の前に人間ですらないのだろうか?

516 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:21:13 ]
コピペ君って本当に馬鹿なんだなって聞こえた気がした

517 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:38:44 ]
コピペして動かせた方が勉強するにしても役立つのは明らかだからな

518 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:01:10 ]
だったらSDKのサンプルでもみろよw
ていうか
ソースが本に書いてあってもそのソースの解説が載ってる
本は正直みたことねぇな
っていうかそんなことしたらページがいくらあっても足りない
ただ、載ってるだけだw

519 名前:デフォルトの名無しさん [2009/02/11(水) 00:18:16 ]
だって分からないんス。
SV_POSITIONとか言われてもぜんぜんピンとこない。
だれかがソースを目の前で書きながら分かりやすく解説しつつ、
手取り足取り教えてくれたらいいのに。シェーダのプログラムのやり方を
解説した実況中継DVDとかないですかね。


520 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 03:15:58 ]
シェーダの流れに便乗して質問なんですが
tex2Dprojって、MSDNに微分係数付きのテクスチャ座標という説明しかなくてよくわかりません
デプスシャドウなどで深度値を比較するときに使われてるみたいですが
普通のtex2Dと何が違うんですか?

521 名前:デフォルトの名無しさん [2009/02/11(水) 07:27:22 ]
>>519
ピンとこないと駄目なんだ?w

522 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 07:43:23 ]
>>519
ピンとこないとダメなら自分でピンとくる3Dエンジンを作るよろし。

523 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 08:52:21 ]
>>520
微分は、tex2Dgradの方じゃ?
tex2Dprojは、xyをwで割って
サンプリングする座標を求めるもの
tex2Dproj( xy, t ) ≒ tex2D( xy / t )

シャドウマップではサンプリングに射影変換が
必要なケースがあるので、こいつが使われる。

524 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 09:03:50 ]
↑間違ってる、正しくは↓
tex2Dproj( s, xyzw ) ≒ tex2D( s, xyzw / w )




525 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:18:26 ]
よく分からないけど、wで割るっていうのは
スクリーン座標をビュー座標にしてるってことですか?

526 名前:デフォルトの名無しさん [2009/02/11(水) 20:17:20 ]
そんなわけねーじゃん

527 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:39:30 ]
俺の頭じゃ理解できない
詳しく教えて下さい

528 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:57:54 ]
だってビューってみたかんじからして
Y座標逆っぽいじゃん

529 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:32:48 ]
すみません、なんか勘違いしてたみたいです
wで割ると射影空間上のX座標Y座標が-1から1の間に収まるっていう感じであってますか?

530 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:30:21 ]
>>525
同次クリップ空間からビュー座標にしてるんじゃね?

531 名前:デフォルトの名無しさん [2009/02/11(水) 23:46:32 ]
独習デザインパターンC++は役に立った

532 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:22:52 ]
>529
ここ見るといいよー

そもそも「w」って何なのか?
ttp://marupeke296.com/DXG_No55_WhatIsW.html


533 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:02:33 ]
288*256の画像ファイルを読み込んで、24け32の範囲を
貼り付けると横が伸びるんですけどなんか方法はないですか?

534 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:07:11 ]
どうやって画像を読み込んで、どうやって表示してるのか言わないとわからない。



535 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:46:41 ]
256*256にしとけ

536 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:47:37 ]
「288*256の画像ファイルを読み込んで」の時点で
テクスチャが512x256になってるって落ちじゃ?
D3DXCreateTextureFromFileで読み込むとそうなる
D3DXCreateTextureFromFileExでちゃんと幅と高さを指定してつくれ

537 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 05:34:17 ]
Maneged DirectXってDirectShowだけじゃなくてDirectMusicも含まれてないんですか?
VS2008なんですけど、ヘルプを組み込むにはどうすればいいんでしょうか
DirectXをインストールして入ってなければあきらめるしかないですか?
今はchmを直接開いてるんです

538 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 07:26:26 ]
スレ違い

539 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 07:34:32 ]
うほ

540 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:19:51 ]
アルファブレンディングとZバッファの関係で躓いています。

使用バージョン DirectX 8.0 (d3d8.h d3dx8.h)
VS2008 VC++

最背面 背景 > 半透明オブジェクト 最前面
のように描画されてて半透明オブジェクトの中身は TLVertex で
000
010
000

0は完全透明、もしくは半透明だと思ってください。
1は完全不透明です。

で、この半透明オブジェクトの背面に新たに TLVertexのオブジェクトを描画したくて、
0の部分はこの新たなオブジェクトと普通の半透明処理をして
1の部分は描画を破棄するなどして背面にあるように見せかけたいのです。

仕様として描画の順番を入れ替えることができないのでZソート法などを使うことができないのですが、
多少結果が食い違ってもかまわないのでどうにか背面にあるように見せる方法はないでしょうか?

541 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:29:13 ]
>>540
半透明はZソートしない限り不可能。
完全に透明なら、Zテストを使えばいい。

542 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:41:58 ]
img.2ch.net/ico/apple.gif
フルオリジナルだから実現できた!綾波レイが頼んだラーメンを完全再現。

・エヴァテイストで全てをデザイン
・オリジナルATフィールドナルト入り
・「ロンギヌスの槍」蓋シール
販売価格 5,250円(税込)

メーカー 日清食品
発売日 09年03月下旬
原作名 新世紀エヴァンゲリオン
コピーライト (C)GAINAX・カラー
日清食品株式会社製


www.amiami.com/shop/ProductInfo/product_id/115659
www.amiami.com/images/product/main/091/CGD-2718.jpg

543 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 21:49:16 ]
>>541
現状完全透明でも描画できていないので半透明については保留にしておいて
Zテストについて色々調べてみます。
ありがとうございました

544 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:26:03 ]
>>543
ごめん、Zテストじゃなくてアルファテストの間違い。



545 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:32:49 ]
DirectXで画面(800*600)の任意の場所にドット絵を表示させたいのですが
どうしてもアンチエイリアスがかかったようにぼけてしまいます。

//プロジェクション行列
D3DXMatrixOrthoLH(
 &ProjectionMatrix,
 400,
 300,
 0,
 100
);

//キャラクターのマトリックス
D3DXMATRIX mat;
D3DXMatrixIdentity(&mat);//現在は原点

mat * ProjectionMatrix を掛け合わせた行列で
シェーダーでキャラクターの頂点を変換しているのですがうまくいきません。
ご教授お願いします><


546 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:37:05 ]
シェーダを使わずにレンダリングしたら正常ってことだよな

547 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:37:29 ]
>>545
デバイス->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT );
デバイス->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
デバイス->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );

548 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 00:58:05 ]
>>546
シェーダーに頼り切ってるのでシェーダー使わない方法が今一わかってません…

>>547
DirectXにテクスチャを送らなく
シェーダーにテクスチャを送っていたので
//普通のテクスチャ用
//普通のテクスチャ用
sampler2D NormalSmp = sampler_state {
Texture = NormalTex;
MipFilter = LINEAR;
MinFilter = LINEAR;
MagFilter = LINEAR;
AddressU = CLAMP;
AddressV = CLAMP;
};
     ↓

sampler2D NormalSmp = sampler_state {
Texture = NormalTex;
MipFilter = POINT;
MinFilter = POINT;
MagFilter = POINT;
AddressU = CLAMP;
AddressV = CLAMP;
};
にしたらきちんとうつりました

ありがとうございます。

549 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 14:42:57 ]
D3DXをつかわずにPNGとかの画像を読み込んで
テクスチャーを作るにはどうするですか?

550 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 14:47:07 ]
CreateTextureで必要なサイズのテクスチャを作って
そのテクスチャをLockRectして画像から読み取った色情報を書き込めばOK
ただしその画像フォーマットがどのように色情報を格納しているかの知識が必要

551 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:05:21 ]
DirectXは△ポリゴンしかサポートしてないと聞いたのですが
□ポリゴンが混ざっているXファイルが読み込めました

調べたのですがサポートしていないとは不具合があっても対処しませんということでいいのですか?

552 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 19:09:30 ]
それモデラーがXファイル出力するときに3角形にしてるだけだろ

553 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:13:46 ]
てかほっとくと普通に5角形とか6角形とかまざってね?>Xファイル
モデラーで三角形分割しないと駄目だろ

554 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:14:56 ]
D3DX使うと読むときに全部三角分割してるよ



555 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:26:38 ]
>>554
どんな感じで?w(←絶対にデザイナに責任取らせたほうがいいと思うw)

556 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:29:00 ]
自動で三角形分割やらせて
ウンコみたいなUVの設定とか変な分割のされ方したぐらいで
プログラマに怒りをぶつけるようなデザイナの尻には浣腸しかない

557 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:31:46 ]
どんな感じも何も四角形を三角形二つに分解したって、
表示結果は全く変わらないんだが、
責任とか訳のわからないことを言い出す>>555って、
どれだけ頭が悪いんだろう?

558 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:33:22 ]
三角形->四角形 非可逆
四角形->三角形 可逆

559 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:39:38 ]
>>558
すごいな
どの三角形とどの三角形で四角形を形成してたのかわかるのか?
面積0とかはないとしても難しいな

560 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:45:27 ]
よく読め

561 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:45:56 ]
ランドスケープ(格子状モデル)みたいなのイメージしてみたけど結構難しいな
同一平面で辺がくっついてたらとか考えたけどサルの浅知恵だった

562 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:47:17 ]
UVぶっちぎれね?

563 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 20:49:33 ]
>>560
死んでくる

564 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 21:09:18 ]
>>557
四角は平面だとでも、思ってんのか?お前

ただ556の浣腸は正しい



565 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 21:20:49 ]
>>564
出力されたデータを検証したことがないだろ。
平面じゃなければ、すでにエクスポート段階でデータが欠損していることになるが、
そんな間抜けな実装をしているエクスポータを挙げてみろよ。


566 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 21:27:41 ]
平面じゃない場合は四角形ではない。
四角形なら必ず平面。

567 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:08:44 ]
危険生物を萌え絵で擬人化した『萌え萌え有毒生物図鑑』が発売に

 『有毒生物の世界を、萌えながら学ぶビジュアル図鑑』という
萌え萌え有毒生物図鑑が12日に発売になり、
とら1号店・メロン秋葉原店で見かけた。表紙イラストは中村博文氏。
イーグルパブリッシングの2月新刊案内 では『有毒生物達を擬人化イラストと共に大紹介』などとし、
とら1号店のPOPは『ヒトデがロリっぽくて・・・ハァハァ』とかだった。

表紙:node3.img3.akibablog.net/09/feb/13/303s.jpg

オニヒトデ:node3.img3.akibablog.net/09/feb/13/304a.jpg
アカエイ:node3.img3.akibablog.net/09/feb/13/308a.jpg
キングコブラ:node3.img3.akibablog.net/09/feb/13/314.jpg
マムシ:node3.img3.akibablog.net/09/feb/13/315.jpg
蚊:node3.img3.akibablog.net/09/feb/13/313.jpg
ブラリナトガリネズミ:node3.img3.akibablog.net/09/feb/13/309.jpg
デスストーカー:node3.img3.akibablog.net/09/feb/13/310.jpg
ピトフーイ:node3.img3.akibablog.net/09/feb/13/311.jpg
オオスズメバチ:node3.img3.akibablog.net/09/feb/13/312.jpg
ドクツルタケ:node3.img3.akibablog.net/09/feb/13/316.jpg

568 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:12:54 ]
蚊以外いらん

569 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:20:08 ]
キングコブラと蚊はいいセンスしてんなw

570 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:27:01 ]
蚊のやつ、上半身と下半身が分離してるように見えてならない

571 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:28:51 ]
こんなの人間の女の子に猫耳つけて猫ですってレベルと変わらないじゃん

572 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 23:46:06 ]
マムシハァハァ

…ふぅ

573 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:02:21 ]
俺もマムシ一択だな

574 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:08:37 ]
DirectX関係ないぞ



575 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:15:35 ]
そのコピペそこらじゅうに張ってあるぞ
そのあとのトークとセットで

576 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 00:17:01 ]
>>567->>571
までコピペワロタ

577 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 10:09:05 ]
>>565
お前様はfbxいじった事はあるの?
てか、もし師範様なら、割られた三角で取得する方法教えて下さい・・・

578 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 10:17:41 ]
>>577
FBXなら普通にメッシュのクラスにTriangle化するメソッドあるだろ・・・

579 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 13:28:20 ]
DirectX9でMFCのViewに表示させる場合、CreateDeviceのhWndはViewのm_hWndじゃだめなんでしょうか?
コンパイルできるんですが、そのあとの描画でデバイスのClearで止まるんです

580 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 13:42:39 ]
ClearでとまるならZバッファないのにZクリアーしてるとか
ステンシルないのにステンシルクリアーしてるとかだろ。

581 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:21:13 ]
HRESULTいくつよ?

582 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:34:22 ]
戻り値までいきません。ハンドルされていない例外でストップするんです。

class CView : public CView{
CXView::CXView()
{
  pDirectX9 = new CDirectX9();
  pDirectX9->InitD3D(this->m_hWnd);
}
void CView::OnDraw(CDC* /*pDC*/)
{
  CXDoc* pDoc = GetDocument();
  ASSERT_VALID(pDoc);
  if (!pDoc)
   return;

  g_pD3DDev->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
}
}


583 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:40:07 ]
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pD3DDev ) ) ) {
return E_FAIL;
}

これが失敗してます。
CViewのハンドルはm_hWndで問題ないですか?

584 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:49:14 ]
これってソースそのままコピペ?
class CView : public CViewでいいのか?



585 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:50:52 ]
class CXView : public CViewでしたすいません

586 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:57:30 ]
g_pD3DDevがNULLってこたぁないよな

587 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 14:58:31 ]
デバイスの生成でミスってんならそこでちゃんとエラーだせよ・・・。
パラメーターがどっかしらおかしいんか、ウィンドウハンドルがNULLじゃなきゃ失敗しねえ。

588 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:06:44 ]
CreateDeviceの戻り値は-2005530516です。
最新版のSDKでdxerr9.libからMAX_ERROR_TEXT_LENってなくなってないですよね?
これdefinいくつかわかりませんか?エラー関数コンパイルできなくなってエラーコード調べられなくなりました

589 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:14:44 ]
失敗してんじゃん
d3dppがおかしんじゃね

590 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:26:01 ]
D3DERR_INVALIDCALLでしょ。
d3dppの内容は?

591 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:28:35 ]
thx
これです

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = d3ddm.Format;

592 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:29:57 ]
とりあえず
CViewのコンストラクタ内ではまだm_hWndはNULLであることをお伝えしておく

593 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:32:31 ]
そこ手打ちみたいで怪しいから無視してたわ・・・

594 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:34:02 ]
つーかDirectXをまずデバッグモードにしろや。
それでコンソールにエラー内容全部表示されるようになるだろ。



595 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:38:20 ]
うおーできた!!!
ありがとう。
まじありがとう!!!

596 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:04:27 ]
>>595
解決したらどんなエラーだったかを示すのがスジ。

597 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:07:55 ]
まあOnCreateあたりでCreateDeviceしたんだろうけど。

598 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:25:44 ]
CViewのコンストラクタ内でハンドルを渡したら中身がNULLだったので
InitUpdateの中でやったら解決しました。

599 名前:デフォルトの名無しさん [2009/02/15(日) 20:08:59 ]
DXTRACE_ERR()をやたら使ってるソースがあるんですが、これって意味あるんでしょうか?
なんにも有効そうなログとかだしてくれないんですが、、、

600 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 21:06:28 ]
それこそ使い方による

601 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:25:28 ]
Xファイルのアニメーションを切り替えるサンプルコードどっかにない?
SDKのは長すぎて解読不能だたよ

602 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:26:55 ]
まるぺけ

603 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 22:51:23 ]
まるぺけは自作関数使ってるじゃん
わかりづらいよ

604 名前:デフォルトの名無しさん [2009/02/15(日) 22:58:31 ]
まるぺけって結構有名なんだな。
参考にしたのオレだけかと思ってたよ。




605 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:08:31 ]
分かりやすいサンプル=SDK付属のサンプルだと思うんだ

606 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:42:46 ]
それはお前だけ(笑)

607 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:46:29 ]
Xファイルの読み込みってめたくそむずかしくないですか?
VBだと読み込みと描画で2行でかけるのに・・・やばくないですか?Cとかいって
自分が見てる解説サイトがわかりずらいだけなのかな

608 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 23:58:08 ]
VS2008なんですが、プロジェクト新規作成にDirectXウィザードが無いんですが
どうすればいいと思いますか?

609 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 00:23:16 ]
あきらめればいいと思います

610 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 02:40:41 ]
エンプティープロジェクト
シンプルサンプル

611 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 05:27:05 ]
D3DCAPS9の中身を埋めてくれる関数は何ですか?

612 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 05:34:21 ]
GetDeviceCapsがありました

613 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 15:40:06 ]
質問です
レンダリングターゲットとして生成したテクスチャーは、マルチサンプリングが無効になってしまうようなのですが
これは「2倍の大きさで描画して、表示する際に50%縮小すればアンチエイリアシングかかるじゃん」というやり方をしろということなのでしょうか?

それとも何かしら設定があるんでしょうか?

614 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:14:42 ]
質問です

1.レンダリングターゲットのサーフェイスを変えて描画
2.深度バッファはそのままでレンダリングターゲットを元に戻しす
3.深度値の書き込みOFFで画面サイズのスプライトにさっき描画した内容をテクスチャとして描画
4.深度値の書き込みONにして適当にオブジェクトを描画

このときに、サーフェイスのサイズが正方形だとうまくいくんですが
640x480とか、横に長かったりするとスプライトに描画したときにピクセルが微妙にずれてしまいます。
たぶんサンプリングの問題だと思うんですが、
最後のオブジェクトを描画するときに最初の深度バッファをそのまま使いたいので
ずれてしまうと、何もないのに隠れてたり、その逆が起きたりしてしまいます。
ピクセルがずれるのは1ピクセル程度ですが。
どうすればいいのでしょうか?



615 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:44:13 ]
DirectXにスプライトなど無い。

616 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 23:18:06 ]
DirectSoundを使って音楽を再生しようとしているのですが
wav形式は再生できたのにmid形式をデバッグなしで再生しようとすると失敗します。
(デバッグありなら再生可能で、デバッグしてなくてもたまに鳴り出す)
これはいったい何が原因なんでしょうか。

617 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 23:21:46 ]
デバッグありだと再生できる方が超常現象だろう

618 名前:616 mailto:sage [2009/02/16(月) 23:53:52 ]
訂正
DirectSoundじゃなくてDirectMusicでした。

619 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 01:47:47 ]
初期化で
hr = D3DXCreateTextureFromFile( m_pD3DDev, _T("earth.bmp"), &m_pTexture );
の後、
m_pD3DDev->SetTexture(0, m_pTexture);
を描画start,endの間に追加したんですが
四角形の色が変わるだけで絵が表示されません、どこが原因なんでしょうか

620 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 02:16:28 ]
uvがちゃんと設定されてないんじゃ?

621 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 02:45:58 ]
どこかおかしいところありますか?

typedef struct {
  float x, y, z, rhw; //スクリーン座標での位置
  DWORD color; //頂点色
  float tu, tv;
} CUSTOMVERTEX;

CUSTOMVERTEX vertices[] = {
  // x y z rhw color (赤 緑 青 α)
  {50.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0xff, 0xff, 0xff, 0xff), 0, 0},
 {250.0f, 50.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0x00, 0x00, 0x00, 0xff), 1, 0},
  {50.0f, 250.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0xff, 0xff, 0xff, 0xff), 0, 1},
  {250.0f, 250.0f, 0.5f, 1.0f, D3DCOLOR_RGBA(0x00, 0x00, 0x00, 0xff), 1, 1}
};

622 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 03:30:26 ]
SetFVF で D3DFVF_TEX1 入れ忘れてるんだろう

623 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 03:41:27 ]
m_pD3DDev->SetFVF(D3DFVF_CUSTOMVERTEX);

これですか?
コメントアウトしてもだめでした

624 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 03:43:29 ]
D3DFVF_XYZ
だけにしたんですがそれでもだめでした



625 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 03:47:59 ]
わかりました
D3DFVF_XYZ

D3DFVF_XYZRHW
にしたら表示されました
ありがとうです!






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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