2013-12-09

メッシュ:省ランドインパクトの一例




これは セカンドライフ 技術系 Advent Calendar 2013 用に書いた記事です

----------------------------------------------------------------------




メッシュは造形の自由度が高くテクスチャーを貼る面も好きに設定できるのでモノヅクリに重宝します

しかし通常のプリムの「土地の負荷(ランドインパクト)」が1プリム=1であるのに対し、
メッシュの「土地の負荷(ランドインパクト)」は1プリム=1とは限りません

今回は、複雑な形や大きい物をを作ると大きくなってしまうメッシュのランドインパクトをなるべく小さくする『省ランドインパクト』の一例を書いてみようと思います






サンプルとして「天井付きのアーチ」みたいなもの(上図)をblenderで作りSLにupしてみます
※いずれもviewerはFirestorm、「描画詳細度(Level of Detail)の中(Medium)を最高に設定



まず作ってみたオブジェクト

①アップロード画面では「土地の負荷は 6.422」です



実際rezしてみると小数点以下は四捨五入され
「土地の負荷は 6」になります














アーチの天井部分を平たくしてみます
blenderで手を加えアップロードします

②アップロード画面では「土地の負荷は 8.239」です

実際rezしてみると小数点以下は四捨五入され
「土地の負荷は 8」になります


形を少し複雑化するだけでも土地の負荷に影響を与えることがわかります










さらに、天井部分に穴を開けてみます
blenderで手を加えアップロードします

③アップロード画面では「土地の負荷は 11.814」です
実際rezしてみると小数点以下は四捨五入され
「土地の負荷は 12」になります




形はこれで完成としましょう

これにテクスチャーを貼って出来上がり!
・・・とはなりません






メッシュオブジェクトにこのままテクスチャーを貼っても上手くいきせん
テクスチャーを貼るためには、blender上で面を設定しなければなりません
(本題と逸れるのでここでは面の設定方法は省略します)



では、blenderで面を設定しオブジェクトを再アップロードしてみます

④アップロード画面では「土地の負荷は 15.860」になっています

そう、面を設定すると負荷が大きくなってしまうようなのです

実際rezしてみると小数点以下は四捨五入され
「土地の負荷は 16」になってしまうことでしょう




ランドインパクト(土地の負荷)が16・・・ 

これが大きいと感じるか妥当だと考えるかは分かれるところですが、
もう少しランドインパクトが小さくなったほうがいいと思ったときは
以下のように「分割する」という手段もあります



blenderで④のオブジェクトを1/4にカットしたパーツを作りアップロードしてみます

⑤アップロード画面では「土地の負荷は 2.566」です
実際rezしてみると小数点以下は四捨五入され
1オブジェクトの「土地の負荷は 3」、
形になるようにコピーを3つ作り並べてみると
4オブジェクトで「土地の負荷は 12」になります

この段階でオブジェクト1つで作るより
ランドインパクトが4減ります
さらに、4つのオブジェクトをリンクしてみます

すると「土地の負荷は 10」になります

これは「土地の負荷2.566x4個=10.264(小数点以下四捨五入)≒10となったためではないかと思います

結果として、1オブジェクトで作るより4オブジェクトで作ったほうが
ランドインパクトが6減ったことになります








あとはテクスチャーを貼って完成です


































以上、
「メッシュは小さいオブジェクトのほうがランドインパクトが小さい」という特徴と
「リンクするとランドインパクトが減る可能性がある」という特徴をを使って
省ランドインパクトする方法でした







2013-12-06

素プリム1個なのにランドインパクトが




ちまちまと新しい本店を作ってる最中、変なことに気がついたので記録



どれくらいプリム使ったか調べてみると―――600プリムを超えてる?!

150プリムを目安に作ったはずなのにこれはおかしい、そんなはずがない
メッシュも使ってないのに、単純な造形なのに、600プリム超えはありえない・・・
いったい何が原因でそんなことになった???



というわけで調べてみることに




「土地の負荷は 604」となっている

どう見ても150プリムも使ってなさそうなのになぜ・・・

原因を探るべく一部のリンクを外しプリム1個ずつ調べてみると
いくつかのプリムのLI(ランドインパクト)が尋常じゃない値だった

