「遅延レンダリング」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) |
||
| (同じ利用者による、間の5版が非表示) | |||
| 8行目: | 8行目: | ||
ドローコール数 = モデル数 x ライト数 | ドローコール数 = モデル数 x ライト数 | ||
一方、シンプルな遅延レンダリングでは以下のような感じになる。 | |||
ドローコール数 = 初期化x3 + モデル数x3 + ライト数 + 結合処理 | ドローコール数 = 初期化x3 + モデル数x3 + ライト数 + 結合処理 | ||
太陽光など[[平行光源]]が1個しかない状況では[[フォワードレンダリング]] | ちなみに「x3」の部分は[[マルチプルレンダーターゲット]]を利用すれば「x1」にすることができる。 | ||
ドローコール数 = 初期化 + モデル数 + ライト数 + 結合処理 | |||
太陽光など[[平行光源]]が1個しかない状況では[[フォワードレンダリング]]の方が圧倒的に有利だが、街灯などの[[ポイントライト]]が何個もある状況では遅延レンダリングの方が有利である。 | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
| 81行目: | 85行目: | ||
この遅延レンダリングの特性から2000年代中頃あたりに「夜中に作戦行動する[[右下から銃の生えたゲーム]]」で大流行した。遅延レンダリングといえばだいたい「夜」である。採用例のほとんどが非常に暗いゲームばかりなので日本では人気がないものばかりです。 | |||
== 欠点 == | == 欠点 == | ||
| 91行目: | 95行目: | ||
=== メモリ使用量が多い === | === メモリ使用量が多い === | ||
シンプルな遅延レンダリングの実装でもざっくり[[フォワードレンダリング]]の4倍の[[メモリ]]が必要になる。 | |||
実装によっても異なるが、だいたい以下のような構成のスクリーンサイズの[[レンダーターゲット]]が必要になる。 | 実装によっても異なるが、だいたい以下のような構成のスクリーンサイズの[[レンダーターゲット]]が必要になる。 | ||
| 103行目: | 107行目: | ||
=== メモリ帯域が必要 === | === メモリ帯域が必要 === | ||
前述の遅延レンダリングではメモリ使用量が多い問題に関連して、遅延レンダリングではメモリに頻繁に読み書きするためメモリの速度が遅いとかなり残念な結果になります。 | |||
とくに[[スマートフォン]]では非常に低速な[[メインメモリ]]の一部を[[VRAM]]として利用するため問題になることが多いです。むしろまともに使える機種は無いと考えた方がいいです。 | |||
[[ローエンド]]や[[ミドルレンジ]]の[[スマートフォン]]や[[タブレット]]の[[コストカット]]はだいたい「カタログスペックに現れにくいメモリ帯域周り」と相場が決まっています。素人は「メモリ容量」しかみないからね。 | |||
==手順== | ==手順== | ||