0

現在、stage3d で 2D ゲームを開発しています。パフォーマンスは驚くべきものです - 画面上を移動する多くのスプライトで 60/60 FPS が得られます。

後処理フィルターの実装を開始しました。すべてを画面ではなくテクスチャにレンダリングし、シェーダーを適用してから画面にレンダリングします。

しかし、最も単純なシェーダーで setRenderToTexture を使用するだけで、最大 40 FPS という大幅なパフォーマンスの低下に直面しました。

間違った方法でレンダリングしたり、最終的なテクスチャをレンダリングする方法に問題がある可能性があります。

SWF のサイズは 980x600 で、最終的なテクスチャは 1024x1024 になります。

これが、この後処理の高速で汚い実装です: https://gist.github.com/4616886

私はAxelエンジン( http://axgl.org )を使っていますが、コードは誰にでも分かりやすいものにすべきです。

Gist は、Ax.as で変更したコードを示しています ( https://github.com/arkeus/Axel/blob/master/src/org/axgl/Ax.as )

そして、AxCache.as ( https://github.com/arkeus/Axel/blob/master/src/org/axgl/util/AxCache.as )の関数をいくつか使用します。

そして、これが私が使用した SPRITE_INDEX_BUFFER です - ( https://github.com/arkeus/Axel/blob/master/src/org/axgl/AxSprite.as#L518 )

4

1 に答える 1

1

createTexture(width:int、height:int、format:String、optimizeForRenderToTexture:Boolean、streamingLevels:int = 0)

私はそれを逃したとは信じられません...何時間ものグーグルと試行錯誤、そしてコンストラクターパラメーターを逃しました。

FPSが正常に戻りました!

于 2013-01-24T05:45:43.813 に答える