「2014/01/16-02」の編集履歴(バックアップ)一覧はこちら
「2014/01/16-02」(2014/01/16 (木) 22:54:07) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**御指摘いろいろ 2
長くなりそうなのでページを替えました。
----
***御指摘 その4-1
こちらもMantleのお話。
御連絡の体裁としては、御指摘と言うよりは御質問でしたが。
&b(){-有人だとどうなるのか?}
&b(){-画質が違うと1フレーム描画するためのCPU負荷も違うのではないか?}
まずは前者から。
他のプレイヤーが多数接続し戦闘が行われている状況下では
当然のことながらさらにフレームレートは下がります。
原因はいくつも考えられますが、まず描画対象物が増えます。
人、戦車、戦闘機そして銃弾まで描画しなければなりません。
この点ではGPU負荷が上がり、相対的にCPU負荷が下がります。
しかし、戦闘中ですので多数の銃弾が飛び交っていることが想定され、
それらの弾道計算なども行う必要があります。
また、ゲームエンジンにもよるでしょうが衝突検出(いわゆる命中判定)もCPUで行うため、
この点ではプレイヤー数が増える程CPU負荷が上昇すると考えてよいでしょう。
----
では「有人」状態ではCPUとGPUの負荷は相対的にどちらが高くなるのか?
&b(){わかりません。}
こればかりは状況によって刻々と変化してしまうためベンチマークも困難です。
また、マップの差やプレイヤーの状況(歩兵かビークル搭乗中かなど)による影響も受けるでしょう。
恐らく、Mantleが実際にリリースされたら比較を行う事になると思いますが、
&b(){再現性の無い状況では比較ににならない}ため、
変化しない状況下で測定を行ったのが前回の記事になっています。
----
続いて後者。
もちろん画質が上がると1フレームあたりのCPU負荷も上がります。
ですが程度についてはケースバイケースとしか言いようが無いところもあります。
画質と言われて誰でも思い出すのがテクスチャ品質。
しかし、これは全くと言って良い程CPU負荷に影響を与えません。
ロード時にGPU(VRAM)へ転送した後は「それのテクスチャをどこどこに書いておいて」とGPUに指示を出すだけなので、
低画質であろうが高画質であろうが「それ」と言うだけで済んでしまうので全くと言う程差は出ないはずです。
(VRAMが不足してメインメモリから転送するようなケースはこの限りではありませんが)
但し、テクスチャの枚数が異なる場合には差になります。
「それとそれを書いておいて」
これだと2回GPUに命令を発効する必要がありますので、
CPUの仕事量も2倍になるかもしれません。
でも普通は画質設定によってテクスチャを使用する枚数が変わることはあまり無いように思います。
----
もっと影響が大きい点はそもそも描画対象の数が違うところ。
先程テクスチャについて軽く触れましたが、
GPUが扱える基本要素はテクスチャ以外には実質的にもう一つしかありません。
それはポリゴン。
皆さんのモニタに表示されている3D空間はほぼ例外なく、
三角形で出来たポリゴンで描かれています。
つまり全てのモノは三角形の集合体なんですね。
そして多数の三角形で描かれたモノの表面にビットマップを貼り付けるこれがテクスチャ。
綺麗なライティングやリアルなエフェクトも
ポリゴンとテクスチャの使い方を応用しているに過ぎません。
3Dグラフィクスってこんなに単純な話だったりします。
あくまでも単純なのは原理だけですが。
----
脱線したので戻ります。
このポリゴンの集合体をいくつ描くかはGPU負荷に直結しますが、
「あれとあれとあれとあれと....これだけ描いて」と命令を発行するCPUの負荷にもつながります。
ちなみにMantleがウリにしているメリットをピンポイントで申し上げると、
「あれとあれと...」の命令を出す負荷がDirectXと比較すると格段に低く抑えられるそうです。
少なくともこの点では確実に効果が出るはずです。
また脱線しましたので戻ります。
低画質と高画質で描くモノの数が異なるなら、
CPUの負荷も異なることは御理解頂けたと思います。
----
では、本当にモノの数は違うのか?
さすがに人や戦車が画質によって消えてしまうケースはあまりないでしょう。
直接的にゲームには影響を与えにくい木や草などですね。
実際に[[先日撮ったHyperThreading関連のScreenShot>>http://www45.atwiki.jp/goodgames/pages/1153.html]]をご覧頂くと一目瞭然ですが、
4枚のScreenShotのうち上の2枚は目の前の空き地にほとんど草が生えていません。
しかし、下の2枚は立派な草むらになっています。
---
さて、どの程度の影響になるのか?
これもわかりません。ゲームエンジン次第です。
ちなみに上記リンク先の草むらになっているScreenShotをもう一度みて頂くと、
草むらの先に50mぐらいの場所でしょうか。一段高くなって斜面になっています。
しかし、そこには草が生えていませんね。
でも近づくと草むらに化けます。
つまり、どれだけ高画質にしても目一杯細かく描画しているのは至近距離だけなんですね。
これはLOD(Level Of Detail)と呼ばれる3Dグラフィクスには欠かせない技術(?)なのですが、
「描いても見えない、描かなくても影響がほとんどない」
このようなケースを判断し合理的に負荷を下げる技術です。
もし、マップ全体が立派な草むらになっていれば、
それはGPUにもCPUに多大な負荷がかかるでしょうが、
足元だけだったら誤差程度で済むかもしれません。
----
いつも通りまとまりの無い文章になりましたが、
&b(){高画質化するとCPU負荷は上がる傾向にあるが、それほどでも無いかも}
と言ったところでしょうか。
過去の試験結果により、
少なくともフレームレートの低下に伴う
CPU負荷の低下を上回る程ではないと断定して良いでしょう。
&b(){御指摘を頂きましたにお礼申し上げます。}
(&Counter())
**御指摘いろいろ 2
長くなりそうなのでページを替えました。
----
***御指摘 その4-1
こちらもMantleのお話。
御連絡の体裁としては、御指摘と言うよりは御質問でしたが。
&b(){-有人だとどうなるのか?}
&b(){-画質が違うと1フレーム描画するためのCPU負荷も違うのではないか?}
まずは前者から。
他のプレイヤーが多数接続し戦闘が行われている状況下では
当然のことながらさらにフレームレートは下がります。
原因はいくつも考えられますが、まず描画対象物が増えます。
人、戦車、戦闘機そして銃弾まで描画しなければなりません。
この点ではGPU負荷が上がり、相対的にCPU負荷が下がります。
しかし、戦闘中ですので多数の銃弾が飛び交っていることが想定され、
それらの弾道計算なども行う必要があります。
また、ゲームエンジンにもよるでしょうが衝突検出(いわゆる命中判定)もCPUで行うため、
この点ではプレイヤー数が増える程CPU負荷が上昇すると考えてよいでしょう。
----
では「有人」状態ではCPUとGPUの負荷は相対的にどちらが高くなるのか?
&b(){わかりません。}
こればかりは状況によって刻々と変化してしまうためベンチマークも困難です。
また、マップの差やプレイヤーの状況(歩兵かビークル搭乗中かなど)による影響も受けるでしょう。
恐らく、Mantleが実際にリリースされたら比較を行う事になると思いますが、
&b(){再現性の無い状況では比較ににならない}ため、
変化しない状況下で測定を行ったのが前回の記事になっています。
----
続いて後者。
もちろん画質が上がると1フレームあたりのCPU負荷も上がります。
ですが程度についてはケースバイケースとしか言いようが無いところもあります。
画質と言われて誰でも思い出すのがテクスチャ品質。
しかし、これは全くと言って良い程CPU負荷に影響を与えません。
ロード時にGPU(VRAM)へ転送した後は「それのテクスチャをどこどこに書いておいて」とGPUに指示を出すだけなので、
低画質であろうが高画質であろうが「それ」と言うだけで済んでしまうので全くと言う程差は出ないはずです。
(VRAMが不足してメインメモリから転送するようなケースはこの限りではありませんが)
但し、テクスチャの枚数が異なる場合には差になります。
「それとそれを書いておいて」
これだと2回GPUに命令を発効する必要がありますので、
CPUの仕事量も2倍になるかもしれません。
でも普通は画質設定によってテクスチャを使用する枚数が変わることはあまり無いように思います。
----
もっと影響が大きい点はそもそも描画対象の数が違うところ。
先程テクスチャについて軽く触れましたが、
GPUが扱える基本要素はテクスチャ以外には実質的にもう一つしかありません。
それはポリゴン。
皆さんのモニタに表示されている3D空間はほぼ例外なく、
三角形で出来たポリゴンで描かれています。
つまり全てのモノは三角形の集合体なんですね。
そして多数の三角形で描かれたモノの表面にビットマップを貼り付けるこれがテクスチャ。
綺麗なライティングやリアルなエフェクトも
ポリゴンとテクスチャの使い方を応用しているに過ぎません。
3Dグラフィクスってこんなに単純な話だったりします。
あくまでも単純なのは原理だけですが。
----
脱線したので戻ります。
このポリゴンの集合体をいくつ描くかはGPU負荷に直結しますが、
「あれとあれとあれとあれと....これだけ描いて」と命令を発行するCPUの負荷にもつながります。
ちなみにMantleがウリにしているメリットをピンポイントで申し上げると、
「あれとあれと...」の命令を出す負荷がDirectXと比較すると格段に低く抑えられるそうです。
少なくともこの点では確実に効果が出るはずです。
また脱線しましたので戻ります。
低画質と高画質で描くモノの数が異なるなら、
CPUの負荷も異なることは御理解頂けたと思います。
----
では、本当にモノの数は違うのか?
さすがに人や戦車が画質によって消えてしまうケースはあまりないでしょう。
直接的にゲームには影響を与えにくい木や草などですね。
実際に[[先日撮ったHyperThreading関連のScreenShot>>http://www45.atwiki.jp/goodgames/pages/1153.html]]をご覧頂くと一目瞭然ですが、
4枚のScreenShotのうち上の2枚は目の前の空き地にほとんど草が生えていません。
しかし、下の2枚は立派な草むらになっています。
----
さて、どの程度の影響になるのか?
これもわかりません。ゲームエンジン次第です。
ちなみに上記リンク先の草むらになっているScreenShotをもう一度みて頂くと、
草むらの先に50mぐらいの場所でしょうか。一段高くなって斜面になっています。
しかし、そこには草が生えていませんね。
でも近づくと草むらに化けます。
つまり、どれだけ高画質にしても目一杯細かく描画しているのは至近距離だけなんですね。
これはLOD(Level Of Detail)と呼ばれる3Dグラフィクスには欠かせない技術(?)なのですが、
「描いても見えない、描かなくても影響がほとんどない」
このようなケースを判断し合理的に負荷を下げる技術です。
もし、マップ全体が立派な草むらになっていれば、
それはGPUにもCPUに多大な負荷がかかるでしょうが、
足元だけだったら誤差程度で済むかもしれません。
----
いつも通りまとまりの無い文章になりましたが、
&b(){高画質化するとCPU負荷は上がる傾向にあるが、それほどでも無いかも}
と言ったところでしょうか。
過去の試験結果により、
少なくともフレームレートの低下に伴う
CPU負荷の低下を上回る程ではないと断定して良いでしょう。
&b(){御指摘を頂きましたにお礼申し上げます。}
(&Counter())
表示オプション
横に並べて表示:
変化行の前後のみ表示: