5

(これがhttps://softwareengineering.stackexchange.com/にあるべきかどうかはわかりませんが、そう思う場合はコメントしてください)

学位論文のWebGL実装のベンチマークを作成しようとしています。どのような種類のテストを作成する必要があるのか​​、ベンチマークに他の有用なデータを取得できるかどうかの1秒あたりのフレーム数のみを測定する必要があるのか​​どうかわかりません...

現在、私はそのようなテストについて考えました:

  • 1つの単色オブジェクト
  • 1つのマルチカラーオブジェクト
  • 1つのテクスチャオブジェクト
  • ブレンドされた1つのテクスチャオブジェクト
  • 稲妻のあるテクスチャオブジェクト1つ
  • 複数のライティングポイントを持つ1つのテクスチャオブジェクト
  • テクスチャにレンダリングされた1つのシーンを別のオブジェクトで使用する
  • 1モデルアニメーション
  • より多くのオブジェクトを使用したすべてのテスト:50、500、5000
  • レンダリングごとにシェーダー/プログラムを変更する(1回、2回、複数回)

これにより、40の異なるテストが実行されますが、これらがパフォーマンスの重要なテストであるかどうかはわかりません。

友人が複雑なシェーダーでテストすることを提案しましたが、シェーダーはグラフィックハードウェアで実行されているため、Javaデスクトップアプリケーションに違いはないはずです。

とにかく、JavaScriptのパフォーマンスがWebGLの主なボトルネックであると私は感じています。

アップデート

私はついにテストをしました。ベンチマークがどのように機能するかについて話し合った後、私は以下を作成しました:http: //martin.cyor.eu/benchmark

4

3 に答える 3

3

私は@timdayに同意します。調査を「本物の」ものに偏らせる必要があります。コメントで示唆したように、デスクトップまたはブラウザーベースのアプリのどちらを選択するかについての話にしたいと思うかもしれません。

これはまさに私が今取り組んでいることです。私のクライアントには、現在Windowsデスクトップで実行されている視覚化アプリケーションがあります。彼らの典型的なシーンには、500,000の三角形、たくさんのテクスチャ、そして透明度があります。現在、ユーザーはビューアをインストールすることを嫌がっています。システム管理者がコンピュータにインストールするものを制御する企業環境で作業する傾向があります。また、何人かのユーザーは、視聴者がとにかく実行されないiPadで視覚化を実行することを好みます。したがって、私のクライアントは、WebGLがプラットフォームの問題を解決するかどうかを知りたがっています。WebGLを公式にサポートしているブラウザはまだなく、IEもiPadもいかなる種類のサポートも発表していないことを気にしないでください。

移動するターゲットを測定しているため、実行するベンチマークは比較的無意味であることに注意してください。ブラウザメーカーはWebGLの実装に懸命に取り組んでおり、ベータリリースを頻繁に更新しています。彼らはWebGLの実装に準拠して取り組んでいるだけでなく、ブラウザのセキュリティの問題と全体的なパイプラインフローについて心配する必要があります。 このビデオでは、いくつかの問題について説明しています(そして、何を調べるべきかについてのアイデアを提供します)。また、OSやグラフィックハードウェアによってパフォーマンスが異なる場合があります。

ご指摘のとおり、WebGLがグラフィックハードウェアで実行されると、デスクトップアプリと同じ速度で実行されるはずです。ベンチマークはそれを確認する必要があります。次に、ブラウザーを使用した結果としてパフォーマンスが低下する場所を測定する必要があります。私の感じでは、実行するJavascriptがそれほど多くないという理由だけで、Javascript自体はボトルネックではありません(そして最近はかなり高速です)。ただし、前述のビデオの最後で説明したように、Javascript-C ++バインディング、要求検証、フロー制御などで非効率が発生する可能性があります。一方、ブラウザメーカー(少なくともGoogle)は、これらの問題を解決するために懸命に取り組んでいます。

私が気づいたことの1つは、フレームレート/パフォーマンスの問題ではありません(現在のテストでは、30 fpsで500,000のテクスチャ三角形をレンダリングできます)が、フレームレートはあまり一貫していないようで、フレームはドロップされているようです時々。setInterval()疑わしいですが、これが比較的単純な方法に関係しているのか、Javascriptでアニメーションを実行しているのかはわかりません。(MozillaのmozRequestAnimationFrameは、これをより適切に処理する方法である可能性があります)。

上記のいずれかがあなたの論文にどれほど役立つかはわかりませんが、あなたには豊富なトピックがあり、単純なベンチマークを作成する以上のことを行う必要があるようです。おそらく、いくつかのベンチマークから始めて、ブラウザーとデスクトップのパフォーマンスを比較してから、ブラウザーとデスクトップのどちらかを決定するだけでなく、WebGLアプリを作成するためのベストプラクティスを検討する必要があります。

そこにもかなりの数のWebGLフレームワークがあります。私はカップルを試しましたが、非常に感銘を受けました。彼らから学ぶことはたくさんあります。興味や論文の要件によっては、これらのベンチマークにも興味があるかもしれません。

いずれにせよ、調査しようとしている種類の情報に飢えているWebGL採用者の大規模なコミュニティがあるのではないかと思います。

于 2011-01-06T17:34:46.627 に答える
2

ベンチマークを選択する対象は、ベンチマークスコアで何をしようとしているのか(または、スコアの対象読者とその対象者が何をしようとしているのか)によって異なります。おそらく、それらは何らかの決定に影響を与えると考えられています。その決定から始めて、それから逆方向に作業して、ベンチマークが何を測定すべきかを理解する必要があります。

あなたの提案したリストは、ベンチマークスペクトルの「合成」の終わりにあると思います。それらは、WebGL実装/プラットフォームから選択してアプリを最適に実行する可能性が高いかどうかを判断しようとする人よりも、プロファイラーを使用するWebGL/ブラウザー実装者にとってより役立つようなもののようです(OpenGLベンチマークの歴史を参照してください。SPECviewperfが登場し、現実的なテストケースを課すまでは、1秒あたりの合成ポリゴン数に対して一種のナンセンスが主張されていました)。

于 2011-01-05T21:05:31.737 に答える
1

私は定期的にこのサイトにアクセスすることはないので、あなたの質問を読んだだけでちょっとおかしいと思います。私もそのトピックについての入浴を書いているからです。1か月前、私は同じ問題について考えていましたが、主な違いは使用する数学ライブラリにあると思うため、異なるWebGLフレームワークを相互にベンチマークしないことにしました。あなたが言ったように、私はまた、GPUで実行されている部分に違いはないはずだという結論に達しました。WebGLをデスクトップグラフィックスと比較することは私が考えていなかったことでしたが、それは役に立つかもしれません。ChromeおよびFirefoxからの最近のWebGL実装は、デフォルトでWindows上のANGLEを介してDirectXを使用することに注意してください。

ところで、ここにある種のwebglベンチマークがあります:http ://webgl-bench.appspot.com/

幸運を!

于 2011-01-07T06:34:31.270 に答える