Language:

サイドバー

バーチャルキャスト公式Wiki

メニュー

Steam版

デバイス

アセット

配信

その他

リリース情報

デベロッパー向け


開発環境

GLB

virtualcast:setting:graphics:graphics_optimization

描画の最適化

バーチャルキャストは動作の安定化・高速化のために、キャラクターとアイテムの描画を最適化します。

最適化によって、高負荷時の安定性向上・描画フレームレート向上・消費メモリの減少が見込まれます。

見やすい解説スライドと説明は以下の Blog をご覧ください。

【2021/9/22】サービス開発進捗報告会 報告内容まとめ

描画の最適化で行うこと

以下にバーチャルキャストが行う描画の最適化を示します。 この仕様は、品質とパフォーマンス向上のために変更する可能性があります。

PC Quest
VRM VCI VRM VCI
テクスチャの圧縮 設定に因る
テクスチャサイズの上限 - 2048×2048 px 2048×2048 px 2048×2048 px
テクスチャのアトラス化 - - -
ポリゴンリダクション - - -

テクスチャの圧縮

テクスチャを圧縮しメモリ使用量を 1/4 に抑え、体験品質を改善します。 ただし下記の テクスチャの圧縮に関する詳細 で示すように圧縮アーティファクトが出ます。 PC の VRM のみ他と圧縮手法が異なります。

テクスチャサイズの上限

テクスチャのサイズの上限を規定します。 上限を超えるサイズのテクスチャは、上限に合わせてリサイズされます。

テクスチャのアトラス化

複数のテクスチャを1枚のテクスチャにまとめます。

ポリゴンリダクション

ポリゴンを削減し、Quest のようなハイスペックではない環境での体験品質を改善します。

テクスチャの圧縮に関する詳細

テクスチャに対して GPU フレンドリーな圧縮を行います。 これにより以下のうれしい効果が得られます。

  • ロード時のフリーズ時間の短縮
  • CPU・GPU 上のメモリ使用量の削減

フリーズ時間の短縮によって、キャラクターを変更したときやアイテムを出現させたときの fps のカクツキが大幅に軽減されます。

またメモリ使用量の削減によって、fps の向上が見込まれます。

具体的な量は以下の図が示すように、フリーズ時間は 98% 短縮、メモリ使用量は 75% 削減されます。

また以下の例のように、圧縮によって目立つような差異はほとんどありません。

しかし以下の例のような色の差がはっきりしたテクスチャにおいて、拡大したときにノイズが見える場合があります。

問題

ほとんどのテクスチャは問題が見えませんが、一部のテクスチャは問題が目に見える可能性があります。 これについて説明します。

テクスチャに対する最適化は、画像の圧縮を行っています。 このとき圧縮方式は、画像に対して以下の条件を想定しています。

  • 前提:画像を 4×4 ピクセルの範囲に区切って、その区切った単位をブロックと呼称する
  • 条件:ひとつのブロックの中は、似たような色で占められている

世の中の多くの画像はこの条件を満たすため、目に見える劣化もなく圧縮することができます。 逆にこの条件を満たさない一部の画像では、ノイズのようなアーティファクトが出てしまいます。 たとえば以下のような例です。

  • セルアニメ調の画像
  • ピクセル表現の画像
  • ボクセルモデルツールから出力した画像

これらの例はピクセル単位で色を細かく調整するような画像です。 つまり隣り合うピクセルの色がまったく違う箇所が多い画像になります。 したがって圧縮方式が想定する条件から外れてしまい、アーティファクトが出てしまいます。 結果として、色が変わってしまうといった問題が出る可能性があります。

関連資料

問題に対する回避手法

前節で述べたとおり、問題が見えるテクスチャは隣り合うピクセルの色がまったく違うような画像です。 したがって隣り合うピクセルの色が同じになるようにすれば問題を回避できます。

この回避手法としては画像を拡大して VRM/VCI を出力しなおすことが挙げられます。 画像を拡大することにより、圧縮によるアーティファクトを最小限に抑えることができます。 しかしVRM/VCIのサイズが増加する最適化による恩恵を打ち消してしまうというデメリットがあります。

画像を拡大する具体的な手段としては、画像編集ソフトの操作が求められます。 また、画像を拡大するときは「ニアレストネイバー」という補間方法を用いるのが適切です。 またこの際、拡大するサイズは 200%400% にするのが適切です。 ただし、画像サイズの適切な大きさは 1024×1024 px 、大きくても 2048×2048 px になります。 それ以上のサイズになるようであれば、モデルの UV 展開から見直す必要があります。

画像をニアレストネイバーを用いて拡大する具体的な方法は、各種画像編集ソフトで異なります。 以下のワードで Google 検索して調べることをお勧めします。

virtualcast/setting/graphics/graphics_optimization.txt · 最終更新: 2023/08/28 18:39 by pastatto

ページ用ツール