kimagre inrash

感想を書きます

ゲームのフレームレートを検証しよう(ティアリング編)

time 2019/01/10

※旧バージョン(-v1.5)の仕様で書かれています。v2.0時に仕様変更を行ったので現行とは検出方法が変わっているので注意。

ティアリング

capture4319a.jpg

「真・三國無双8」のフレームレート検証で久々にティアリングを検知。

機能としてはすでに実装済みで何本かのタイトルで検証していたけれど、ティアリング解消時の有効フレームの扱いに問題があったので修正しました。(60fpsでティアリングが発生するタイトルだけが該当)

仕様

46F.jpg 47F.jpg 48F.jpg 49F.jpg 50F.jpg 51F.jpg

Screenshot_2019-01-10 Screenshot.png

ティアリングの検出自体は前フレームの画像との差分をチェックすれば検出できます。上記例だと47Fの上部に46Fの画像が残っています。

有効フレームと判定するのにいくつか方法があると思いますが、私のツールでは作成する画像が完成したときに+1するような実装にしています。なので47Fと50Fでは画像が完成していないので有効フレームにならないようになっています。

tearing_tool_diff_0000.jpg

また、ティアリングの表示方法も変更しました。

ひとつはフレームレートのグラフが表示される背景の表示。(左が旧バージョン、右が新バージョン)

旧バージョンだと「前フレームと一緒だった領域」がわかるようにしていました。ツール作成者からすると便利ではあるんですが、動画を見てくれる人には必要のない情報。

さらに端末によってはツブれることが多かったので、新バージョンでは「本来そのフレームで有効ではない領域」に変更しました。

これでパッと見でティアリングが発生していたフレームかどうかわかるようになります。

00000052_Raw_diff.jpg

もうひとつは画面左の黄色い表示。(左が旧バージョン、右が新バージョン)

旧バージョンは「前フレームと異なる領域」に表示されるルールだったのですが、新バージョンではグラフの表示と合わせる形で「本来そのフレームで有効ではない領域」に変更しました。


「真・三國無双8」は国産ゲームでは珍しくティアリングが発生するタイトルでした。

ツールのティアリング関連機能の見直しが出来たので良かったです。

前後記事

真・三國無双8 フレームレート検証
キャサリン・フルボディ フレームレート検証