Re: フレームレートが固定される ( No.1 ) |
- 名前:管理人 日時:2018/05/16 00:54
GetFFTVibrationSoftSound は非常に処理負荷が高い関数なので、
単純に処理が 120FPS のフレームレートに間に合わなくなり 60FPSに
なってしまっているのだと思います
GetFFTVibrationSoftSound の引数 SampleNum の値が大きければ大きいほど
処理負荷が高くなりますので、SampleNum に 256 を指定するなどして
なるべく処理負荷を小さくするようにすると 120FPS を保てるかもしれません
( それでも重い処理であることには変わりないので、やはり 60FPS になってしまうかもしれませんが・・・ )
|
Re: フレームレートが固定される ( No.2 ) |
- 名前:BayLeaf 日時:2018/05/16 05:11
確かに SampleNum の値を変えたところフレームレートが多少改善しました。
しかし、目標には及ばずといった感じです。
ちなみにですが、SampleNum の値の範囲を増やしていただくことは可能でしょうか?
制作しているものはフレームレートが重要ですので、
処理負荷を小さくできるように 16 や 32 などの小さな値も扱えたらと思っています。
|
Re: フレームレートが固定される ( No.3 ) |
- 名前:管理人 日時:2018/05/18 00:25
> ちなみにですが、SampleNum の値の範囲を増やしていただくことは可能でしょうか?
実装したのが結構前なので確認が必要ですが、恐らく可能だと思います
週末に実装しようと思いますので少々お待ちください m(_ _)m
( SampleNum の値が小さくなればなるほど精度が下がるので、実用に耐えるかはわかりませんが・・・ )
|
Re: フレームレートが固定される ( No.4 ) |
- 名前:BayLeaf 日時:2018/05/18 23:44
お待ちしています。
> ( SampleNum の値が小さくなればなるほど精度が下がるので、実用に耐えるかはわかりませんが・・・ )
個人的に精度はそこまでなくても問題ない処理ですので大丈夫です。
処理が軽くなってくれていればそれで構いません。
FFT でソフトサウンドを使用しないようにできればいいなと思っていますが、これは無理ですよね。
時々、普通のサウンドハンドルでできたらと思うことがあります。
納得したいので、ここでのソフトサウンドの役割を教えて頂ければと思います。
|
Re: フレームレートが固定される ( No.5 ) |
- 名前:管理人 日時:2018/05/20 20:09
 |
Re: フレームレートが固定される ( No.6 ) |
- 名前:BayLeaf 日時:2018/05/21 23:07
ありがとうございます。
SampleNum を変更できることを確認できました。
> GetFFTVibrationSoftSound で行っているフーリエ変換処理は DirectSound や XAudio などの OS の
> 機能を使用しているわけではなく、C++ で書いた通常の処理でシステムメモリに格納されている
> サウンドデータにアクセスする形で実現しています( DxSound.cpp の 14272行〜14554行 に処理が
> 書かれています )
なるほど、OS かシステムメモリという違いがあるのですね。
> ソフトサウンドは C++ のポインタを使って普通にアクセスすることができるシステムメモリ上に
> サウンドデータがあるのでこの処理を行うことができますが、通常のサウンドハンドルは DirectSound や
> XAudio が処理するためのメモリ領域にサウンドデータを転送してしまい、C++ のプログラムから
> アクセスできる形でのサウンドデータが無い状態なので GetFFTVibrationSoftSound の処理を行うことが
> できないというわけです
解説ありがとうございます。
ソフトサウンドのみでは DirectSound や XAudio などを使用した機能が
使用できなくなるということでよろしいのでしょうか?
通常のサウンドハンドルは「再生全般」、ソフトサウンドは「周波数解析・書き込み」の認識で使っています。
もし上記であれば、ソフトサウンドに DirectSound などの OS 機能を使えるように
分岐ができたらハンドルがひとつで済むのですが、こうしたことはできるのでしょうか?
ハンドルをソフトサウンド用と通常のサウンドハンドル用で2つ使用している都合上
メモリが圧迫されてしまうのでどう運用しようか考えています。
|
Re: フレームレートが固定される ( No.7 ) |
- 名前:管理人 日時:2018/05/23 01:21
> ソフトサウンドのみでは DirectSound や XAudio などを使用した機能が
> 使用できなくなるということでよろしいのでしょうか?
はい
> 通常のサウンドハンドルは「再生全般」、ソフトサウンドは「周波数解析・書き込み」の認識で使っています。
はい、概ねそのような認識で問題ないと思います
> もし上記であれば、ソフトサウンドに DirectSound などの OS 機能を使えるように
> 分岐ができたらハンドルがひとつで済むのですが、こうしたことはできるのでしょうか?
> ハンドルをソフトサウンド用と通常のサウンドハンドル用で2つ使用している都合上
> メモリが圧迫されてしまうのでどう運用しようか考えています。
ソフトサウンドと通常のサウンドハンドルのどちらの機能も使えるようにすると、結局消費するメモリ容量は
ソフトサウンドと通常のサウンドハンドルのどちらも使用する場合と同じになるので、意味がありません・・・
|
Re: フレームレートが固定される ( No.8 ) |
- 名前:BayLeaf(解決) 日時:2018/05/23 05:44
> ソフトサウンドと通常のサウンドハンドルのどちらの機能も使えるようにすると、結局消費するメモリ容量は
> ソフトサウンドと通常のサウンドハンドルのどちらも使用する場合と同じになるので、意味がありません・・・
すみません、この場合「メモリが圧迫する」ではなく「変数が倍増する」と書いたほうが良かったです。
考えてみたら確かにメモリ自体はほとんど意味がないですね。
取り敢えず題名の内容及びソフトサウンドの役割については解決・納得しましたので、解決済みにします。
|