トップページgamedev
1001コメント355KB

DirectX総合スレ (Part2)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。04/09/22 23:30:32ID:anobjZYP
DirectXについては基本このスレで話していこうとものです。
基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き
このスレの回転を早めて常にアクティブなスレにしたいと思っております。
このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。
質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。

テンプレは >>2以降で
0720名前は開発中のものです。04/12/10 07:23:56ID:jq48CoU8
>>718
うん。

>>719
技術板だ、理由を言え。
0721名前は開発中のものです。04/12/10 10:23:46ID:PRMmN4dx
普通は馬鹿にするほうが理由を言うもんだろう。
0722名前は開発中のものです。04/12/10 10:26:21ID:L+RmPzsY
技術的に固定機能が優れている点をあげよ、ってことならそれは無茶よ。
今は俺もシェーダ使ってるし、もう固定機能には見切りを付けてるもん。

最終目的は映像を表現することで、それが出来るなら手段は何でもいいんじゃない。
話聞いてるとどれもそう手間は変わらなさそうな内容だし、そこまで貶す必要もないと思った。
世の中頂点シェーダですらできないような頂点処理もあるわけだし、
馬鹿にするのはそういうのを無理して固定機能でやるとき位にしてやってくれw
0723名前は開発中のものです。04/12/10 10:57:07ID:b5UiCi3W
>>722
同意、まぁどっちの派にしろ、自分が慣れた方しか認めないのは見苦しいね。

固定の良いところか…ある程度決めうちできるゲームは良いけど、
アプリなんか作ってると固定の方が楽に感じることはあるかな。
(今使える)OpenGLと共用する時とか。
0724名前は開発中のものです。04/12/10 11:03:49ID:KYyRlGH4
OpenGLと共用なら、固定だと行列の並びが異なるので逆に使いづらい気がする。
0725名前は開発中のものです。04/12/10 13:50:58ID:evJV8sI6
基本的には漏れも頂点シェーダを使う派なんだけど、あえて固定パイプラインの利点を
上げるとすれば、プログラマブルでないTnLを持ってるGPUでは固定パイプラインを使った
ほうが高速ってことはないかい。GeForce MXとかそうじゃなかったっけか。
測定したわけじゃないんで、間違ってたらごめん。
0726名前は開発中のものです。04/12/10 16:38:27ID:Y4Ud5gjc
>>725 ベンチ見るかぎりでは平均8.2%速いってさ
0727名前は開発中のものです。04/12/10 16:53:28ID:KYyRlGH4
TnLが効く古いビデオカードに最新のCPUという構成の場合、使わない方がはやい。
ただしCPUの空きが増えるので、使った方が負荷は軽くなる。
0728名前は開発中のものです。04/12/11 20:11:30ID:ENo3zpOh
STGのような多数のオブジェクトを表示するゲームで
2D描画にDrawPrimitiveUpを使っています。
基本的な動作としてはオブジェクトごとに

動きを計算し
行列の計算→D3DXMatrix系の関数

描画時に
SetTransform → DrawPrimitiveUp

を毎フレーム繰りかえすという形でいいんでしょうか?
無駄が多い気がするんですがほかにいい方法は思いつきません。
0729名前は開発中のものです。04/12/11 20:26:22ID:fhqnR+WK
>>728
明らかに無駄だな。
必要ねーぞ。
マジで。

SetTransform必要ないだろ。
だってTL_VERTEXとかそんなんじゃねーの?
0730名前は開発中のものです。04/12/11 20:30:06ID:Fu3sSY9f
>>728
上でも議論があるが、Up じゃなくて UP な。

