テスト項目の紹介と解説
では、具体的なテスト項目を紹介する。
●Game Test 1(Movie:GT1)
動画 |
---|
Movie:SkyDiver_Game Test 1 |
デモ前半の、まさしくSky Diveしている最中の映像をダイバー視点から描画したものい。テスト内容としては、主にTessellationにフォーカスしており、照明はForward lightingに、Directional lightを利用したShadow castingを組み合わせている。
また後処理でDoF(Depth of Field)を実施している。頂点数160万、Tessellation Patchは15万個、Trianglesは390万個、Pixel数は3030万で、Compute Shaderはフレームあたり78万回の計算を行っている。
●Game Test 2(Movie:GT2)
動画 |
---|
Movie:SkyDiver_Game Test 2 |
デモ後半の、洞窟(?)の中を歩いているシーンを描画したもの。ここではPixel Shaderの処理性能と、Compute Shaderの利用率にフォーカスしている。シーンではCompute Shaderを利用したDeferred Tiled LightingとAmbient occlusionを組み合わせている。 ここでは後処理でレンズ効果も実施している。頂点数90万、Tessellation Patchは9万個、Trianglesは150万個、Pixel数は1390万とGame Test 1より全体に少ないが、Compute Shaderはフレームあたり270万回の計算を行っている。
●Physics Test(Movie:Physics)
動画 |
---|
Movie:SkyDiver_Physics Test |
デモには無いシーン。石柱を、鎖の付いたハンマー状のものでブチ壊すというもので、物理エンジンにはこれまで同様にBullet Open Source Physics Libraryを採用している。
テスト方法はちょっと独特で、これまでのものとやり方が変わっている。このテストでは、処理スレッドを8/24/48/96と4段階に分けて実施するが、それぞれのThreadが一つのWorldに割り当てられている。一つのWorldには49の要素で構成される石柱(合計6590Triangles)とハンマーが属しており、これが衝突シミュレーションを行う形になる。
では何が異なるかというと、スレッド数を増やしながらフレームレートを確認し、それがある一定の閾値以下に落ちたら、それ以上スレッド数を増やさないという実装になっている。例えば48Threadである閾値(おそらく30fps程度と思われるが、明示されていない)を切ったら、もう96Threadは実施しない。で、結果はその手前の2つ(8/24Thread)のフレームレートから算出する、というものだ。
●Combined Test(Movie:Combined)
動画 |
---|
Movie:SkyDiver_Combined Test |
これまでCombined TestはFire Strikeのみであったが、Sky Diverもこれを導入した形だ。テストそのものは、Game Test 2にPhysics Testを組み合わせた様なものになっている。
GPUの描画はGame Test 2にほぼ同じ、一方CPU側はPhysics Testで48 Threadのケースを利用している。頂点数130万、Tessellation Patchは10万個、Trianglesは160万個、Pixel数は2960万で、Compute Shaderはフレームあたり250万回の計算を行っている。CPUとGPUの両方に負荷の掛かるテストである。
なおSky DiverのScoreの算出方法であるが、算出方法そのものは以前紹介した3DMarkの算出方法から一切変わっていない。異なるのは係数で、表の様に規定されている。
■表 算出に用いられる係数 | |
Sky Diver | |
---|---|
W Graphics | 0.75 |
W Physics | 0.15 |
W Combined | 0.1 |
C Graphics | 219 |
C Physics | 56 |
C Combined | 243 |