4

物理演算に box2Dweb を使用し、レンダリングに three.js を使用して、初歩的な 3D ゲームを開発しました。基本的な横スクロールです。iOSで起動して実行したいと思います。iOS で WEBGL を使用できるように、cocoon.js を使用してゲームをパッケージ化することにしました。

私が抱えている問題はパフォーマンスです。デスクトップ マシンでは、ゲームは毎秒約 50 フレームで実行されます。iPhone 5 では、毎秒 3 フレームという猛烈な速度で実行されています。

ゲームを剥ぎ取り、すべてのテクスチャを削除し、シェーダーを削除し、スカイボックスを削除し、レンダリングするレベルを減らしました (カメラ ビューにあるものと、少し前後のもののみ)。これにより、パフォーマンスが 25% 向上しました。だから今は4FPSで動いてる

iOS ランチャー アプリに付属しているデモを確認しましたが、どれも非常にスムーズに動作します。

パフォーマンスを向上させるために他に考えられる唯一のことは、JS を縮小することですが、パフォーマンスが大幅に向上するとは思いません。

ランチャー アプリで Accelerated Canvas/WebGL を使用しています。canvas+ オプションを使用してコンパイルも試みましたが、同じ問題です。three.js リビジョン 67 を使用しています。three.js で webGL レンダラーを使用しています。

this.renderer = new THREE.WebGLRenderer

cocoon.js で three.js のパフォーマンスを改善する方法について何か提案はありますか?

4

2 に答える 2

5

フレーム レートを最大 25 fps まで向上させることができたので、大幅な改善が見られました。

最初に、影を落としていたオブジェクトだけでなく、すべての光源とレンダラーからもすべての影を削除しました。

object3d.castShadow = false;

light.castShadow = false;

renderer.shadowMapEnabled = false;

また、複数の光源を使用していました。これが最大の犯人でした。フレームレートを大幅に改善した光源を1つだけにしました

次に、フォグを削除しました。これにより、余分な fps が得られました。

また、JavaScript も縮小しました。これにより、パフォーマンスもわずかに改善されたようです。

于 2014-05-05T09:20:01.367 に答える