ソラマメブログ

2007年10月04日

フットサルコートの壁を黒くすると負荷が減る?

問い:フットサルコートで、中から外が見えないようにすると、選手のクライアントへのテクスチャの転送量が減るのではないか。
私の答え:減らない。んじゃないかなぁ。。。


以下が調査内容と結果です。
---
---
●予備実験1
ある複雑なプリムの前に壁を作り、ログアウトして
キャッシュを消してからログインする。
ログイン後、60秒まってから壁を消す。
もし壁の向こうのテクスチャが転送されていないなら、
何もない地面が見えるか、灰色のテクスチャが貼られた状態で見えるはずである。

結果:消した瞬間に背景がテクスチャ付きで表示された。
(ためしに壁を消した状態でログアウトし、キャッシュを消してからログインしたところ、
最初は灰色のテクスチャで表示された)
#軽井沢から旧軽井沢の景色を見て確認。
---


で、ここからが本来の調査。実験=調査に読み替えてください。
---
●調査したいこと
・フットサルコートの壁を黒くすると、クライアントにかかる負荷が減るか?
 ->見えない所のテクスチャは、クライアントに転送されないのか?

●前提の整理
[実験の前提条件]
・テクスチャは転送されると、キャッシュディレクトリにUUID名つきで格納される。
 ->テクスチャが転送されたかどうかは、キャッシュディレクトリのファイル有無で判断できる。
  (格納数に限界があるとしても)

●環境
[SIM]
・なるべくオブジェクトの少ない所
・高低差のない所
 ->ベータグリッドで行う

[クライアント]
・最新のベータグリッド版で行う
 ->SecondLifeBetaHavok.exe (製品バージョン 1.18.3.70780)


●状況
(図)フットサルコートの壁を黒くすると負荷が減る?


(1)アバター
・北向きで地上に立たせる。

(2)壁オブジェクト
・普通の(huge)でない、箱型プリム。
・10m * 10m * 0.5m
・以下の種類とする(まずは2aだけ確認)
 (2a)テクスチャなし。透明度0%
 (2b)テクスチャあり(デフォルト)。透明度0%
 (2c)テクスチャなし。透明度50%
 (2d)テクスチャなし。透明度100%

(3)隠蔽オブジェクト
・普通の(huge)でない、箱型プリム。
・5m * 5m * 5m
・Rez時のまま(回転させない)
・6面すべてに異なるテクスチャを貼る。
 ・オブジェクトのUUID:-略
 ・テクスチャUUID(上):0,0e634762-略
 ・テクスチャUUID(下):1,e9666120-略
 ・テクスチャUUID(東):2,0f5b479b-略
 ・テクスチャUUID(西):3,a4fe9255-略
 ・テクスチャUUID(南):4,bb312bc6-略
 ・テクスチャUUID(北):5,1bd3edf7-略

●実験手順
1)各オブジェクトの設置、UUIDの取得
2)アバターを北に向かせたままログアウト
3)キャッシュを消す(リネーム)。
->確認のため、キャッシュディレクトリのファイル一覧を取得する。
4)ログインする
5)ログイン完了(バーグラフが消えたタイミング)から5, 10, 30, 60,120,150,180秒のタイミングで、
 キャッシュディレクトリのファイル一覧を取得する。
6)壁の横まで歩いていき、壁の後ろの隠蔽オブジェクトを画面に表示させる
7)キャッシュディレクトリのファイル一覧を取得する。
8)ログアウトする
9)上記1)で取得したUUIDと、キャッシュディレクトリの一覧を比べ、
 テクスチャが転送されたか否かを確認する。

●結果
[1回目]
・テクスチャのうち、東側は0s、下側は5s、上側は30s後にキャッシュに入った。
 西側、南側、北側は壁をよけて南西から近づいたとき(上記7)にキャッシュに入った。
[2回目]
・テクスチャのうち、下側は15s、それ以外はすべて30sでキャッシュに入った。

●考察
・プレイヤーが見えるか見えないかにかかわらず、テクスチャは転送される。
・下側が先に転送される結果となったが、オブジェクトのSIDEと関係あるのかは不明。


●課題
・ワイヤーフレームにしたらテクスチャが転送されないのか確認。
・テクスチャの転送量が、性能に与える影響を確認
 ->統計情報から取得(クライアント改造or画面キャプチャ)
---
時間切れでここまで。私の能力では3時間でこの程度の調査とまとめしかできません。
批判や意見を歓迎します。



Posted by march at 00:39│Comments(5)
この記事へのコメント
 見えていようがいまいがドローディスタンスの範囲内の物は
読み込みますね。ただ、それでも壁を作る理由は読み込み後の
表示を更新の際の軽さですね。微々たる物でしょうが、
同じ物でも停止してるより動いて表示される方が負荷かかりますし。
 読み込みの部分でも軽減措置が取れれば一番良いんですけどね。
例えば観客はスタジアムの100m以内に近づけないとか。
ただそうも出来ないので、客の善意とフットサルのシステム周りの向上。
で、一番は全員のPC環境の向上しかないですね。
Posted by maaya yohkoh at 2007年10月04日 07:01
細やかな実験と考察に驚きですw

MiniMapを見ても,見えてるか否かにかかわらずオブジェクトは読み込まれているようですので,Maayaさんの言われる通り正味データ転送では無く描画時の問題だと思います.
問題はその描画でPCのスペックにより意外と大きな差が出ると言う事ですね・・・GeForce7か8系でやってる人はともかく,それ以前の旧世代やチップ内蔵機とかだと描画の必要なオブジェクト数が増えると見える見えないで差がはっきり出ると思いますので「微々たる」とは言い切れない部分もあると思います.
実際,狭い部屋で10人近くすし詰めになった時とか,私の環境(Pen4-3.0GHz+GeForce7600GS)でもカメラが部屋の中と外にあるのとでは全然負荷が違ってきますんで・・・

クライアントのグラフィック設定でドロー距離をしぼったりバーテックスとかの高度処理をカットする事である程度は改善出来ますが・・・WRCみたいに高高度(300m以上)にスタジアムを作るのも有効な手段かも知れません.
あまり高過ぎると物理でゆかいな事になりますがw
Posted by Garm at 2007年10月04日 13:00
通信がネックじゃなくて、クライアントの描画能力がネックなんですな。
そうなると描画オブジェクトを減らすために中から外を見えなくするのも効果があるのかもしれませんね。
あまりやると無観客試合みたいになって、それなんて最終地区予選?wってな感じですが・・・。

どのスペックだとどのくらいのオブジェクト(フェース?)数でどのくらいのパワーがいるのか、
だいたいの図にしてみたら楽しそうですねw
Posted by march at 2007年10月04日 21:46
 周りに施設が有る場合、高高度にエリアを設けるのは結構有効ですね。
JJさんのメインランドの工房は高い位置のあるのでかなり快適ですし、
うちが行くコンバットエリアも上空だったりします。
フォットサルの場合、ボールの速度が遅く、投射軌道を描くので
あまり高い位置にはしない方が良さげですが。

 今度複数の環境で同じ視点にした際のFPSの値を比べてみます?
うちの環境がプレイ出来る人の中で一番低い環境だと思いますし
あとは他の現行スペックの人が集まれば計れそうです。
Posted by maaya yohkoh at 2007年10月05日 07:38
空中コートや水中コートって見た目が面白そう。。。
FPS値とかは大々的に調べてみたいですね。
どっかの市民なんとかワークがやらないかな(笑顔)
Posted by march at 2007年10月05日 22:45
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。