3Dの複雑なモデルならともかく、2Dのキャラクタで、
DrawPrimitie系メソッドを「オブジェクトごとに」呼び出すのはいけてない。
UP系を使ってるんなら、
一つの頂点配列に複数のオブジェクトで使う頂点をまとめて格納しておいて、
頂点の座標を全て書き換えてから一度だけDraw。
0731名前は開発中のものです。04/12/11 20:47:23ID:RsIq+yY4
無駄は無駄だが、どうせ今の環境ではその程度改善したところで、
全体のパフォーマンスは大して変わらない。
細かいことを気にしている暇があったら、まず全体を完成させて、
後からチューニングしても遅くない。
073272804/12/11 20:51:15ID:ENo3zpOh
>>729-731
ありがとうございます。
他のやり方があるということがわかっただけでもよかったです。
全体完成させてからいろいろ改良することにしてみます。
0733名前は開発中のものです。04/12/11 21:10:24ID:fhqnR+WK
まてよ。
固定機能パイプラインのときって2D描画(3D空間に無い)ってどうやってやってたんだっけ?俺。
いまのソースだとシェーダに値を渡してるけど、固定機能だと値を渡すようなものってないのか?もしかして。
頂点バッファを毎フレームごとにロックしたりしてたんだっけ?いや、それは無駄だよな。うーん?ん?
0734名前は開発中のものです。04/12/11 21:17:01ID:Gc6vRMJF
毎フレームロックするようなときのためにUsage.Dynamicがある
0735名前は開発中のものです。04/12/12 00:18:36ID:u0O7CTPq
スプライト毎にUP垂れ流しでも、ほとんど速度は変わらないっていう実験結果がどこかにあったような
すこし昔の話だが
0736名前は開発中のものです。04/12/12 01:17:45ID:tfjyzDT/
アホみたいな質問ですがご容赦ください。
DirectX9 SDKと日本語ドキュメントをDLして
インストールしたところ、日本語ドキュメントは
SDKとは別のフォルダへインストールされました。
で、日本語ドキュメントのインストールされた
フォルダを見てみると、拡張子がHx○というファイル
が複数できましたが、クリックしても実行できない
もののようです。このヘルプはどうやって見るもの
なのでしょうか?開発環境はVC++.netです。
0737名前は開発中のものです。04/12/12 01:39:20ID:FwlKHgFV
>736
英語ドキュメントのショートカットのプロパティみてみ
拡張子何になってる?
073873604/12/12 02:28:00ID:tfjyzDT/
レスどうもです。
英語ドキュメントのショートカットとはどこにあるのでしょうか?
SDK本体のフォルダの中のDocumentationというフォルダの
中には英語ドキュメントらしきものがありますが、ショートカットは
ありません。ここには、Hx○がいくつかと、chmというコンパイル済み
HTMLファイルがあります。これはクリックして読めるようですね。
0739名前は開発中のものです。04/12/12 02:42:29ID:FwlKHgFV
>738
>英語ドキュメントのショートカットとはどこにあるのでしょうか?
スタート→プログラム
0740名前は開発中のものです。04/12/12 09:42:01ID:BNsUi8qI
DirectX8.1でフルスクリーンモードにしてテクスチャを表示すると
勝手にアンチエイリアシングが掛かってしまうようなのですが
何が問題なのかわかりますか?

この現象が起こるのは今のところ Radeon9800PROだけです。
スクリーンショットを撮るとボケてない画像が撮れます。
Windowモードならボケないようです。

0741名前は開発中のものです。04/12/12 11:29:17ID:NVOf1hrq
Visual C++.net 2003 をインストールし、DirectX9.0cSDK(最新版)を
ダウンロードしインストールしようとしましたが、何回やっても
インストール進行状況の緑のバー(?)が途中で左へ戻ってしまい、
your system has not been modified to complete installation at another time, please run setup again.
と表示されて失敗してしまいます。
いろいろヘルプドキュメントやネットで調べましたが解決方法はわかりませんでした。
OS は XP Home Edition Service Pack 2 です。
074273604/12/12 13:24:13ID:tfjyzDT/
>>739
どうも。
リンク先のファイルはchmという拡張子でありました。
しかしJPNドキュメントにはないんですよね・・・。
0743名前は開発中のものです。04/12/12 13:41:45ID:yiVn8EQz
>>742
みつかりにくいんだけどたしかどっかにあったよ。
拡張子はchmだからマイコンピュータを拡張子で検索かければそのうちあたんじゃねぇの?
0744名前は開発中のものです。04/12/12 14:03:17ID:lh5zcFYt
>>742
DX9_Oct04_JpDoc.exe を展開するとその中に入ってる。
ちなみに同じフォルダに DirectX9Oct04JpnDoc.msi ってのがあって
これをインストールすると、確かに *.Hx○ってファイルができるんだけど
これって何なんだろうね。自分はアンインスコした。
0745名前は開発中のものです。04/12/12 14:32:28ID:JZcZNH0C
>>744
統合環境からF1でヘルプを見た時に、DX9用のヘルプが出るようになる。
MSDN用。
0746名前は開発中のものです。04/12/12 14:56:21ID:tfjyzDT/
つまりVC++.NETのヘルプからは
見れないということでしょうか?
つまりは、いらないってことか。
074774004/12/12 15:30:54ID:BNsUi8qI
液晶モニターを使ってるのが原因なのかも、という話になってきました。
手元に再現する環境がないので色々面倒です・・・。

