■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

【C++】 DirectX初心者質問スレ Part4【C++】
501 名前:デフォルトの名無しさん :2005/06/13(月) 20:34:15
すみません、初めて質問するのですが、directxを使って音を出したいと思っております。
ネットを見てもファイルを再生する方法はよくありますが、そうではなく、その時々で任意の音を出したい
のですがどなたかご存知ではないでしょうか。よろしかったら教えてください。

502 名前:デフォルトの名無しさん :2005/06/13(月) 20:37:27
ストリーミング再生のやつを応用して、
WAV データを自前で生成しつつ再生すればいいと思う。
ストリーミング再生の資料は多少はネット上に落ちてる筈。

503 名前:デフォルトの名無しさん :2005/06/13(月) 20:40:05
>>502
本当にありがとうございます!!さっそく調べてみます。

504 名前:482 :2005/06/13(月) 21:12:42
すいません解決しました。
SetViewport()をやるときに、
D3DVIEWPORT8構造体のMinZとMaxZに値を入れてませんでした。
ありがとうございました。

505 名前:デフォルトの名無しさん :2005/06/13(月) 21:18:39
>>486
テクスチャは2のN乗サイズになる。3D屋なら常識だが、
ちゃんとヘルプにも書いてある。
Width [in] Width in pixels. If this value is zero or D3DX_DEFAULT,
the dimensions are taken from the file and rounded up to
a power of two. If the device supports non-power of 2 textures
and D3DX_DEFAULT_NONPOW2 is specified, the size will not be rounded.


506 名前:デフォルトの名無しさん :2005/06/14(火) 15:33:57
DrawPrimitiveUP と DrawPrimitive の違いがわかりません。
だれかもしえてください。

507 名前:デフォルトの名無しさん :2005/06/14(火) 16:14:05
>>506
Helpに書いてあります。残念。

508 名前:デフォルトの名無しさん :2005/06/15(水) 14:40:35
DDSCAPS_TEXTUREで作成したDirectDrawサーフェスに対してカラーキーをセットして、
DDBLT_KEYSRCフラグでBltするとMillennium G450では正常に表示されるのに、
NVIDIA GeForce FX 5700だと正常に表示されなくなります。
解像度やカラー深度は一緒です。ちなみにBlt関数ではS_OKが帰ってきます。

また、DDSCAPS_OFFSCREENPLAINでサーフェスを作成したり、
カラーキーを無効にするときちんと表示されます。

このような経験がある方がいたら教えてください。

509 名前:デフォルトの名無しさん :2005/06/15(水) 19:04:38
深度は16bit?

510 名前:デフォルトの名無しさん :2005/06/15(水) 22:43:45
>>508
そうです。R5G5B6のピクセルフォーマットにしたがって指定しています。
サンプルにあったように取得したサーフェスの左上にカラーキーにしたい色味を描画して、
Lockしてメモリを読み出し、実際に描かれた色味を指定しています。

DDSCAPS_TEXTUREフラグで作成したサーフェスに対して、カラーキーを含むBltのみが
おかしいようです。
ちなみにドライバを更新したときに、拡大Blt(転送先矩形が、転送元矩形より大きいBlt)で
カラーキーが境界部分で表示されてしまうバグが解消されたくらいなので、
テクスチャとして作成したサーフェスが転送元となるBltは想定していないのかもしれません。
戻り値にS_OKは返してほしくないですね・・・。

511 名前:デフォルトの名無しさん :2005/06/15(水) 22:44:19
レス番間違えた・・・orz

512 名前:デフォルトの名無しさん :2005/06/15(水) 22:46:34
あ、あとDirectX7です。

513 名前:デフォルトの名無しさん :2005/06/15(水) 23:35:35
>R5G5B6

?!
R5G5B5とかR5G6B5じゃなくてか?
プライマリサーフェスのCapsを確認してみ

514 名前:デフォルトの名無しさん :2005/06/16(木) 00:31:43
すみません!R5G6B5でした。確認しました。

515 名前:デフォルトの名無しさん :2005/06/16(木) 02:21:18
// カメラの前後ろどちらに木があるか
if( 0 > ( m_Trees[i].vPos.x - m_vEyePt.x ) * g_vDir.x +
( m_Trees[i].vPos.z - m_vEyePt.z ) * g_vDir.z )
DirectXサンプル、ビルボードの引用なんですが、
カメラ位置から木の位置までのベクトルの正規化なしで、
内積取っても、前後判定できないような気がするのですが。

516 名前:デフォルトの名無しさん :2005/06/16(木) 02:41:08
>>515
必要な情報は内積の結果の符号のみだから、
ベクトルの大きさは関係ない。

一度図と式を書いて確認しとくといいよ。

517 名前:デフォルトの名無しさん :2005/06/16(木) 03:30:01
正規化の意味分かってないんじゃないの?
そうじゃなきゃ一からベクトル勉強し直せって感じだが

518 名前:デフォルトの名無しさん :2005/06/16(木) 03:43:11
>>515
P・Q=|P||Q|cosα をもう一度よくじっくり考えてみよう。
ベクトルの大きさによらず、結果が正か0か負かだけで分かることがあるよな?

519 名前:デフォルトの名無しさん :2005/06/17(金) 13:36:44
DirectX8のD3Dのテクスチャで質問です
CreateTextureで空のテクスチャを作った後で、これに画像をBITMAPハンドルから
読ませる方法がわかりません
GetDCは無いし…
これを実現するAPI名を教えて下さい

520 名前:デフォルトの名無しさん :2005/06/17(金) 13:47:52
つ[GetDIBits]
つ[LockRect]

521 名前:519 :2005/06/17(金) 13:59:53
>>520
LockRectを確認しました
有難う御座いました