使っているのは素プリムなので本来ならプリム1個あたりのLIも1であるはずなのに

これはおかしい・・・




そこでサンプル用意

赤いのがおかしいプリム
(作りかけの本店からコピーしたもの)

なのが正常のプリム
(新しいプリムで赤いのと同じ形に作ったもの)


赤い方は LI=12 もある 1プリムなのに

緑の方は LI=1

これが普通 のはず

サイズを小さくしてみる

LI=18 に増えた


さらにz方向に小さくしてみる

LI=28 になった
緑の方はもちろん LI=1
サイズを大きくしてみる

LI=7 に減った









大きくすればLIが減るのかと思いきや、
さらにサイズを大きくしてみると

LI=46 に増えた

法則がまったくわからない
緑の方はもちろん LI=1
小さくするとLIが増え大きくするとLIが減るという順序的なはなしかと思ったがそうでもないようだ

小さくしてみたけど LI=9 に減った
サイズだけでなく、中空などをいじってもLIが変わるもよう

LI=43になった

1プリムなのに







穴寸法とプロフィールカットをいじったらなんと!

LI=413 に!?!?

413はない! どういうこと?ww

こ れ は ひ ど す ぎ る wwww



緑の方はもちろん LI=1
















それで


これはなんとかしなければいけないと思いあちこちアレコレいじってみたところ

おかしいLIを正常化することができ、なんとなくの原因が掴めた



LIを正常化する方法は以下



「材質」タブの「凸凹(Bumpiness)」を選択
「凸凹」で何かを選択

カットストーンでも明るさでも木目でもなんでもOK

すると土地の負荷が1になる
負荷が1になったところで凸凹を「なし」に

これでLIが正常のまま保たれる












さて、方法がわかったので1つ1つプリムのLIを正常化してみると


全体を選択してプリム数を調べてみたところ

126プリムで「土地の負荷 126」

LIが正常になった



やれやれ。。










以下考察




・LIがおかしくなった原因としては「凸凹(Bumpiness)」をいろいろいじったからかもしれない
マップを作ってUPして貼ったり、ローカルからテストで貼ったり、「Advanced Lighting Model」じゃなくても見えるデフォの凸凹使ってみたりした間になんだかおかしくなったのかもしれないかもしれない

・公式viewer以外(FirestormとNirans)では上記の方法を使ってLIを正常化できなかった
とにかく困ったときは公式viewerを使うのが1番かもしれない
とはいえ公式viewer自体がなかなか困ったヤツかもしれない

・自作のバンプマップを建物に使うのは時期尚早なのかもしれない
マップをテクスチャに手軽に揃えることができなくて設定するのがめんどくさいし、
「Advanced Lighting Model」を普段使いする人が多いと思えないし、
なんだかこんな変なことが起こる可能性があるし、
今はまだ使うのやめとこーって思っちゃったかもしれない





以上


2013-11-26

「平面を揃える」と「光」





使いづらいと感じだしたので本店を新しくすべく建物を作ってるんだけども

(←現在の本店)

驚くべきことに和風チックなものを作ろうとしてこの状況
完全にかけ離れたものが出来上がりつつある模様
和風って何だ・・・
それと、なるべく丸い感じにしようと踏ん張ってる最中
四角くて直線的なものにコンクリのテクス貼りたい欲求を抑えるのが非常にぐぬぬぬ

それにしても作ってるうちにどんどん大きくなってしまった
広い空中で作るとどうも気が大きくなっていかん
こんな巨大なもの地上に置いたら迷惑がられるだろうなぁ・・・




それでですね


「面を揃える」が便利すぎて多用してるんだけど、
そこに「光」を当てるとんんん???ってなることに気づいたのでちょっと書いてみようかと
(あわよくば親切などなた様かから解決法を指摘されることを期待したりして)


外観はデコボコだけど中身は平らな床だったりする
平らな1枚床に見せかけるために面を揃えているというわけ


当然だが夜になると暗い
フルブライトは好きじゃないので照明でも置こうかと考える
素プリム光源を置いてみる
viewerはFirestorm

設定:【Local Lights】

ふむふむ
設定:【Basic Shaders】

