「分割レンダリングについて」の編集履歴(バックアップ)一覧はこちら
「分割レンダリングについて」(2011/03/12 (土) 00:31:02) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
&sizex(7){分割レンダリング}
ここでは簡単に分割レンダリングについて説明しています。
Xbox360では、Xenonと呼ばれるATiが開発したGPUが主なレンダリング処理を行っています。
行っています。このGPUがアクセスできるメモリ領域は512MBですが、
実際にレンダリング(描写)を行えるのはXenon上にあるeDRAMとよばれる10MBの領域上のみです。
つまり、Xbox360のメモリは512MBあっても、1フレームレンダリングするのに必要な容量を最大10MB以内に収めないといけないのです。
10MBを超えた場合どうするかというと、分割レンダリングという方法をとります。
どういうふうにするかというと、名前どおり一度に1フレームをレンダリングせず、
分割(半分半分)にして二つに分けてレンダリングを行います。
ここで、「なら問題ないじゃん」と思われるかもしれませんが、大間違いです。
SPへの負担が1.2倍~1.4倍になるなどの問題もありますが、
実際には、
①半分レンダリング
↓
②レンダリングに必要な新たなデータをeDRAMへの転送
となり、この転送がコストをくうためフレームが落ちてしまいます。
ここからは余計ですが、上で示したとおりかなりここら辺が360では制限になっているところで、
ここが唯一普通のPCと違う部分です。
&sizex(7){分割レンダリング}
ここでは簡単に分割レンダリングについて説明しています。
Xbox360では、Xenonと呼ばれるATiが開発したGPUが主なレンダリング処理を行っています。
行っています。このGPUがアクセスできるメモリ領域は512MBですが、
実際にレンダリング(描写)を行えるのはXenon上にあるeDRAMとよばれる10MBの領域上のみです。
つまり、Xbox360のメモリは512MBあっても、1フレームレンダリングするのに必要な容量を最大10MB以内に収めないといけないのです。
10MBを超えた場合どうするかというと、分割レンダリングという方法をとります。
どういうふうにするかというと、名前どおり一度に1フレームをレンダリングせず、
分割(半分半分)にして二つに分けてレンダリングを行います。
ここで、「なら問題ないじゃん」と思われるかもしれませんが、大間違いです。
SPへの負担が1.2倍~1.4倍になるなどの問題もありますが、
実際には、
①半分レンダリング
↓
②レンダリングに必要な新たなデータをeDRAMへの転送
となり、この転送がコストをくうためフレームが落ちてしまいます。
ここからは余計ですが、上で示したとおりかなりここら辺が360では制限になっているところで、
ここが唯一普通のPCと違う部分です。
ここまで来ると解ると思いますが、[[ここ>http://www44.atwiki.jp/hachinetsu/pages/31.html]]にあるようなことは不可能です。
なぜなら、GPGPUもテッセレータも多くのメモリ帯域とメモリを必要とするからです。
普通のレンダリングでも大変なのに、これ以上一度にメモリが必要になるというと、とても効率が悪くなりゲームなんか動かせません。
しかもGPGPU・テッセレータ分野の処理は、ATiのGPUが最も苦手とする分野で、処理が遅い上、
そこの部分は最新世代のHD6xxx世代でも大きくnVidiaと離されている部分でもあります。
ここまで説明すれば、それよりも数世代前の設計のXenonが、まともにテッセレータGPGPUなどを使える訳が無いことがわかるはずです。