EFZは「640*480で起動」にするとボケないが
320*240で起動するとダメだというので
単純に解像度を640*480にしてみたんですが、解消されず。

うーん、困った。
074874404/12/12 15:39:00ID:lh5zcFYt
>>745
VC6使いには縁が無さげだね。サンクスコ。
0749名前は開発中のものです。04/12/12 21:37:10ID:1/NB2K9W
ttp://pc5.2ch.net/test/read.cgi/tech/1069666471/749
749 :デフォルトの名無しさん :04/10/24 21:08:30
次はDecember2004である、に一票。

10月の段階で言い当てるとはすげーな。
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=4E825A37-0C94-4421-9EC8-156E52525D11
0750名前は開発中のものです。04/12/12 22:00:40ID:u0O7CTPq
こういう偶然を必然と脳内変換しちゃう人は騙されやすそうだな
本人ならかわいいもんだが

それはともかくキタ━━━━━━(゚∀゚)━━━━━━ !!
0751名前は開発中のものです。04/12/12 22:37:47ID:FwlKHgFV
>740
アンチエイリアス?
バイリニアじゃなくて?
D3DTEXF_POINT(だっけ?)つかってもだめってこと?
075274004/12/12 23:03:56ID:BNsUi8qI
>>751
それ以前の問題でした・・・
ドット数比が5:4の液晶ディスプレイ使ってるのが原因でした。

画面サイズを変えないでD3DTEXF_POINTつかって
引き伸ばし表示するモードをつけることになりそうです。
0753名前は開発中のものです。04/12/13 00:00:08ID:OHILwBcG
むむ。
Present(&src, &dst, hWnd, NULL); で
srcの整数倍した矩形を dst に設定してみたら
D3DTEXF_POINTを指定してあってもエッジがボケてしまいます。

この部分でバイリニアフィルタが掛からないようにすることは可能でしょうか?
0754名前は開発中のものです。04/12/13 00:16:23ID:Yp5fFNZw
>753
よくわからんが、テクスチャの領域外をエッジのに指定するフラグなんだっけ?
それつかってみたら?
0755名前は開発中のものです。04/12/13 00:37:02ID:O19Oklaz
質問でちゅ。
RPGなどのゲーム中に出せるメニュー画面(戦闘中・フィールド)についてでしゅが
1.スプライトで表示
2.UV座標に応じて4つの頂点を指定して表示(rhwの設定のやつ)
3.カメラ設定に応じて4つの頂点を指定して表示(座標変換有り)
の3つが僕の現在ある知識ではできるのでちゅが皆さんはどれ使ってましゅか?
他に方法あったりしたらそれも教えて欲しいでチュ
0756名前は開発中のものです。04/12/13 00:46:29ID:4OFGfkHN
自分は2かな?
ゲームによっては
半透明のメニュー画面があるし
他の人がどうしてるのか、気になるなぁ

BBX見たらスプライトでやってる人も居るようだ
0757名前は開発中のものです。04/12/13 01:02:03ID:Yp5fFNZw
>755
1と2は同じことだろ?
あ、D3DXSPRITEとかいうやつか
あんなん使うな

2Dのメニュー表示だったら3の意味はなし
0758名前は開発中のものです。04/12/13 01:26:33ID:w/QQwN3S
そもそも1-3全部が中身はDraw*Primitive*()なんだが。
0759名前は開発中のものです。04/12/13 01:36:39ID:Yp5fFNZw
>758
さすがにそれはわかって…るよな?>755
0760名前は開発中のものです。04/12/13 03:12:40ID:4OFGfkHN
うほw俺は知らんかったw
ためになった。

でも、Spriteを触ることは無いだろう
076175304/12/13 10:45:56ID:65Upxz8j
>>754
ちょっと探した感じでは見つからなかったです。
今回の件とはちょっと違うかな・・・?

IDirect3DDevice8::Present の説明に

「必要に応じて、転送元矩形内のピクセルをターゲット
ウィンドウのクライアント領域の転送先矩形に転送するために
拡大処理が適用される。」

と書いてあるので、この部分の拡大処理でバイリニアフィルタが
適用されているようですね。
ここを制御できればいいんですけど・・・。
076275304/12/13 16:57:51ID:65Upxz8j
色々調べたんですが、
レンダリングターゲットをテクスチャにして描画
⇒テクスチャからバックバッファに拡大して書き込み
⇒Present(NULL,NULL,NULL,NULL)
とすることでうまく行きそうな予感・・・?

