私はいくつかのパーティクルシステムの目のキャンディをスピードアップする必要があります。目のキャンディーには、添加剤の配合、蓄積、および粒子上の尾跡および輝きが含まれる。現時点では、手作業で浮動小数点イメージバッファにレンダリングしています。最後の分にunsigned charに変換してから、OpenGLテクスチャにアップロードします。グローをシミュレートするために、異なる解像度と異なるオフセットで同じテクスチャを複数回レンダリングしています。これは遅すぎることが証明されているので、私は何かを変えようとしています。問題は、私の開発ハードウェアはインテルGMA950ですが、ターゲットマシンにはNvidia GeForce 8800が搭載されているため、この段階でOpenGLをプロファイリングするのは難しいです。グラフィックス:浮動小数点累積画像で最高の性能
非常に科学的ではないプロファイリングを行いましたが、スローダウンの大部分は浮動小数点画像を扱うことから来ていることが判明しました:すべてのピクセルを定数でスケーリングしてフェードアウトし、浮動小数点画像を符号なしの文字に変換してアップロードするグラフィックハードウェアだから、私は最適化のため、以下のオプションで探しています:
- 定点で16.16の構成をUINT32さんとの山車を交換し
- SSE2アセンブリを使用して最適化フロート操作(画像バッファは、山車の1024 * 768 * 3の配列であります)
- 使用のOpenGL蓄積バッファの代わりにfloat配列
- 利用のOpenGLの浮動小数点FBOの代わりにfloat配列の
- 使用OpenGLのピクセル/バーテックスシェーダ
あなたを持っていますこれらの可能性のある経験はありますか?どんな考え、助言?私が考えなかった何か他に?
私たちはスクリーンショットを見ることができますか? – Peter