CEDEC2011のセッション内容整理です。
デモ映像:同時に4人出現。非活性のキャラは外角線で描画
対象機種:PS3と互換性があるSystem369で、720P支援
問題点分析
①369でもメモリは不足(単純計算で2倍)
②描画負荷は共用シェーダーとスペックアップでカーバー(60fps維持は重要)
*TAG1ではカメラのアングルで見せるキャラの人数を調節してたが、今度は企画上ダメ。
1.メモリ
VRAMを一つの大きなプールで使用したらローディングの繰り返しによって短編化が発生
*メモリをカテゴリー別に分類して領域を割り当てる。
*アイテムとかローディングによる影響は受けなくなったが、
フルカラーのテクスチャーの使用は難しくなる。
* キャラ20MB X 2、 背景45MB → キャラ19MB X 4、 背景30MB、その他5MB
* BRでは「decal + normal + mask」の3枚を使用したが、
カスタマイズの範囲も狭いしアイテムの色別にイメージが必要なので容量圧迫の問題。
TAG2ではクォリティを落とした「decal + normal + specularマップ」に
カーラーマスクを使って「decalマップ」に色を先に適用して、VRAMに送るので、
容量と負荷が軽減。
2.描画負荷
状況によって解像度を動的に変更して、負荷を調節しやすいシステムに制作。
* 2人(1024 X 720)→ 3人(900 X 720)→ 4人(800 X 720)
* ラウンド開始のときは高い解像度で(1280 X 720)はじめて、負荷によって減少
* カメラ、特殊効果によって瞬間的に負荷が発生したら解像度を下げる(720 X 720までも)
* 解像度が下がっても瞬間的なので目に立つほどではない。
* 登場画面、背景、ランキング表示などでは1280 X 720, 2XMSAA
* つまり、登場人数の変化 → 解像度の変化
3.勝利画面
クローズアップで表示されるのでハイクォリティが求められる。
* フレームスキップでは途切れるので解決できない。
* インターレースで結果を合成してレンダリングのサイズを小さくすると負荷も減らす。
1280 X 360の2枚を1枚に合成(合成の費用<レンダリングの負荷)
* 動きが動的なときは縞が出て悪く見えるのでアルファブレンドを使用
* Blurのベロシティマップを使ってライン合成orアルファブレンドする領域を決定
* 背景の動きはカメラの移動量で判断
4.負荷測定
プレイを自動化して状況によるファイル名で動画を作成
* キャプチャーはSDKの基本機能を使用
* 負荷のパータンを分析してシェーダーを修正
5.使用した描画技法
* 分散シャドーマップ、SSAO、IBL
* 水やほこりによる汚れ効果は表面の定点カラーをランダムで変換してシェーダーに伝達
6.結論
メモリは最初から制限をかけて、負荷は調節可能に、測定はわかりやすい方法で
0 コメント:
コメントを投稿