#今まではバックバッファに直接描いてました。

Present()内部で行われる拡大処理を制御するのは無理なのかな。
0763名前は開発中のものです。04/12/13 21:45:53ID:CpqQPaPG
>762
あとはベタだが0.5ピクセルずらして張る
サイズ256だったら一番端のUVは
1,0じゃなくて
1.0f - (0.5f / 256.0f)
0.0fのところも
(0.5f / 256.0f)
とか
076475304/12/13 22:08:26ID:OHILwBcG
>>763
0.5ドットずらす方法は既に実践済みなんですよ。
結果はずらしてもずらさなくても同じでした。

762に書いた方法で実装してみたら結構遅くてショック。
0765名前は開発中のものです。04/12/14 02:35:51ID:Uw1p0s/Z
>0.5ドットずらす方法

つい最近まで流行ってた、TOWNSとかのハードウェア0.5ドットスクロールのことかと思った。
あれは滑らかだったからなー。
0766名前は開発中のものです。04/12/14 17:10:23ID:52nIwGgv
どうも755でちゅ。
レースゲーム中のメーターと針を表現したいのでちゅが、
メーターはRHWを設定するので描画してるんでちゅが針のほうをRHWで
描画してるんですがRotationXでしたっけそれでは回転できないんでちゅが
どうすれば針を回せますか?
0767名前は開発中のものです。04/12/14 17:20:06ID:jWlJyjib
rhwだったら自分で回転後の座標を指定すればいいだけ。
0768名前は開発中のものです。04/12/14 19:20:41ID:6EayMZnD
RotationX?
RotationZじゃないか?
0769名前は開発中のものです。04/12/14 19:57:45ID:mfmTbhdO
だから素直にDrawPrimitive使えよ。UPでもIndexedでもいいから
出来ないヘタレがプログラム組むな反吐が出る
0770名前は開発中のものです。04/12/14 19:58:45ID:9a+RZ13R
そんなのも分からずレースゲームを作るっていうんだからたいしたもんだ
0771名前は開発中のものです。04/12/14 20:17:39ID:0pW6uqIM
なんってったってゲ製板だからな
0772名前は開発中のものです。04/12/14 20:24:03ID:6EayMZnD
なんてったってアーイドー
なんてったってアーイドー
0773名前は開発中のものです。04/12/14 20:34:32ID:eLHDZvTk
766擁護じゃねぇけれど、よくわかってない奴だっているんだろうから、教える必要は
ないとしても叩かなくてもいいんじゃないか?769は少し言い過ぎかと思う。
0774名前は開発中のものです。04/12/14 20:55:40ID:mfmTbhdO
>>773
お前の書き込みと俺の書き込み、どちらに中身があるかもう一度読み返せ
本当にお前の頭の中は空っぽだな
0775名前は開発中のものです。04/12/14 20:59:10ID:6EayMZnD
>766
SetTransformはやってるよな?
0776名前は開発中のものです。04/12/14 21:02:46ID:0pW6uqIM
>>766は先にブロック崩しでも作っとけ。
>>774はヘタレ質問見るのが嫌なら鬱だ氏のうスレ行っとけ。
0777名前は開発中のものです。04/12/14 21:08:29ID:jWlJyjib
だからトランスフォーム済みの頂点にトランスフォームがかかるわけ無いだろう。
なんでrhwでSetTransformとかRotationXが出てくるんだ?
トランスフォーム済みを使うなら、自分で位置を計算しておけばいいだけ。
しかもその程度の計算で行列を使う演算の必用など微塵もない。
既存のシステムに依存して、基本的な計算すら忘れ去ってないか?
0778名前は開発中のものです。04/12/14 21:12:35ID:8voIY0i4
rhwなら、こんなんか?

回転
P(x, y)
dX = x * cosθ - y * sinθ;
dY = x * sinθ + y * cosθ;

平行移動って足せばよかったっけか?w
グーグルで 回転 2次元 で調べればいっぱいでてくるよ。

rhwの2次元にRotation???は使ったことないなぁ
0779名前は開発中のものです。04/12/14 21:38:39ID:6EayMZnD
>777
そりゃそうだ
久しく使ってなかったから忘れてた

