テスト項目の紹介と解説

では、具体的なテスト項目を紹介する。

●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