フレームレート検証
もうすぐ発売される新コンソールに向けて大幅な更新を行いました。
4K、120fps対応
画面レイアウトを大幅に変えて解像度が高いものが来てもレンダリングできるようにしました。
検証処理最適化
1分検証するのに約9分かかっていたのを約4分半にまで最適化しました。
当初はOpenCVの処理で時間がかかっていたので、C++で独自実装してdllを呼び出す形にしていたのですが、メンテが手間なのというほど早くなかったのでこの案は没に。
次に行ったのが読込・解析・動画出力部分のマルチスレッド化。
従来は1フレーム読み込んでから解析、そして動画出力と前工程の処理が終わるまでブロックするような形となっていました。
そこで読込、解析、動画出力をそれぞれ独立して処理し、さらに読み込んだフレームはメモリ上にキャッシュすることで結果的に従来の半分の時間で検証できるようになりました。
ティアリング時の扱いを変更
ティアリングに関しては以前以下のような記事を書きました。
この当時は「フレームが完成したら+1とする」というルールでしたが、よくよく調べてみると完成しないフレームがあることがわかりました。
そこで大幅にルールを変えて完成した領域を有効範囲とする形にしました。
例えば、画面の半分が完成していたら+0.5する、画面が1/4完成していたら+0.25するような形です。
新しいルールで再撮影、検証を行ってみました。
小数点以下が0固定だったのが2桁表示されるようになっているのがわかると思います。
また、ティアリング表示方法も変更しました。前のフレームと一致した箇所を囲う形にしたのと画面下部の表示はフレーム落ちしたときと同じように無効フレームはグレー表示としました。
さて、準備が整ったのであとは新コンソールを待つばかりです。
現行機の互換が残っているようなので新タイトルもやりつつ、過去タイトルも振り返ってみたいところですね。