んっ? 光の落ち方にムラが?
実はこの床、丸いプリムがいくつも連なってできてる
どうもこの面の境が光のムラになっているようだ
設定:【Atmospheric Shaders】

ますます面の堺がくっきりと
設定:【Advanced Lighting Model】

面の境が消えた!
公式viewerでも見てみる

設定:【Local Lights】

なんかおかしい気がするけどまぁふむふむ 
設定:【Basic Shaders】

やっぱり光の落ち方にムラが

設定:【Atmospheric Shaders】

ますます面の堺がくっきりと

設定:【Advanced Lighting Model】

面の境が消えた!

ちなみに床だけ Nominal map 使ってるのでデコボコ









というわけで


とにもかくにも世界の見え方って人それぞれすぎるなと今回も深く再実感

「面を揃える」と「光」の話は設定をAdvanced Lighting Modelにすれば面の境が消えることがわかったけど、なかなか普段使いで高設定にしてる人も少ないだろうし・・・

「面を揃える」を使ってる皆様はこれをどう処理してるんだろうか



なんか解決策がありそうなんだけどな~気づいてないだけで。。。


2013-11-08

おまけ:メッシュの見え方/崩れ方

前回の記事「メッシュの見え方/崩れ方」で、メッシュは設定が変わるとどう見えるのか、どう崩れるのかを観察してみたんだけど、

今回は、メッシュが絶対に崩れて見えないLOD最高設定にしたときのアップロード料金やランドインパクトやらを見てみたのでおまけで書いておこうかなーと





まずはサンプルを紹介


前回と同じABCDEの5種類のメッシュオブジェクトにF(赤)を追加

A(黄色)=LODデフォ設定でアップロード
B(黄緑)=LODのLowestだけ0にしてアップロード
C(ピンク)=LODのLowestとLowを0にしてアップロード
D(水色)=LODのLowestとLowとMediumを0にしてアップロード
E(青)=Dと同じLODで大きさ5倍にしてアップロード
F(赤)=LOD最高設定でアップロード
装着しているのはFと同じもの
LODデフォ設定でアップロードすると→
Upload fee: L$ 37, Land Impact: 30.266

※LODとはメッシュをアップロード際のタブにある「Level of Detail」の略
Mediumだけ最高設定でアップロードすると→
Upload fee: L$ 38, Land Impact: 37.252
MediumとLowを最高設定でアップロードすると→
Upload fee: L$ 41, Land Impact: 66.626

ランドインパクトがぐぐっとあがった
MediumとLowとLowerを最高設定でアップロードすると→
Upload fee: L$ 633, Land Impact: 622.204

しかしいきなり高い この料金はもはやペナルティチャージ
ランドインパクトがデフォの20倍とか暗に使うなってことですね
ちなみに上の設定でウェイトを含まないと→
Upload fee: L$ 536, Land Impact: 525.908

ウェイトがない(リグメッシュじゃない)とちょっとお安いのね
「Error Threshold」で最高設定してみると→
Upload fee: L$ 633, Land Impact: 622.204

「Triangle Limit」と同じ結果
どう違うのかな・・・
「Use LoD above」で最高設定してみると→
Upload fee: L$ 633, Land Impact: 622.204

「Triangle Limit」と同じ結果
なにか違うのかな・・・
「Load from file」で最高設定してみると→
Upload fee: L$ 633, Land Impact: 622.204

「Triangle Limit」と同じ結果
どんな違いがあるのかな・・・






結果は予測できるけどとりあえずObjectsを最Lowにして観察


<< Objects: Lowest, RenderDynamicLOD: TRUE >>

B・C・D・Eは最初から形にならない
Aも少し形が崩れているのに対してFと装着はさすがにきれいな形を保っている
最大限離れてみてもFの崩れなし

まぁ予想通り












<< Objects: Lowest, RenderDynamicLOD: FALSE >>

B・C・D・Eは最初から形にならない
Aも少し形が崩れているのに対してFと装着はさすがにきれいな形を保っている
最大限離れてみてもFの崩れなし

つまりRenderDynamicLODがTRUEでもFALSEでも、Objectsの設定が最Lowだとさすがに同じ見え方















わかったこと



・LODのLowestを最高数値にするとヒドイことになる




以上


TOP