どうやら、Flash 10 では、GPU を使用してシェーダーを計算でき、ユーザーが互換性のある GPU を持っていない場合は、CPU にフォールバックします。問題は、CPU によるフィルターの計算が非常に遅いことです。CPU が GPU を使用できないかどうかを検出し、使用する効果を減らすとよいでしょう。GPUレンダリングを使用している場合、アクションスクリプトを使用して検出することは可能ですか?
6 に答える
何かをするのにかかる時間を測定してみませんか。時間がかかりすぎる場合は、いくつかの効果を無効にします。
シェーダーとは、ピクセル ベンダー ツールキットでコンパイルするものを意味する場合、それらは GPU 上では実行されません。見る:
http://www.kaourantin.net/2008/05/adobe-pixel-bender-in-flash-player-10.html
Adobe は Windows 以外のプラットフォームでハードウェア アクセラレーションを使用するために OpenGL に依存しており、OpenGL にはそのような違いはありません。プラットフォーム全体で一貫性を維持するには (これは Flash の強みの 1 つです)、望ましい動作です。
GPU アクセラレーションを検出するには、wmodeGPUステージ プロパティを読み取ることができます。
私が知る限り、このための API はありません。それが、アドビが HTML ページごとに 1 つの SWF に制限し、バナーなどでの使用を思いとどまらせることを推奨している理由だと思います。
適切な回避策は、ユーザーに選択させることだと思います。
ActionScript 3 には、Capabilitiesクラスがあります。探しているものがそこにあるかもしれません。