9

iPad 2 を対象とした HTML5 Web サイト/アプリのトレイルを含むムービング ライトを作成しようとしています。私が HTML5 を選択したのは、Objective C を使用したネイティブの iOS アプリよりも開発とデプロイが簡単で安価だからです。

とにかく、私が話していることの印象を与えるために、これは私がこれまでに得たものです:

スクリーンショット http://devdali.no-ip.org/mathias/test-lights/screenshots/1.jpg

または、こちらで動作を確認できます(Webkit ベースのブラウザーでのみ動作します)。

最初に、HTML5 キャンバスを使用して、上記と同様の方法で放射状グラデーションをパーティクルとして描画してみました。それは機能しましたが、私のデスクトップ コンピューターでもフレームレートはひどいものでした。

少し読んだ後、CSS3 変換がハードウェア アクセラレーションである可能性があることがわかったので、上記のバージョンをビルドします。すべての「粒子」は 64x64 の png 画像です。各ライトには、「ヘッド」ライト (1 つの img) があり、その後に 115 の img 要素で構成されるトレイルが続きます。各 img 要素は、「translate3d」(およびスケールと回転) を使用して変換されます。また、各要素の不透明度は動的に調整されます。

このようにすることで、私のコンピューターではフレームレートが大幅に改善されましたが、iPad 2 がそれを処理できるとは思えません。

一般的にこれのパフォーマンスを改善し、ターゲットプラットフォームを考慮する方法について、誰かが私にいくつかのヒントを与えることができれば幸いです.

事前に助けてくれてありがとう!

4

3 に答える 3

1

効果への小さな変更を受け入れる場合、他の手順が速く機能する可能性があります。

  • 多くのパーティクルを使用してライトの軌跡を描画する代わりに、Canvas要素の現在の位置にライトを描画するだけです。

  • 次に、上部の不透明度が非常に低い黒い長方形を塗りつぶすことで、フレームの先頭で画像全体を暗くすることができます。このようにして、トレイルは暗くなりますが、現在のように色が変わることはありません。

  • ただし、描画操作の量は大幅に削減されます。最もコストのかかる操作は、フレームごとにフェードする長方形を塗りつぶすことです。

于 2012-08-14T19:50:07.907 に答える
0

WebGL(iPad2でサポートされています。)...を使用してパフォーマンスを大幅に最適化できます。これは、 NisonMaëlが述べたように、iOSサファリの基本的なHTMLページではサポートされていません...

当面は、解決策としてキャンバスしかありません。それでもあなたに良いパフォーマンスを与えるでしょう...

(詳細については、このブログを確認できます:http: //learningwebgl.com/blog/

少しの信仰と時間であなたは驚かれることでしょう!)

于 2012-08-09T10:25:22.970 に答える
0

これはキャンバスに構築する必要があります。EaselJS とこのデモをチェックしてください。

http://easeljs.com/ http://easeljs.com/demos/MusicVisualizer/index.html

于 2012-03-28T14:13:34.117 に答える