0780名前は開発中のものです。04/12/14 22:37:40ID:G4zX7Xhc
>>778
D3DXにこの計算用意されてなかったか?
0781名前は開発中のものです。04/12/14 22:49:27ID:X6UgI8F+
なんで2D描画用にカメラ行列を再設定しないんだ?
0782名前は開発中のものです。04/12/14 23:00:07ID:Apj0J3iv
トランスフォーム済みの頂点だから
0783名前は開発中のものです。04/12/14 23:03:46ID:GmXk5NnE
RHWだぞ、お前分かってるか?
RHWだぞ、お前これ何の略だ?
0784名前は開発中のものです。04/12/14 23:06:46ID:7uVKM4QW
あ、実は俺判ってないかも>RHW
0785名前は開発中のものです。04/12/14 23:30:20ID:if82LLjO
固定でスキニング出来るようになったので、次はシェーダでと思い
朝からやってるのですが、ぴくりとも動いてくれません

メッシュは自前で持っていてDX系の物は使っていません。
.fxはDirectX9のサンプル、SkinningMeshの物をそのまま使っています
SetMatrixArrayで渡す行列は、固定の時と同じ行列で良いのですよね?
(オフセット行列に、現在の姿勢行列を掛けた行列です)

シェーダで頂点色を変えたりとかは出来ています。

Weightが一つのボーンに対し100%(1.0f)だと、なんの行列を渡しても初期位置のまま微動だにしません。
2つ以上のボーンに対し影響を受ける頂点は、2つ目のウェイトの割合分、無意味に縮みます。縮むだけで動きません。

いやもうこれでは解答のしようも無いとは思うのですが、質問せずにはいられない状態でして・・・。
0786名前は開発中のものです。04/12/14 23:38:11ID:17qXBVT+
サンプルのはシェーダでちゃんと動いてるの?
0787名前は開発中のものです。04/12/15 00:01:00ID:fvpX5wp6
Right-hand-system Height Width
078878504/12/15 00:02:46ID:pCTFG4k0
>>786
お付き合いありがたいっす
悔しいことにサンプルの方は、シェーダはもちろんどのモードでも問題なく動いています
言われて今、試しにHELにしてみたのですが、やはり挙動は変わらずじまいです

データの持ち方が悪いのかなぁ…
0789名前は開発中のものです。04/12/15 00:23:36ID:LnZJ7VNx
>>784
reciprocal of homogeneous W

>>788
それならサンプルと同じようにやれば動くのでは?
0790名前は開発中のものです。04/12/15 00:32:03ID:rxxXpvtu
tinyタンはしぶといからな
がんがれ
0791名前は開発中のものです。04/12/15 00:39:28ID:pCTFG4k0
>>789
同じようにやっている…はずなのですがどうにも
明日もう一日頑張って駄目でしたら、ソース見てやって下さい
皆さんレスありがとうございました

>>790
声援感謝っす
あれほど可愛かったtinyたんが、今は中居正広に見えてきましたよ…
0792名前は開発中のものです。04/12/15 10:24:30ID:L/K/Ntdf
ワロタ
0793名前は開発中のものです。04/12/15 17:38:44ID:9QGOXaSi
ああ、RHWなのか。
いつもRHW使わないでビュー行列とプロジェクション行列を
再設定して2D描画やってるよ。RHWの利点は行列演算が
入らない分高速になること?
で、RHWって何の略だよ。
0794名前は開発中のものです。04/12/15 17:43:33ID:uxKIR4qz
>793
Ruri ha H na Wife
0795名前は開発中のものです。04/12/15 17:52:16ID:3f8c+YkS
質問です、簡単なネット対戦もの作りたくて
DirectX SDK (December 2004)インストールしたんですが
DirectPlayのサンプルがついてない・・・
DirectPlayの機能に変化がないからのようで
どのバージョンならば付いてますでしょうか?
0796名前は開発中のものです。04/12/15 18:38:11ID:0I2YGKTu
>>795
Summer 2003 にはある。
Summer 2004 以降は無い。

あとサンプルが無いのは機能に変化が無いからではなく
> DirectPlay は不適切となり、旧式のものとみなされています。
> DirectPlay ランタイム コンポーネントは、オペレーティング システムでサポートされていますが、
> ヘッダー・ライブラリ・ドキュメントは将来のリリースの SDK で削除されるでしょう。
> 既存のアプリケーションを修正するとき、このコンポーネントへの依存性を削除することを強く推奨します。
という事なのでこれから作るなら
DirectPlay 使うのは止めたほうがいいと思う。
0797名前は開発中のものです。04/12/15 20:23:47ID:rOGq997C
>>796
DirectPlayの替わりは何になるの?
0798785 79104/12/15 20:31:07ID:pCTFG4k0
最小限の構成にしてみたのですが相変わらず出来ませんで…