522 名前:デフォルトの名無しさん :2005/06/18(土) 13:42:30
SDKをインストールするとデフォでCドライブの直下に『DXSDK』というフォルダができていたはずなんですが、
どれを入れてもプログラムファイル内に『Microsoft DirectX 9.0 SDK (June 2005』などといったフォルダしか作られません。
これらだとヘッダーファイルの一部が見つからなかったり、コンパイルができても
Direct3D9: (ERROR) :Unsupported min filter.
Direct3D9: (ERROR) :Invalid texture sampler state value. SetSamplerState failed.
のようなエラーが出てしまいます。
落とすファイルを間違えているのでしょうか?

523 名前:デフォルトの名無しさん :2005/06/18(土) 13:46:23
> デフォでCドライブの直下に『DXSDK』というフォルダが

いつの時代の人ですか・・・

524 名前:522 :2005/06/18(土) 14:55:48
何をインストールしたか分かりませんが、9.0bでは『DX90b』や『DX90SDK』だったかな?
今まで9.0bをベースにupdateを加えていったので環境としては9.0cになっていると思うのですが、その大元のファイルがどこにあるのか・・。

525 名前:デフォルトの名無しさん :2005/06/18(土) 15:14:48
インストール時に場所を指定できるしもちろん表示されているが、
文字すら読めないのなら諦めた方がいい。

526 名前:デフォルトの名無しさん :2005/06/18(土) 15:15:09
>>522
何を言ってるのかよく分からんのだが、SDKをどこのフォルダに
インストールしたのか自分で分からんってこと?

527 名前:522 :2005/06/18(土) 15:22:10
>これらだとヘッダーファイルの一部が見つからなかったり、コンパイルができても
>Direct3D9: (ERROR) :Unsupported min filter.
>Direct3D9: (ERROR) :Invalid texture sampler state value. SetSamplerState failed.
>のようなエラーが出てしまいます。
です。
バージョン違いでコンパイルができないのならそのエラーが起きている関数を変えることで直すことができますが、今回(上記)のようなのはどうしたらいいのか分からず質問しにきました。

528 名前:デフォルトの名無しさん :2005/06/18(土) 15:25:34
Summer2004以降あたりからはデフォルトではProgram Filesに入るはずだ。たぶん。
VS入ってんなら自動的にパスも設定してくれるはずだ。たぶん。

529 名前:522 :2005/06/18(土) 15:27:49
追記
今まではCドライブ直下にあるSDKのフォルダの中にあるincludeとlibだけを指定するだけで問題なくコンパイル→実行ができました。
June 2005のinclude・libフォルダだけだと一部のヘッダーファイルが見つからない、Summer 2003を加えると上記のエラー。


530 名前:デフォルトの名無しさん :2005/06/18(土) 15:28:22
>>522
だからバージョンが変わったから関数の使い方が変わっただけじゃないの?
ヘルプ見て見たら?
別にファイルが無いよとかそんなこといってないんじゃない?

531 名前:デフォルトの名無しさん :2005/06/18(土) 15:34:52
>>522
OSを再インスコ、June2005をインスコ。
これで万事解決。SetSamplerStateのエラーはどっかの過去Verで引数の数が変わったんだろう

532 名前:522 :2005/06/18(土) 15:36:06
すみません、 d3d9.libが見つかりません でした。


533 名前:デフォルトの名無しさん :2005/06/18(土) 15:44:00
HDDを検索すれば見つかります。

534 名前:デフォルトの名無しさん :2005/06/18(土) 15:44:40
単純にパスの設定し忘れだろう。
9.0cの頃からlibフォルダやincludeフォルダは

C:\Program Files\Microsoft DirectX 9.0 SDK (リリース年月)\Include
C:\Program Files\Microsoft DirectX 9.0 SDK (リリース年月)\Lib

に変わったから

535 名前:522 :2005/06/18(土) 16:02:37
>>531
それをやった結果が現状・・。
>>534
それを設定してますが今までは問題なかったのに今回は(略
>>533
[Lib]
 └x64
 └x86
この2つのフォルダの中にファイルは確かにあります。


536 名前:デフォルトの名無しさん :2005/06/18(土) 16:12:09
>>535
だからVCのパスの設定の仕方がわかんねーんだろ?
↓でも行って来い
すれ立てるまでもない質問はここで 第67刷
ttp://pc8.2ch.net/test/read.cgi/tech/1114329636/l50


537 名前:522 :2005/06/18(土) 16:43:16
>それを設定してますが今までは問題なかったのに今回は(略
分からないというほうが問題としては簡単なんですがね(´・ω・`)
一体何が原因なんだろ、03夏を入れて出てくるエラーの内容もさっぱりだし。

538 名前:デフォルトの名無しさん :2005/06/18(土) 16:57:13
>>537
な ん で 0 3 夏 を 入 れ る ? 

539 名前:522 :2005/06/18(土) 17:01:28
>>538
そうしないとコンパイルが通らないからですよ(´・ω・`)

後者のエラーについてはSetSampleStateが原因でした。
終了時にreturn (INT)msg.wParam;を実行すると
Direct3D9: (ERROR):  [0] : Address 00000000 ←16進
                [1]
                :
                :
と出力コマンドに表示され続けて終わらなくなりました。
直接実行させると問題なく終わりますが、デバッグだけ・・メモリの開放ミスでしょうか?

540 名前:522 :2005/06/18(土) 17:03:07
>>539の終了時に以下は別の問題です。見辛くてスマソ

541 名前:デフォルトの名無しさん :2005/06/18(土) 18:05:33
> そうしないとコンパイルが通らないからですよ(´・ω・`)
該当部分を修正すればいいだけの話だろ。
何故直さない?

542 名前:522 :2005/06/18(土) 18:17:09
>>541
>>527
ヘッダーファイルじゃなくて正しくは d3d9.libが見つかりません です。



543 名前:デフォルトの名無しさん :2005/06/18(土) 18:18:38
>>542
それはお前が馬鹿だからだろ(´ω`)

544 名前:デフォルトの名無しさん :2005/06/18(土) 18:24:07
>>543
つ[【C++】 DirectX初心者質問スレ Part4【C++】]

545 名前:デフォルトの名無しさん :2005/06/18(土) 18:33:23
VisualC++初心者スレッドに行った方がいいんじゃ。

546 名前:522 :2005/06/18(土) 18:59:49
>>543
って言われても(´・ω・`)
>>545
バージョンを前にすると通るからJune2005の問題かなと思っているのですが、VC++の問題なのでしょうか。

547 名前:デフォルトの名無しさん :2005/06/18(土) 19:09:30
>>546
だからパスを設定しろ。
VC++ ディレクトリって言葉知ってるか?

548 名前:522 :2005/06/18(土) 19:17:09
>>547
何度も言うけど設定してるって。
やらなきゃ前のバージョンのコンパイルもできないし。



549 名前:デフォルトの名無しさん :2005/06/18(土) 19:36:20
流石にここまで来ると荒らしだぞ

550 名前:デフォルトの名無しさん :2005/06/18(土) 19:40:26
もうDirectX以前の話だろ
バカも休み休み言え

551 名前:デフォルトの名無しさん :2005/06/18(土) 19:43:40
ライブラリが絶対パスで指定してあるとかいう間抜けなオチでは?

552 名前:デフォルトの名無しさん :2005/06/18(土) 19:45:50
VC6だったりして

553 名前:デフォルトの名無しさん :2005/06/18(土) 20:04:05
もしかして\Libで止まってないか?
535で気付いてほしいものだが

554 名前:522 :2005/06/18(土) 20:31:02
>>553
ありがとうございます、原因はそれだったようで○| ̄|_
フォルダを指定したら自動的に判断してくれているものと思ってましたが、自分で決めないといけないとは・・。

>>551
そのまま指定すると絶対パスになりますが今まで不具合が出たことがありません。
相対パスにしないと何か問題が起きるのでしょうか?

555 名前:デフォルトの名無しさん :2005/06/18(土) 20:50:18
無能すぎ

556 名前:デフォルトの名無しさん :2005/06/18(土) 21:00:47
>>547に逆ギレしたくせにこれだよ…ヤレヤレ

557 名前:デフォルトの名無しさん :2005/06/18(土) 21:05:17
リアルじゃ見れない品、こんなアホ
レアなもん見れたと思えばいいじゃん

558 名前:デフォルトの名無しさん :2005/06/18(土) 21:10:00
>>556
547と553の意味は別々だろ
混同してたらお前も522と同類

559 名前:デフォルトの名無しさん :2005/06/18(土) 21:46:14
DirectXゲームグラフィックスプログラミング Ver. 2.0を参考にしてます
単なる三角形を表示するだけのサンプルを改良して
三角形を二つ表示するプログラムが作りたいと思い
変数を追加して、少し座標をずらして表示させてみたところ
後に追加したほうの三角形しか表示されません

試行錯誤の結果
pD3DDevice->SetStreamSource( 0, m_pMyVB, 0, sizeof(MY_VERTEX) );
pD3DDevice->SetStreamSource( 0, m_pMyVB2, 0, sizeof(MY_VERTEX) );
この関数で後に設定したほうが先に設定したほうを上書き?してるようでした
三角形を複数表示しようと思った場合、普通はどうやるのでしょうか?


560 名前:デフォルトの名無しさん :2005/06/18(土) 21:48:11
今回の問題ってVCの問題だろといい続けてた奴らいるけどDirectXのディレクトリ構造が分かってなかったのが問題だよな?
あくまで”DirectXのlibファイルの場所"を勘違いしてたってことでVCの設定の仕方が分からなかったわけじゃないみたいだし

DirectX初心者に優しくないなこのスレ

561 名前:559 :2005/06/18(土) 21:51:26
1つ目
SetStreamSource(一つ目のデータ
SetFVF
DrawPrimitive
2つ目
SetStreamSource(2つ目のデータ
SetFVF
DrawPrimitive
とすることで解決しました、すみません

562 名前:デフォルトの名無しさん :2005/06/18(土) 21:56:45
>>560
わかってなかったわけでもないだろ。
ただの確認不足。
頑なに自分の間違いを疑わず、
こうなるはずだ。等と思い込みで勝手に突き進んでたのが問題。
こういう馬鹿は成長しても結局同じ事を何度も繰り返す。
ここで潰しておいた方がよかった。

563 名前:デフォルトの名無しさん :2005/06/18(土) 22:02:54
>>562
確認したら俺の持っている本は全部IncludeフォルダとLibフォルダを指定するとしか書いていないぞ。

564 名前:デフォルトの名無しさん :2005/06/18(土) 22:06:04
>>563
なにがいいてぇんだ?

565 名前:デフォルトの名無しさん :2005/06/18(土) 22:12:05
そもそもインストール時にパスは自動設定されるはずだが。

566 名前:563 :2005/06/18(土) 22:17:23
>>564
語弊があったかもしれんが、なぜSDKディレクトリの登録をしなければいけないのかやそれをすることによってどういう働きをするのか書かれていない。
そこから始める人にその時点で覚えさす必要はないが、書かれていない以上IncludeとLib両フォルダを登録しなければならないとだけ覚えていれば十分だと思う。


567 名前:デフォルトの名無しさん :2005/06/18(土) 22:18:18
今まで自動設定なんて親切なことしてくれなかったぞ。

568 名前:デフォルトの名無しさん :2005/06/18(土) 22:22:23
>>566
いつまで初心者でいるつもりだ?w

569 名前:デフォルトの名無しさん :2005/06/18(土) 22:25:18
>>565
同じく自動的にパスの設定をしてたってことはないな。
ちなみに.NET。

570 名前:デフォルトの名無しさん :2005/06/18(土) 22:32:11
DirectXになんて手を出す時点で”初心者”ではないとおもうが。
それとも初心者が出を出してしまった結果がアレなのか

571 名前:デフォルトの名無しさん :2005/06/18(土) 22:34:06
VS.NET2003で確認した結果、SDKをアンインストールするとパス設定が自動的に消去され、
インストールし直すと再びパスが設定し直されていた。

572 名前:デフォルトの名無しさん :2005/06/18(土) 22:45:17
>>570
アプリを作って公開し、叩かれたらやっと脱・初心者( ´ー`)y―┛~~
>>565
2台のPCで確かめたら1台は設定されたがもう一台は変化なし。
>>571をやってみたが設定されなかったほうは再び設定しなおされることがなかった。

573 名前:デフォルトの名無しさん :2005/06/18(土) 22:46:27
>>570
PC初心者とDirectX初心者の違いもわからないのか?

574 名前:デフォルトの名無しさん :2005/06/18(土) 22:50:47
>>573
PC初心者ならわかるが、DirectXに手を出すってことは当然通常の(?)プログラミングは知っていて
当然インクルードパスやライブラリパスなんて知ってるだろ。

575 名前:デフォルトの名無しさん :2005/06/18(土) 22:53:06
>>574
学校である程度プログラムを習ったからゲームを作ってみたいとか考えてる輩は知ってて当然とはいいがたいな
最近は昔と違って随分敷居が低くなってるからその辺の当然を求めるのはどうかと思うぞ

576 名前:デフォルトの名無しさん :2005/06/18(土) 22:56:46
Flashでイラストをプログラム制御してたのがきっかけで、その延長でDirectXを始めてたからそのときは知らなかったなぁ。
昔はどういう順序でプログラミングに入っていったんだろ。

577 名前:デフォルトの名無しさん :2005/06/19(日) 00:42:12
x86とx64の違いって何なんですか?32bitか64bitかってことですか?

578 名前:デフォルトの名無しさん :2005/06/19(日) 00:46:07
age

579 名前:デフォルトの名無しさん :2005/06/19(日) 00:47:45
>>577
またすごい釣り師が来たな

580 名前:デフォルトの名無しさん :2005/06/19(日) 01:22:43
あとXfree86とX68というのもあるぞ、ヤヤコシイ

581 名前:デフォルトの名無しさん :2005/06/19(日) 01:47:32
日曜プログラミングレベルだと、Win32とかすっ飛ばしていきなりDirectX始めたり
Javaすっ飛ばしていきなりiアプリ始めたりするやつはいるわけで、
それ自体は悪いことではなかろう。パラシュート勉強法なんて言葉もあったが。

582 名前:デフォルトの名無しさん :2005/06/19(日) 11:30:48
悪い事じゃないにしても、独学をちゃんとして欲しいね。

583 名前:デフォルトの名無しさん :2005/06/19(日) 12:26:03
独学なんてチグハグな知識の代名詞みたいなものなのに……

584 名前:デフォルトの名無しさん :2005/06/19(日) 13:21:10
IDEでしかプログラム作れない奴らって、
コンパイラの挙動が分かってないよな。
インクルードパスやライブラリパスなんて
コンパイラを直に使ってたら否が応でも
分からないとならないだろ。

585 名前:デフォルトの名無しさん :2005/06/19(日) 13:24:29
そうでもない。IDE利用の有無より、本人の素養や環境の問題だ.

586 名前:デフォルトの名無しさん :2005/06/19(日) 13:43:50
Linux環境でgccをコマンドから使っていても、
> インクルードパスやライブラリパスなんて
知らなくても何の問題もなく使えるが。
こういうことを言う人間ってリアルの方でも、
ろくに他の環境を知らないで、知ったかで適当をほざくんだろうなあ。

587 名前:デフォルトの名無しさん :2005/06/19(日) 14:21:54
アフォか。
gccでインクルードパスやライブラリパスを知らないで、問題が出てこないはずないだろ。
Hello worldでもコンパイルしてろ。

588 名前:デフォルトの名無しさん :2005/06/19(日) 14:25:02
それはIDEでも同じこと

589 名前:デフォルトの名無しさん :2005/06/19(日) 14:28:33
XファイルのAnimationKeyのアニメーションオプションに
オープン、クローズとあるのですが、何なんでしょうか?
検索しても、全く引っ掛からないし、対して重要で無い項目だったり
しますか?

590 名前:デフォルトの名無しさん :2005/06/19(日) 15:35:10
>>589
アニメーションがループするのか止まるのかの違いじゃね?

591 名前:デフォルトの名無しさん :2005/06/19(日) 15:37:25
>>587
恥の上塗りみっともない。

592 名前:デフォルトの名無しさん :2005/06/19(日) 15:55:35
>>590
Thanks


593 名前:デフォルトの名無しさん :2005/06/19(日) 20:53:59
パス知らないでgcc・・・?
おいらびっくりしたよ!

594 名前:デフォルトの名無しさん :2005/06/19(日) 21:11:10
その程度でびっくりできるなんて、無知だと毎日が斬新に思えるんだね。

595 名前:デフォルトの名無しさん :2005/06/19(日) 21:53:10
ジェネレーションギャップってやつ?
8インチFDを普通に使ってそう

596 名前:デフォルトの名無しさん :2005/06/20(月) 21:16:27
VC++.netでD3D9.hやd3dx9.hをインクルードするにはどうすればいいのですか?

597 名前:デフォルトの名無しさん :2005/06/20(月) 21:25:41
>>596
#include <d3d9.h>


598 名前:デフォルトの名無しさん :2005/06/20(月) 21:25:43
>>596
#include <d3dx9.h>

599 名前:デフォルトの名無しさん :2005/06/20(月) 21:37:39
>>596
すいません、言葉が足りませんでした。
ソースコードにそれを書くのはわかっているのですが、それを実行するためにVC++の設定をどうすればいいのか分かりません。
PCの環境は、DirectX9.0cが入っていて、VC++はインストールしたばかりです。

600 名前:デフォルトの名無しさん :2005/06/20(月) 21:58:29
適切なパスを設定すればいい。

601 名前:デフォルトの名無しさん :2005/06/20(月) 22:28:52
ネタスレにまで堕したか…

602 名前:デフォルトの名無しさん :2005/06/21(火) 00:57:52
>>599
先にVC++をインストールして、その後にDirectX SDKを入れる。
9.0cってのはランタイムだろ、どうせ。

603 名前:デフォルトの名無しさん :2005/06/21(火) 01:07:29
おまい、親切だな。

604 名前:デフォルトの名無しさん :2005/06/21(火) 07:03:11
>>599
そこからわからないなら入門書でも買ってしばらくは手順どおりに進めるほうがはやいじゃん。
それを買う金もおしいならプログラムなんて組むな。以上。

605 名前:デフォルトの名無しさん :2005/06/22(水) 15:30:28
どなたか>>508分かりませんか・・・?

606 名前:デフォルトの名無しさん :2005/06/22(水) 15:33:40
とりあえずDirectDrawを使わなければ幸せになれるよ。

607 名前:デフォルトの名無しさん :2005/06/22(水) 17:15:38
じゃんけんプログラムのmain関数の部分がわかりません。だれか教えてくださいm(_ _)m

608 名前:デフォルトの名無しさん :2005/06/22(水) 17:19:16
int main()
{ return Janken().run(); }

609 名前:デフォルトの名無しさん :2005/06/22(水) 17:22:16
>>608
void
main()
{
ここにいれるっぽいのですが
}


610 名前:デフォルトの名無しさん :2005/06/22(水) 17:23:41
自分の巣に帰れよ池沼

611 名前:デフォルトの名無しさん :2005/06/22(水) 17:27:58
#include <stdio.h>
int main()
{
printf("じゃんけんプログラム");
return 0;
}

612 名前:デフォルトの名無しさん :2005/06/22(水) 17:34:47
>>611
アザス!

613 名前:デフォルトの名無しさん :2005/06/22(水) 18:07:51
#include <stdio.h>
int main()
{
printf("じゃんけんしよう!\n入力してね グー:0 チョキ:1 パー:2\n");
int i;
scanf( "%d", &i);
printf("あなたの負けです\n");
return 0;
}


614 名前:デフォルトの名無しさん :2005/06/22(水) 18:37:49
>>613
テラワロスw

615 名前:デフォルトの名無しさん :2005/06/22(水) 18:39:14
>>613
Good Job!

616 名前:デフォルトの名無しさん :2005/06/22(水) 20:25:08
メタセコで作ったポリゴン(x)に2つ以上のテクスチャを張ってDirectXで表示したい場合、
テクスチャ別にポリゴンを分けてプログラム内でそれぞれ貼り付けていくのでしょうか?

617 名前:デフォルトの名無しさん :2005/06/22(水) 23:52:49
>>613
最強のじゃんけんプログラムとは、このことだったのですね!オモシロスw

618 名前:デフォルトの名無しさん :2005/06/23(木) 03:15:48
>>616
ループ回してプリミティブ単位で描画するから
毎ループSetTexture呼ぶ
つーかまずXファイルの表示とかやってみた?

619 名前:616 :2005/06/23(木) 08:03:55
レスありがとうございます。
dwNumMaterialsを把握せず
for( DWORD i=0; i<dwNumMaterials; i++ )
{
 lpD3DDevice->SetMaterial( &pMeshMaterials[i] );
 lpD3DDevice->SetTexture( 0, pMeshTextures[i] );
 pMesh->DrawSubset( i );
}
とやっていましたが、ここがキーなのでしょうか。
夜に色々試してみます。

620 名前:デフォルトの名無しさん :2005/06/23(木) 15:18:12
ポリゴンの拡大縮小とか
Lockして内容書き換えないとメモリ増えていくのでしょうか
今、上書きしてる状態で、作ったプログラムが(MCleanで見て)
徐々にメモリが増加してワラエナイッス


621 名前:デフォルトの名無しさん :2005/06/23(木) 15:34:45
ロックしなくても、行列でスケーリングをセットすれば済むだけだと思うが。

622 名前:620 :2005/06/23(木) 15:41:20
>>621
あ、そうでした。拡大は行列を触ればいいすね。

ではちょっと内容を変えて
拡大縮小とか −> 徐々に透明にする場合
ちなみにシェーダー使ってないんですよ。すんません。


623 名前:デフォルトの名無しさん :2005/06/23(木) 15:48:09
固定ならマテリアルを変更すればいいだけ。

624 名前:620 :2005/06/23(木) 17:27:26
なぞが解けた。解放忘れであった。
newしまくり。
で、プログラム見たら数週間前の
自分のプログラムをすっかり忘れてる。

625 名前:デフォルトの名無しさん :2005/06/23(木) 17:33:50
固定っていつまで続くんだろ

626 名前:デフォルトの名無しさん :2005/06/23(木) 17:33:55
そもそも確保し直す必要も毎回ロックする必要も無いんだって。

627 名前:デフォルトの名無しさん :2005/06/23(木) 19:54:25
>>625
固定パイプラインに相当する機能は永遠に必要。
ただし、D3DXの担当に変わる可能性は大きいけどな。

628 名前:デフォルトの名無しさん :2005/06/23(木) 20:35:55
WGF2.0あたりで変わりそうな希ガス
しかし消失サーフェスのチェックやらd3dcapsのチェックやら
という腐れ仕事はいつまでしなきゃいけないんだろう…

629 名前:デフォルトの名無しさん :2005/06/23(木) 22:10:48
WGF2.0でデバイスロストが無くなるから、それまでの辛抱

630 名前:デフォルトの名無しさん :2005/06/23(木) 22:50:40
ハードが行き渡るまで待ってなきゃならない人間にとっては5年は無理。

631 名前:デフォルトの名無しさん :2005/06/24(金) 08:05:43
http://www.watch.impress.co.jp/game/docs/20050308/wgf.htm
ここに「必要機能は全て実装されていることが前提」ってあるから、
dedcapsで機能調べたりってのはかなりなくなるんじゃね?

632 名前:デフォルトの名無しさん :2005/06/24(金) 14:04:45
DirectX7でアルファ成分を持っている32ビットのテクスチャを用意して、
徐々に緑(G)とアルファの値が0〜255になるようなものを作って
背景が真っ赤の画面に描画したのですが、徐々に黄色(背景と混ざった色)になってしまいます。
原因が思い当たる方いますか?ちなみに背景を黒にするとちゃんと表示されます。

633 名前:デフォルトの名無しさん :2005/06/24(金) 14:13:48
>>632
D3DRENDERSTATE_SRCBLEND, D3DRENDERSTATE_DESTBLENDの設定が悪い。

634 名前:デフォルトの名無しさん :2005/06/24(金) 14:42:28
>>632
ブレンドファクター121で ググる

635 名前:デフォルトの名無しさん :2005/06/24(金) 14:48:29
>>632
> 原因が思い当たる方いますか?ちなみに背景を黒にするとちゃんと表示されます。
                                  ~~~~~~~~~~~~~~~
マズ 赤背景の時に、どのように発色させたいかはっきりしよう。

> 徐々に黄色(背景と混ざった色)になってしまいます。
↑は、有る意味正しく動作しているんだヨ

636 名前:デフォルトの名無しさん :2005/06/24(金) 15:05:40
>>632
赤色の画用紙の上に緑色のセロハンテープ重ねて置いてみ。
何色に見える?

それで解からなかったら幼稚園児からやり直すといいよ。

637 名前:632 :2005/06/24(金) 16:17:33
みなさま、ご返答ありがとうございます。すみません。期待している動作は赤の背景にそのテクスチャを描画すると
赤(R255 G 0 アルファ値0)→暗めの黄色(R128 G128 アルファ値128)→緑(R0 G 255 アルファ値255)となるものです。

>>634さんから教えていただいた「ブレンドファクター121」を読んでみます。

638 名前:デフォルトの名無しさん :2005/06/24(金) 17:00:24
できました。ありがとうございました。

639 名前:デフォルトの名無しさん :2005/06/26(日) 17:23:29
DirectX9cのApril?では3D使うとDLLを1つ配布しないとダメでしたけど
Juneの奴も同じなのでしょうか?

640 名前:デフォルトの名無しさん :2005/06/27(月) 00:01:11
> DirectX9cのApril?では3D使うとDLLを1つ配布しないとダメでしたけど

はぁ?D3DXのDLLのことか?
DLLを単体で配布するほうがダメだ、ってM$が言ってるだろ

641 名前:デフォルトの名無しさん :2005/06/27(月) 00:07:29
それって、配布先ターゲットマシンにDirectX9c入って無いだけじゃないのかと。

642 名前:デフォルトの名無しさん :2005/06/27(月) 00:38:29
PC初心者かよ

643 名前:デフォルトの名無しさん :2005/06/27(月) 03:10:08
ttp://discuss.microsoft.com/SCRIPTS/WA-MSD.EXE?A1=ind0506b&L=directxdev#2
ttp://www.microsoft.com/japan/msdn/directx/dxreadmej.asp

相変わらずファイルの単体配布は駄目だけど、条件付で再配布ファイルのバラ売りが
可能になったっつーことかね。よくわかんねーけど。

もうめんどくせーからOct2004止めしとこーぜぼくたち初心者くんは。

644 名前:デフォルトの名無しさん :2005/06/27(月) 03:28:49
9.0b止めしてるぜ

645 名前:デフォルトの名無しさん :2005/06/27(月) 13:23:52
VC6.0でDirectX SDK 9.0c の日本語ヘルプをF1で呼び出せるようにする方法はありますでしょうか?
DirectX9Oct04JpnDoc.msi は普通にインストしてもだめぽでした。(.NETにしか対応してないぽ・・。)
.NET買えってことですかね・・(´・ω・`)

646 名前:639 :2005/06/27(月) 18:48:19
>>640-643
あれ?DirectX9cのどれかのバージョンは
作ったゲーム配布するときDLLも添えないとダメでしたよね?
一般向けのDirectX9cランタイムに含まれていないから
どれかDLLもいっしょに配布しないと動かないと書かれていたはずです

これがJuneでは不要なのか
あいかわらずいっしょに配布しないと動かないのか

647 名前:デフォルトの名無しさん :2005/06/27(月) 20:08:37
おっと失礼
最新の一般向けDirectX9cランタイムには
全部のDLLが入ってることがわかりました
無事解決です

648 名前:デフォルトの名無しさん :2005/06/27(月) 20:42:20
んとねー。
Dec2004からはD3DXが性的ライブラリからDLLに変わったんだよねー。
これでちょっとD3DXのコード呼び出しただけで数百KBも実行ファイルサイズ増しなんてことが
無くなってみんな幸せになるかと思いきや、エンドユーザー向けの9.0cラインタイムには
Dec2004以降のSDKで開発したプログラムを動かすためのファイルが一部入ってないわけよー?
実際には足りないといってもD3DXのDLLファイル(d3dx_24.dllとかd3dx_25.dll)を
直接実行ファイルの隣に置いておけば動くんだけどー、なんかそれってライセンス的に完全にアウトなわけよー。
じゃどーすんだと言えばー、それぞれのSDKに付いてる再配布用のランタイムのインストーラである
DXSetup様御一行を添付しなきゃならないわけよー。40MB近くあったっけこれー?
マジ勘弁しろよって感じだったんだけどー、June2005ではDXSetupで再配布しなきゃならないのは
相変わらずだけど、インストーラのコアだけ残しておけば必要なファイルだけを添付するのが可能になったわけだー。
D3DXの更新のみ必要な場合は4MB程度の添付で済むわけだー。


そんな文章書いていたんですけど
>>647
マジでー? 去年の8月から日付変わってねーのに。これ(↓)のことじゃないっスよね?
http://www.microsoft.com/downloads/details.aspx?FamilyID=3ad9f0d1-8d81-40c8-9815-924dcd4cd2c5&DisplayLang=en

649 名前:デフォルトの名無しさん :2005/06/27(月) 20:44:28
>>648
性的ライブラリのままの方が良かった。

650 名前:デフォルトの名無しさん :2005/06/27(月) 20:52:52
卑猥な人たちですね。

651 名前:デフォルトの名無しさん :2005/06/28(火) 20:53:43
テクスチャを自分で読み込むにはどうしたらいいですか?
OpenGLだと自分で勝手にフォーマット決めて読み込んでいたのですが…
DXだとD3DXでしかLPDIRECT3DTEXTUREを作れないんですか?

652 名前:デフォルトの名無しさん :2005/06/28(火) 21:45:54
CreateTexture
Lock

653 名前:デフォルトの名無しさん :2005/06/29(水) 04:47:23
テクスチャフォーマットを無視してtexture::lockで書き込み、意図した結果が得られない悪寒。
とりあえずD3DFMT_A8R8G8B8 にしてLockしたら A<<24|R<<16|G<<8|B で書き込んどけ。


654 名前:デフォルトの名無しさん :2005/06/29(水) 04:55:14
とりあえず↓みたいにすれば、好きなARGBビット割り当てでのカラーコードが得られるぞ。
int argb(int a, int r, int g, int b, int abit, int rbit, int gbit, int bbit ) {
return (a>>(8-abit))<<(abit+rbit+gbit) | (r>>(8-rbit))<<(rbit+bbit) | (g>>(8-gbit))<<bbit | (b>>(8-bbit)) ;
}
D3DFMT_R5G6B5の場合は argb(a,r,g,b,0,5,6,5) にしとく。

655 名前:デフォルトの名無しさん :2005/06/29(水) 19:04:05
DirectMusicで一時停止の仕方を教えて下さい。
wavファイルを使って途中再生しようと思ったのですが、必ず最初から再生されます。

セグメントは GetObject() で取得しています。
Segment->SetStartPoint(time);
PlaySegmentEx(...,&pss,...);
pss->QueryInterface(IID_IDirectMusicSegmentState8, (LPVOID*) &pss8);
を呼び出した後、値を調べてみると
Segment->GetStartPoint() == time
pss8->GetStartPoint() == 0
となっていたので、PlaySegmentEx() 関数を調べてみたものの
よく分かりませんでした。

SDKヘルプの「セグメントの一時停止」を参考にしたのですが、
特にこれといった注意書きも見当たりませんでした。

656 名前:デフォルトの名無しさん :2005/06/29(水) 23:20:56
60fspの親ウィドウの上にTEXTの子ウィンドウを作って文字入力し描画したら
激しくちらつくんですがどうやったら親ウィンドウが毎描画するごとに
子ウィンドウを前面に描画することができるんでしょうか?

657 名前:デフォルトの名無しさん :2005/06/29(水) 23:41:54
文字入力そのものを自分で描画すればいい。

658 名前:デフォルトの名無しさん :2005/06/30(木) 01:52:56
Xファイルについてなんですけど
フリーのゲームとかみてたらXファイルがフォルダの中にはいっていないのは
他の何かに埋め込んでるからなんですか?
どのように隠しているのかヒントください

659 名前:デフォルトの名無しさん :2005/06/30(木) 01:55:27
>>658
拡張子の変更、暗号化、別ファイルに埋め込み、そもそも別のファイル形式

660 名前:デフォルトの名無しさん :2005/06/30(木) 04:41:20
逆行列の作り方は、左からベクトルを掛けるタイプと
右からベクトルを掛けるタイプとどちらのタイプの行列でも
同じ作り方でよいですか?

661 名前:デフォルトの名無しさん :2005/06/30(木) 11:19:00
Visual C++でMFCを使ってのDirectXプログラミングの解説って少ないですね。
MFC使わないでWin32API使った方がやっぱり楽なんですかね…。

662 名前:デフォルトの名無しさん :2005/06/30(木) 11:26:22
初期化の部分がちょっと面倒になるだけだから、解説するほどのことでもない。

663 名前:デフォルトの名無しさん :2005/06/30(木) 11:33:28
そうですか。MFCでdirectinput試してるけどなんか上手く行かないんですよね。
まあ、もう少し色々試してみます。

664 名前:デフォルトの名無しさん :2005/06/30(木) 21:50:45
すいません、質問よろしいでしょうか?
3D空間にオブジェクト配置してそれをマウスでクリックして反応とれるようにしたいんですが、
D3DXVec3Unprojectが上手く動いてくれません。
http://www.tsg.ne.jp/sept/prg/memo/polypick.asp
↑見るとワールド行列が初期化されてそのまま入っているのでこれを参考にしたのですが、これで動くものなんでしょうか?
あと、よろしければ皆さんがどのようにZ軸の値を決めているのかも聞かせていただければ幸いです

665 名前:デフォルトの名無しさん :2005/06/30(木) 22:48:19
レイを伸ばすだけ。
それ以上でもそれ以下でもない。

666 名前:デフォルトの名無しさん :2005/06/30(木) 23:12:35
>>664
D3DXVec3Unprojectの第3〜6引数は描画に使ってるのと同じのを渡すだけ。
おまえがワールド行列に単位行列を使ってるなら単位行列を渡せばいい。

667 名前:655 :2005/07/01(金) 00:42:51
>>655で、DirectMusicのwav再生の事で質問した者です。

BBXという掲示板を拝見した所、DirectMusicについての返答は、
ほとんど期待できない様な事が書かれていました。
これは、ここでの返答も期待出来ないと思った方がいいのでしょうか?

というか、期待出来ないと言う事は不可能な処理なのでしょうかね?
一時停止に成功された方がいましたら、返信して頂けないでしょうか?

668 名前:デフォルトの名無しさん :2005/07/01(金) 00:46:39
DirectSoundで自分で好きなように加工して再生すればいいだけ。
ソフトシンセを使う以外でDirectMusicを使う必要性がさっぱり分からない。

669 名前:デフォルトの名無しさん :2005/07/01(金) 01:43:37
一時停止に成功・・・そんなに難しいことなのか?

670 名前:デフォルトの名無しさん :2005/07/01(金) 06:29:42
DirectMusic誰も使ってないもんな。

671 名前:デフォルトの名無しさん :2005/07/01(金) 06:56:02
>>667
>注 サンプル関数の mtLength パラメータは、
>通常、WAV ファイルからロードされたセグメントに対しては 1 である。
>この場合は、SetStartPoint を呼び出す前に、IDirectMusicSegment8::SetLength を使って、
>セグメントの長さを現在のオフセットより少なくとも 1 チックだけ大きい値に設定する必要がある。
>詳細については、IDirectMusicSegment8::SetStartPoint を参照すること。
このへんにやられてるってこともない?

672 名前:655 :2005/07/02(土) 02:46:30
皆さん、返信ありがとうございます。

試しに DirectSound で実装してみたら……なんか、簡単に実装出来ちゃいました。
確かに DirectMusic 使うんなら、こっちでよさそうですね。

あ、でも一時停止が出来なかった原因は知りたいな、とも思います。
というわけで、>>671さん。
はい、SetLength はちゃんと設定してあります。
GetLenght で設定した値が返ってきましたので、ここは問題ないと思います。

673 名前:デフォルトの名無しさん :2005/07/02(土) 15:30:41
DrawIndexedPrimitiveでLINESTRIPを表示すると、白い線しか表示できません。
具体的にどこで色を指定すればいいんでしょうか?
MaterialのDiffuseとAmbientとEmissiveとSpecularは試してみましたが駄目でした。
環境はXP DirectX9.0C GeForce6800です。

674 名前:デフォルトの名無しさん :2005/07/02(土) 15:39:06
ラインでも色の付き方、指定の仕方はは通常ポリゴンと変わらない。
よってラインだから発生する色の疑問点などどこにもない。

675 名前:デフォルトの名無しさん :2005/07/02(土) 15:56:02
単純にD3DRS_LIGHTINGがTRUEになってないだけだったりして

676 名前:673 :2005/07/02(土) 16:09:54
>>675
頂点色を付けて、
D3DDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
の1行を追加したら見事色付きで表示されました!
ありがとうございました。
Materialの設定は特に必要ないみたいでした。

677 名前:673 :2005/07/02(土) 16:14:19
と思ったら、
D3DDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
も必要なくて、頂点色だけでOKだったようです。
最初に頂点色で試したときに何かミスってたようです・・・。
ありがとうございました。

678 名前:673 :2005/07/02(土) 16:20:35
最初にうまくいかなかった原因は、色つき頂点のFVFがD3DFVF_XYZRHW | D3DFVF_TEX1になっていたというくだらない理由でした・・・。
お騒がせしました。

679 名前:デフォルトの名無しさん :2005/07/02(土) 22:27:46
昔自分で書いたDx7のラッパーをヘルプを見ながらDx8用に書き換えてます。

Dx7のDirectSoundにはチュートリアルに大きなwavファイルをストリーミングして再生する方法が
載っていたのですが、DX8のチュートリアルにはありません。
もしかして自動的にやってくれるのでしょうか?

680 名前:デフォルトの名無しさん :2005/07/02(土) 22:52:28
>>679
なんでDx9にしなかったの?
バカジャネwクルシメw

誰も助けてくれないのは承知の上だよね?w

681 名前:デフォルトの名無しさん :2005/07/02(土) 22:55:54
>>680
DirectSoundはDX8もDX9も同じじゃない?

682 名前:デフォルトの名無しさん :2005/07/02(土) 23:03:14
>>681
じゃあ、こいつ>>679なんのヘルプみてんの?

683 名前:デフォルトの名無しさん :2005/07/02(土) 23:05:21
CStreamingSound Sample Class

684 名前:デフォルトの名無しさん :2005/07/02(土) 23:08:58
>>682
シラネ

685 名前:デフォルトの名無しさん :2005/07/02(土) 23:09:46
DirectX9対応じゃないビデオカードでも、DirectX9のゲームは動くんだから、
DirectX9使えばいいのに。

686 名前:デフォルトの名無しさん :2005/07/02(土) 23:21:49
>>680がバカ丸出しな件について

多分自分でコード書いたこと無い阿呆かと

687 名前:679 :2005/07/02(土) 23:24:55
>>680
もしかしてそれはギャグで言っているのか?(AA略

688 名前:デフォルトの名無しさん :2005/07/02(土) 23:25:43
>>686
いや、DirectSoundなんてとっくの昔にラッパー組み上げて放置状態だけど?
複数同時のストリーミング再生まで出来てる。
お前もできてからグチグチいってみろ。
できてるならよし。

689 名前:デフォルトの名無しさん :2005/07/02(土) 23:26:41
それとCStreamingSound Sample Classはみたんだよね?

690 名前:デフォルトの名無しさん :2005/07/02(土) 23:28:06
いつからDirectSound9が出来たのか教えてくれwww

691 名前:デフォルトの名無しさん :2005/07/02(土) 23:28:39
>>690
追加された項目があるだろ?

692 名前:デフォルトの名無しさん :2005/07/02(土) 23:30:22
ここはネタまみれのインターネッツですね
トンチンカンな噛み付き方した>>680の負け

693 名前:デフォルトの名無しさん :2005/07/02(土) 23:31:16
>>680がなんで熱くなってるのかわからない

694 名前:デフォルトの名無しさん :2005/07/02(土) 23:33:14
>>692
いや、>>679が求めてる内容がまさにDirectX9で追加された
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/htm/cstreamingsoundsampleclass.asp
だからね。
救いようが無いね。

695 名前:デフォルトの名無しさん :2005/07/02(土) 23:33:55
>>693
自分の間違いを認められず誤魔化したくて必死なんだよ
そっとしておいてやるのも優しさだぞ?

696 名前:679 :2005/07/02(土) 23:52:28
質問の意図が勘違いされてるようで
聞きたかったのはストリーミングの仕方ではなくてDx8のヘルプに載ってない
理由だったんだけどな
載ってないならDx8Audioインターフェースなら自動的にやってくれるのか?、と
なおストリーミングなら自前のDx7Soundラッパーで実装済み
取り敢えず簡単に7->8と書き換えれば済むって事が判ったのでいいけどね

Dx9Soundには笑ったけど

697 名前:デフォルトの名無しさん :2005/07/03(日) 01:03:30
>>696
>聞きたかったのはストリーミングの仕方ではなくてDx8のヘルプに載ってない理由だったんだけどな
ハイハイ。理由まで書いてあるヘルプなんてみたことないけどね。

698 名前:デフォルトの名無しさん :2005/07/03(日) 01:07:00
恐ろしい読解力だ

699 名前:デフォルトの名無しさん :2005/07/03(日) 01:08:23
>>697
楽しそうですね。

700 名前:デフォルトの名無しさん :2005/07/03(日) 01:12:43
結局、>>694のリンク先を使うんだろ?

701 名前:デフォルトの名無しさん :2005/07/03(日) 01:34:16
プログラマーって悲しい生き物ぢゃ

702 名前:デフォルトの名無しさん :2005/07/03(日) 01:51:45
>>696
DirectX8にはカスタムロードがあるから。
MSの中の人はDSoundからストリーミングする方法は書かなくても良いと
思ったんじゃないだろうか。

http://www.microsoft.com/japan/msdn/directx/techart/dmloading.asp


703 名前:デフォルトの名無しさん :2005/07/03(日) 07:49:11
Xファイルを読み込んで表示させてみたのですが、
前後関係がおかしく表示されてしまいます。
SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE)
してるんですけどダメです。
心当たりのある方、教えてください。

704 名前:デフォルトの名無しさん :2005/07/03(日) 08:59:22
データの座標系と描画に使っている座標系が何になっているかをまず答えてくれ。
話はそれからだ。

705 名前:679 :2005/07/03(日) 09:22:38
>>700
使わない、機能的には俺が書いたラッパーと変わらん
つか自分が書いたラッパーに依存しきったプロジェクトが既にあるんで
今からI/FをMS謹製に合わせたくないのが正直な所

>>702
サンクス、すぐには使えませんがちょっと調べてみます。
自前ラッパーもそろそろ寿命かな…

706 名前:703 :2005/07/03(日) 10:04:18
>>704
座標系って右手とか左手とか?
SDK のサンプルだから左手だと想うんだけど……
視点も左手。

http://nijibox.ohflip.com/futabafiles/001/src/sa25173.png
↑こんな感じに描画される。
フタと注ぎ口が見えてるけど、底の方が手前。
小さく見えてる方が Z値大きい。

707 名前:デフォルトの名無しさん :2005/07/03(日) 11:35:24
射影行列のZnはいくつにしてる?

708 名前:デフォルトの名無しさん :2005/07/03(日) 11:39:19
>>703
EnableAutoDepthStencilをTRUEにしてる?

709 名前:デフォルトの名無しさん :2005/07/03(日) 11:52:51
>>707
ゼロでした。 1 にしてみたらちゃんと表示できているようです。
まさかこんなところとは……

みなさん(?)ありがとうございました。

710 名前:質問 :2005/07/03(日) 15:44:54
DirectX9 HLSLでできることというのは、DirectX8までのアセンブラシェーダで同じものを書くことはできないのですか。
それとも単に高級言語で書けるようになっただけ、なのでしょうか。

711 名前:デフォルトの名無しさん :2005/07/03(日) 16:00:32
>>710
基本的には後者の認識で正しい。
DX9にはコマンドラインのシェーダコンパイラが付属しているから、
HLSLをコンパイルしてアセンブリコードを吐いてみると面白いよ。

712 名前:デフォルトの名無しさん :2005/07/03(日) 16:03:21
今DirectXつかってゲーム製作中なんですけど
やたら動作が遅く感じたので、FPS表示させてみたら30〜40位しかでてないんですけど
タスクマネージャでCPU使用率見たら0〜3くらいしか使ってません(あとはアイドル
CPU使用率ってどういう状況で高くなるんですか??

713 名前:デフォルトの名無しさん :2005/07/03(日) 16:06:12
Direct3D9: (INFO) :MemFini!
Direct3D9: (ERROR) :Memory still allocated! Alloc count = 220
Direct3D9: (ERROR) :Current Process (pid) = 00000e10
Direct3D9: (ERROR) :Memory Address: 0037732c lAllocID=1 dwSize=000047f8, ReturnAddr=011534c8 (pid=00000e10)
Direct3D9: (ERROR) :Memory Address: 0037da34 lAllocID=11 dwSize=000013d4, ReturnAddr=0114c2cb (pid=00000e10)

というのはどういうことなんでしょう?・・メモリーリークなのは解りますがMemFini!ってどういうことですか?

714 名前:デフォルトの名無しさん :2005/07/03(日) 16:08:56
>>712
GPU側の描画処理がボトルネックになってるんじゃない?

715 名前:デフォルトの名無しさん :2005/07/03(日) 16:09:24
>>713
(INFO) だから気にするな

716 名前:713 :2005/07/03(日) 16:31:46
>>715 d

717 名前:デフォルトの名無しさん :2005/07/03(日) 16:47:07
>>711
くぁりがとうございました

718 名前:デフォルトの名無しさん :2005/07/03(日) 18:39:33
WGF2あたりからはHLSLだけになるんだっけ?

719 名前:デフォルトの名無しさん :2005/07/03(日) 19:39:09
意味ね-----------------------------------------------------------------

また最適化はコンパイラまかせのアホが出る

720 名前:デフォルトの名無しさん :2005/07/04(月) 01:11:41
rayの使い方について少しお聞きしたいのですが、
D3DXIntersectを使って3Dオブジェクトを選択しようとしているのですがどうも上手くいきません。
第一引数に対象のメッシュを、第二引数にメッシュのローカル座標?に変換したマウスの座標を、
第三引数には方向ベクトルということで(0,0,1)を入れました(視点はXY平面に平行です)が、
どこをクリックしても第四引数がTRUEになってしまいます。
恐らくこの文だけでも多くの突っ込みどころがあるかとは思いますが、どうかご教授願えないでしょうか?


721 名前:デフォルトの名無しさん :2005/07/04(月) 11:37:51
とりあえずレイは「視点の座標」と「マウスのスクリーン座標をワールド座標系に変換した座標」を結ぶ直線
ではないだろうか。

722 名前:デフォルトの名無しさん :2005/07/04(月) 11:57:14
平行投影だから視点が無限遠になっちゃうんでしょ

723 名前:デフォルトの名無しさん :2005/07/04(月) 12:01:56
どこから並行投影という言葉が出てきたのか。

724 名前:デフォルトの名無しさん :2005/07/04(月) 12:03:13
↑×並行○平行

725 名前:デフォルトの名無しさん :2005/07/04(月) 12:03:55
>>723
>>720の「視点はXY平面に平行」って平行投影のことじゃないのかな

726 名前:デフォルトの名無しさん :2005/07/04(月) 12:13:20
DirectXは知らんのだが、
>視点はXY平面に平行です
って、まさか画面に平行じゃないだろうなぁ。
#いや、念のためだ。

727 名前:デフォルトの名無しさん :2005/07/04(月) 12:16:15
雰囲気で察っしたまえよ。
とりあえず簡単にど真ん中向いてやろうとしてるだけじゃねーの。
だから、レイの方向を適当に0,0,1と入れてみた。
その補足として「〜は平行です」と書いた。
でも言いたかったのは正しくは「視線がxy平面に垂直」であると。
そもそも点と面で平行とか垂直って言うのかいな。バカの巣窟だな。

728 名前:デフォルトの名無しさん :2005/07/04(月) 12:20:14
XrayNはDQNだよ

729 名前:デフォルトの名無しさん :2005/07/04(月) 12:27:37
>>727
巣窟も何も、>722=725が馬鹿なだけだろ?

730 名前:デフォルトの名無しさん :2005/07/04(月) 12:36:31
DirectX は知らないんだけど Ray は始点を含まない有向半直線だったりしないのかね?

731 名前:デフォルトの名無しさん :2005/07/04(月) 12:46:57
知らないなら黙ってろよウゼェ。>>721でFA出てんだよ。

732 名前:デフォルトの名無しさん :2005/07/04(月) 13:32:44
>>730
要は"レイの向き"には、射影後の空間での奥方向(+Z方向)のベクトルを、
モデル空間に逆変換したものを指定すればいいんだけど、
"向き"を透視変換入りの行列で逆変換してもうまくいかないから、
代わりにレイの始点( px, py, 0 )とレイの注視点( px, py, 1 )を逆変換して、
2つの差分を求めればいいわ。
px = (mouseX / screenWidth - 0.5f) * 2.0f;
py = -(mouseY / screenHeight - 0.5f) * 2.0f;
これで透視射影でも正射影でもおkよ。

733 名前:デフォルトの名無しさん :2005/07/04(月) 13:33:34
×>>730>>720

734 名前:720 :2005/07/04(月) 14:50:33
皆さん回答ありがとうございます。レイの方向が変だってことですかね?
それ以前に日本語で変なところがあったようですが。。
奥行きがZ軸の正方向なので単純に{0,0,1}でいいのかと思ってました。


735 名前:デフォルトの名無しさん :2005/07/04(月) 15:48:23
>>734
厳密には>>732のやり方は、レイの開始点がニア平面の部分に来るから、
視点からニア平面までの見えないポリゴンは判定できないのよ。
視点に合わせようと思ったら、一旦2点をビュー空間に逆変換して、2点の線分の
z=0平面との交点を新しいレイ始点にして、それからモデル空間に
逆変換って感じになるかしら。(ちょっと面倒くさいわね。)
透視射影で決め打ちだったら、ビュー空間の(0,0,0)を逆変換するだけだから
そっちの方が幸せになれるかもね。

736 名前:デフォルトの名無しさん :2005/07/05(火) 16:02:52
最近シェーダーに興味を持って、これから勉強していきたいと思っています。
まだプログラムをせずサンプルプログラムを見ている段階なのですが、
t-potのマルチサンプリングソフトシャドウ等が動きません。
ttp://tpot.jpn.ph/t-pot/program/116_SoftShadoeMulti/index.html

ボタン見たいなのがある(#include "dxstdafx.h"がある?)プログラムのみエラーが出ます。。
(t-pot以外の同じようなボタンのあるプログラムも動きませんでした。)

エラー:Could not find required media. Ensure that the DirectX SDK is correctly installed.
環境:DirectX 9.0 SDK (June 2005) : NVIDIA SDK 9.1 : Visual studio

もし原因が分かる方がいましたら、申し訳ありませんが助力をお願い致します。

737 名前:デフォルトの名無しさん :2005/07/05(火) 16:33:09
>>736
DirectXSDKの \Samples\Media\UI フォルダを、*.exeと同じフォルダに
コピーすれば一応動くわよ。
(DXUTは、同じバージョン(この場合2004Summer)のSDKのフォルダしか
探してくれないみたいね。)

738 名前:デフォルトの名無しさん :2005/07/06(水) 14:24:03
本日試したところ、無事動作いたしました。
737さんありがとうございます。

739 名前:デフォルトの名無しさん :2005/07/06(水) 16:18:03
2Dゲーム作るなら8と9どっちがいいんでしょうか

740 名前:デフォルトの名無しさん :2005/07/06(水) 16:34:01
DirectXがいいと思う

741 名前:デフォルトの名無しさん :2005/07/06(水) 16:34:34
>>739
8と9ならあんま変わってないから9

742 名前:デフォルトの名無しさん :2005/07/06(水) 16:39:11
>>740,741
ありがとうございます


743 名前:740 :2005/07/06(水) 17:30:00
わざわざ俺なんかにもお礼して頂いて恐縮です

744 名前:デフォルトの名無しさん :2005/07/06(水) 21:01:53
Zソートを実装したいと思ったのですが、どのように面をソートして良いのか分かりません。
1フレームごとに、インデックスバッファのデータをソートしなおすとすごく遅くなりそうです。
オブジェクト単位でソートすると、オブジェクトの中の面はソートされませんよね・・・。
皆さんはどのようにして実装されておられますか?

745 名前:デフォルトの名無しさん :2005/07/06(水) 21:17:46
普通は割り切って、オブジェクト単位で我慢する。

746 名前:デフォルトの名無しさん :2005/07/06(水) 21:25:25
俺は半透明なんか使わないぜ!

747 名前:デフォルトの名無しさん :2005/07/06(水) 21:37:37
そろそろGPU側でうまいことやってくれないかな…?

748 名前:デフォルトの名無しさん :2005/07/06(水) 21:56:02
レスありがとございました。
では割り切ってオブジェクト単位でがんがります。

749 名前:720 :2005/07/06(水) 22:40:23
>>732
何度もすみません、( px, py, 1 )をD3DXVec3Unprojectを使って逆変換したのですが
値をみるとめちゃくちゃになっちゃいます、、
( px, py, 0 )だとそれっぽい値がでるのですが。。。

750 名前:デフォルトの名無しさん :2005/07/06(水) 22:45:02
>>749
D3DXVec3Unprojectはビューポートの変換もしてくれるから
px,pyじゃなくてmouseX,mouseY(マウスのクライアント座標)を
そのまま渡せばいいわ、多分。


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.