お暇な方、良かったらソース見てやって下さいませ
たぶんとんでもなくつまらないミスだと思います
ttp://gamdev.org/up/img/2124.zip
079979804/12/15 20:32:53ID:pCTFG4k0
失礼、Bulid環境はVC6、DirectX9.0です
0800名前は開発中のものです。04/12/15 21:14:26ID:uxKIR4qz
>797
WinSockでは?
0801名前は開発中のものです。04/12/15 21:48:22ID:mf8+Ge20
>>798
FVFはイクナイ。VertexDeclarationバージョンをあげとく
http://www.uploda.org/file/uporg22612.zip
080279804/12/15 22:13:58ID:pCTFG4k0
>>801
うひょー修正ソースまで!感激っす!
元のソースにも適用してみましたが、うにょうにょ動いてくれて思わずガッツポーズ!

なるほど頂点宣言ですかぁ、これからじっくりこれについて調べてみます
いや本当に、丸二日寝ても覚めても悩んでいまして…ありがとうございました!

ソース見てくださった他の方にも感謝っす
0803名前は開発中のものです。04/12/16 00:49:05ID:X/XYEA0C
なんだDirectPlay消えるのか。
どうにもうさんくさいと思っていたら。
0804名前は開発中のものです。04/12/16 04:01:26ID:gCuPh9E/
そんあ! WinSock使えってのはマジでいってんのかと。
0805名前は開発中のものです。04/12/16 10:04:59ID:PmxVvc7I
まぁでもDirectPlayよりはWinSockのが俺は使いやすいな。
非同期I/Oとか結構便利だし。
0806名前は開発中のものです。04/12/16 10:18:16ID:tjOk0UvG
まぁDirectPlayが便利ってよりはサンプルのコードが便利だったんだけどな
0807名前は開発中のものです。04/12/16 10:24:44ID:xwdq2LRc
ボイチャ機能はどうなんのよ?自分で実装?
0808名前は開発中のものです。04/12/16 11:09:21ID:PmxVvc7I
ボイチャはマジで面倒くさいな・・・
リアルタイムに自分でエンコードして転送すんのか・・・
マイクからの入力はDirectSoundで取れるからいいけどOggにでもエンコすっか・・・?
0809名前は開発中のものです。04/12/16 14:30:42ID:lA8+7u1v
ロングホーンあたりで標準APIに似たような機能が実装されるのかもね。
0810名前は開発中のものです。04/12/16 14:38:57ID:rNKsfLyb
VertexShaderを使って単純なVertexBlendをやっています。
VSを割り当ててDrawIndexedPrimitive()したあとに
頂点ブレンドされた結果のVertexBufferを取得することは
できますか?
0811名前は開発中のものです。04/12/16 14:59:28ID:nsksm3nJ
>>810
ProcessVertices でいけるかも
0812名前は開発中のものです。04/12/21 20:20:36ID:VealJqOr
DirectSoundBufferをLOOPさせてストリーミング再生してるんですが
新しいデータの補充をやめると同じ音が鳴り続けます。
そこでDirectSoundBufferをStopさせずにその音を消す上手い方法はありませんか?
0813名前は開発中のものです。04/12/21 20:23:27ID:E4gqQxGH
無音を送れ。
0814名前は開発中のものです。04/12/21 20:29:03ID:VealJqOr
>>813
それは考えた。
出来れば無音のwavファイルを用意してそれを読み込むってのは避けたい
もしかしてCreateSoundBufferしたてのバッファをどこかにコピーしておくってのはあり?
081581204/12/21 20:42:14ID:VealJqOr
>もしかしてCreateSoundBufferしたてのバッファをどこかにコピーしておくってのはあり?
↑で出来た。とりあえず>>813サンクス。

でも、もっといい方法あったらよろしく。
0816名前は開発中のものです。04/12/21 21:45:26ID:yhcjkR/f
だから、無音のデータ
16bitだったら0、8bitだったら128を書き込んでやれば良いんじゃないのか?
081781204/12/21 22:00:05ID:VealJqOr
>>816 それは知らなかった!memsetで事足りるね。さんくす。
0818名前は開発中のものです。04/12/23 09:58:47ID:FEnanRmI
8bitでも0じゃねーの?
0819名前は開発中のものです。04/12/23 10:25:41ID:l+8f12vX
8bitのとき0埋めるとノイズになった
おためしあれ
■ このスレッドは過去ログ倉庫に格納されています