お知らせ

2020年5月から、セカンドライフの情報は仮想生活ガイドというサイトにまとめていくように変更しました。
天使になりたくてのこれまでの情報は今後も過去ログとして残しておきますけれど、新しい情報は仮想生活ガイドをご覧ください^^
ラベル メッシュ の投稿を表示しています。 すべての投稿を表示
ラベル メッシュ の投稿を表示しています。 すべての投稿を表示

2015年12月8日火曜日

軽くて崩れないメッシュの作り方 ーマテリアル編

この記事は、「セカンドライフ技術系 Advent Calendar 2015」の記事です。

セカンドライフ技術系 Advent Calendar 2015


前々回の「ポリゴン数編」、前回の「LOD 編」で、軽くて崩れないメッシュの作り方をご紹介してきました。

今回は、メッシュはもちろん、プリムでも描画を軽くする方法をご紹介します。


ポリゴン数を削減することは、メッシュを軽くする基本的な要素です。

しかし同じポリゴン数でも、マテリアルの設定次第では、描画の負荷が高いプリムやメッシュが生まれてしまいます。


アバターの描画の負荷「描画ウェイト」の計算方法として、下記の資料があります。

Mesh/Rendering weight - Second Life Wiki


ベースのアバター

1000 ポイント
(ただし、ベイクされたテクスチャーを非表示にする毎に -200 ポイント)

ベースコスト

プリム、スカルプテッドプリム、メッシュのポリゴン数に応じたポイント

プリム毎に乗算

グロー1.5 倍
凸凹1.25 倍
フレキシ5.0 倍
輝き1.6 倍
インビジブルプリム1.2 倍
リグ入りメッシュ(Rigged Mesh)1.2 倍
テクスチャマッピング1.0 倍(負荷無し)
アニメーションテクスチャー1.4 倍
アルファ4.0 倍

追加

パーティクルプリム毎に 100 ポイント
ライトでの発光プリム毎に 500 ポイント
メディア面毎に 1500 ポイント
リンク先で別のテクスチャーを使っている場合+ 256 + 16 * (resX/128 + resY/128)


実はこれはアバター特有のものでは無くて、ビュアーで表示されるものすべてに同様に影響する内容です。


3D の世界では、ポリゴンは「シェーダー」と呼ばれる GPU 用の特別なプログラムで一枚一枚描かれていきます。

シェーダー - Wikipedia

シェーダーでは、ポリゴンの形を設定したり、ポリゴンの色などを設定したりします。

シェーダーに、ポリゴンの色やテクスチャーなどのデータを渡したりして、素材の“材質”を設定出来るようにしたものが、マテリアルです。


セカンドライフビュアーでは、編集ウインドウの「材質」の項目がマテリアルにあたります。


ポリゴンを単色に塗ったりテクスチャーを貼るくらいなら、描画の負荷はほぼ無視出来るくらいの負荷なのですが、アルファやグローなどの特別な表示を行なおうとすると、それらを描画するための複雑な処理が必要になりますので、その分負荷がかかります。

ポリゴン一枚での負荷は小さなものですが、それが何万枚、何十万枚と集まると、FPS に影響するほどの重さになってしまいます。

セカンドライフでも同様に、マテリアル(シェーダー)の設定次第では描画が重くなってしまうことがあります。

特に描画の負荷が高いのは、

フレキシ 5 倍

アルファ 4 倍

です。

これは、マテリアルにテクスチャーを貼り付けていない状態の単色のプリム(メッシュ)との描画の負荷の比較の値です。


フレキシは、通常のプリムをアバターの身体のようにグニャグニャ動くようにする仕組みです。
「フレキスブルパス」や「フレキシブルプリム」とも呼ばれています。


フレキシは、マテリアルの機能では無いのですが、描画の負荷という意味では関連する項目ですので、ここでは一緒にご紹介します。

フレキシは、そのグニャグニャ動くようにする変形処理もビュアー側でリアルタイムに計算が行なわれます。
そのため、描画をするための処理が非常に重くなってしまいます。

風になびく髪やスカート、森の木々などは、見た目はすごくいい感じなのですが、実は描画的にはすごく重いものだったのです。

フレキシが設定出来るのは、プリムだけです。
メッシュでは使用することは出来ません。
メッシュにフレキシが導入されなかったのは、描画の負荷が高すぎるためだそうです。

ですので、プリムでも出来るだけ使わない方がいいのですが…、
見た目の効果は非常に高いものですので、どうしても必要な場合には、ここぞというところワンポイントに使うのがいいと思います。


一番よく使っていて、一番意外に思われそうなのが、アルファです。

ここでの“アルファ”は、プリムの透明度はもちろん、テクスチャーの中の透過度(アルファチャンネル)も含まれます。

プリムの透明度

テクスチャーの中の透過度(アルファチャンネル)

アルファは、向こう側が透けるという処理が必要です。
そのため、まず最初に奥側を描いて、その後に手前側を描くといった処理が必要になります。

その処理が、山のようにオブジェクトがある SIM やアバターなどの間で行われますので、通常よりも複雑な処理になってしまいます。

半透明なものの向こうに半透明なものがあって…ということも珍しくありませんしね。

また、そういう複雑な処理を行なっているためオブジェクトの表示位置などによっては、前後関係がおかしくなってしまったり、チラつきが起きてしまうことがあります。

このため 3D の世界では、アルファは

鬼門

と呼ばれて、本当に必要なところ最小限または多少破綻しても大丈夫なところ(パーティクルなどのエフェクト)に使われるのが一般的です。

ところがセカンドライフでは、アルファは日常的にいろんなところに使われているんですよねw

建物などのガラスはもちろん、森の木々やアバターの髪、パーティクルなどなど…

特にプリム製の髪は、透明度のあるテクスチャーを貼ったプリムをたくさん使って作られていますので、描画の負荷が非常に高くなっていることがあります。
プリム製の髪でアバターの描画ウェイトの数値が高いことがあるのは、そういう理由です。

神秘的な景色のところでよく見かける、オブジェクトにアルファとグローを掛けた表現も、


(ベースコスト x (アルファ 4.0 倍+ グロー 1.5 倍)) x プリム数

と、描画的の負荷的には意外と高いものになります。

きれいなアバターや景色だけど表示が重いなーっと感じた時は、ポリゴン数以外に、マテリアルの負荷も確認してみてください^^


「そんなこと言われても、
オブジェクトのマテリアルの負荷って、
どうやって調べるの?」

マテリアルの負荷そのものを見ることは、残念ながらセカンドライフビュアーでは出来ませんが…、
それらを使っているオブジェクトの表示をオン/オフ出来る機能がビュアーにはあります。

それは、アドバンスメニューにある「レンダリング(種類)」です。


「====」の部分をクリックすると、メニューから切り離しが出来て便利です^^


「レンダリング(種類)」では、下記の項目の表示のオン/オフが出来ます。
  • シンプル
  • アルファ
  • アバター(フレキシブルプリムやそれらにリンクされたオブジェクトも含む)
  • 地表
  • 地面
  • ボリューム
  • パーティクル
  • 凸凹(バンプ)
各項目をオン/オフすると、セカンドライフの世界の中でその項目が使用されている部分を、表示したり消したり出来るようになります。

その際、アドバンスメニューの「パフォーマンスツール」にある「統計バー」で、FPS の値を確認してください。

オン/オフした時の FPS の差が大きければ大きいほど、描画の負荷が高いということになります。

通常の表示
アルファを使用しているオブジェクトを非表示にした際の表示
FPS が 6 増加している点に注目!

普段見ている景色のどこが描画の負荷が高いのか、ポリゴン数の負荷も含めた状態を、これで細かくチェックすることが出来ます。

これは、プリムでも、ユーザーがアップロードしたメッシュでも同様です。
この方法で、身の回りの描画の負荷が大きいオブジェクトを見つけてみてください。


“アバターの描画ウェイト”が登場した頃にはまだなかった概念として、
  • ノーマルマップ
  • スペキュラマップ
があります。


Get the New Materials Viewer Today! - Second Life

この二つのことを“マテリアル”と呼ぶことがありますが、実際にはこの二つは“マテリアルに追加された機能”です。


ノーマルマップは、低ポリゴン(ローポリ)でも細かい装飾を表現したい場合に使われる手法です。

ポリゴン数を増やさずに、テクスチャーを使って細かい造形を表現します。
細かい造形にはライティングの効果も反映されますので、従来のバンプマップよりもリアルな造形表現が可能になります。

スペキュラマップは、テクスチャーで指定した部分の輝き度合いを自由に設定出来る手法です。
ライティングの効果も反映されますので、従来の「輝き」よりもリアルな金属などの表現が可能になります。

これらは、オブジェクトの表現力を大幅に向上させてくれます。

そのかわり、

高度なライティングモデル

を有効にしないと見ることが出来ません。

※影は有効になっている必要はありません

高度なライティングモデルでは、従来のプリム含め全てのオブジェクトが、高度なライティング処理によって表示されるようになります。
高度なライティングモデルをオンにすると、画面全体の質感が変わるのは、この影響です。

具体的には、シェーダーが高度なライティング用のものに切り替わります。
そのため、見た目がよりリアルになる一方、全体的に従来の表示よりも描画の負荷がかかってしまうようになります。

ただし、「高度なライティングモデル」がデフォルトで有効になるのは、グラフィック設定が「高」以上の場合です。
また、「高度なライティングモデル」はユーザーが自由にオフにすることも出来ますので、描画の負荷が高いなっと感じる方は、デフォルトで有効になっていたとしても、オフに変更しているかもしれません。

このため、全ての人に影響することが前提の“アバターの描画ウェイト”の方では、考慮されていないのかもしれません。

ただし、描画の負荷は通常よりも掛かるものですので、ノーマルマップやスペキュラマップの表現を使用される場合は、その辺も考慮された方がいいと思います。

また、「高度なライティングモデル」の設定をオフにしていると、ノーマルマップやスペキュラマップの表現は全く表示されませんので、表示されない場合でも雰囲気が壊れないようなテクスチャー作りの方も、考慮された方がいいと思います。




3回にわたって、軽くて崩れないメッシュの作り方を紹介してきました。
いかがだったでしょうか?

今回書いてきました“軽くて崩れないメッシュの作り方”という内容は、セカンドライフだけの方法ではありません。
他の 3D の環境でも同じですので、これを覚えておけば、他のところでも活かすことが出来ます。

来年は、次世代プラットフォーム「サンサール」が登場する予定になっています。
そこでは、セカンドライフよりずっと品質の高い物づくりが要求されるかもしれませんので、今のうちにこういった作り方に慣れておかれるといいと思います^^
このエントリーをはてなブックマークに追加

2015年12月7日月曜日

軽くて崩れないメッシュの作り方 ーLOD 編

この記事は、「セカンドライフ技術系 Advent Calendar 2015」の記事です。

セカンドライフ技術系 Advent Calendar 2015


前回は、軽いメッシュを作るために、

ポリゴン数を減らそう!

という方法をご紹介しました。

しかしそれだけでは、プリムと同等の軽さにはなりません。

「え?プリムと同等のポリゴン数にしたのに、なんで?
前回の話は嘘だったの!?」

いえいえ、そうではありません^^

実はプリムでは、LOD 用の適切なモデルも設定されているので、描画が軽いんです。


LOD というのは、Level Of Detail の略です。

LOD の機能が無い 3D 空間の場合、1万ポリゴンで作ったオブジェクトは、カメラの目の前にあっても、すごく遠くにあって画面上は1ドットでしか表示されない状態であっても、1万ポリゴンとして描画されます。

見た目上潰れていても、3D の描画の処理上は1万ポリゴンは1万ポリゴンなので、同じ場所に1万回ポリゴンが描画されます。

これって、すごく無駄ですよね?

オブジェクトが一つだけならまだいいかもしれないですけれど、たくさんのアバターや SIM 内の建築物、様々なオブジェクトがあって、そういうものが遠くにもたくさんあるとしたら、どうでしょう?

描画の無駄がありすぎますよね?

遠くにあるものは簡略化して描画出来れば、もっともっと早くなるはずです。

それを実現する仕組みが、LOD です^^




LOD は、カメラからオブジェクトまでの距離によって、表示するモデルを切り替える技術です。



“モデルを切り替える”

というところが大事です。

セカンドライフのサーバーやビュアーが、リアルタイムに勝手にモデルを書き換えて減らしてくれるわけではありません!
ここ重要!!!


プリムの場合、3段階の LOD が用意してあります。

無加工の Cube の場合、カメラからオブジェクトが遠ざかるにつれて、

1段階目:108ポリゴン 
2段階目:48ポリゴン 
3段階目:12 ポリゴン

という風にポリゴン数が変化していきます。

遠くになればなるほど描画の負担が少なくなって、その分たくさんのオブジェクトを表示出来るというわけです。

みなさんがアップロードするメッシュでもこれと同じことをすれば、プリムと同等の軽さにすることが出来ます^^


メッシュの LOD の設定は、メッシュのアップロード画面で行ないます。
公式ビュアーでは、「描画詳細度」という名称の項目が LOD の設定画面です。


セカンドライフでは、ユーザーがアップロードするメッシュの LOD は4段階あります。
描画詳細度の「高」「中」「低」「最低」のところが、LOD を設定するところです。

アップロード用に選択したモデルは、自動的に「高」に割り当てられます。
それ以外のレベルの LOD は、デフォルトでは自動設定(自動的に生成)されるようになっています。

このままアップロードしてもいいですし、「三角形の限度数」の値を調整して、自分好みのポリゴン数の LOD を設定しても大丈夫です。

この辺は、メッシュをアップロードされている方なら、普段やられていることですね。

少ないポリゴン数
適切な LOD

これで、軽いメッシュのアップロードが出来ました。
めでたしめでたし^^


「軽くなったのはいいけど、この方法だとメッシュ崩れるのよ!
そこはどうなってるの?」

そうなんです!

メッシュのお悩み二点目、

メッシュは崩れちゃう!

ここの解決方法を次にご紹介します。


そもそも、メッシュはなんで崩れちゃうんでしょう?

「セカンドライフのビュアーがメッシュを表示する際に、
リアルタイムの計算誤差とかで崩れちゃうんじゃないの?」

ブッブー!
ハズレです^^


メッシュが崩れる原因、それは、

適切な LOD 用のモデルが設定されていないから

です。

LOD で大事なことって何でしたか?

そう、

“モデルを切り替える”

です。

LOD では、リアルタイムにポリゴンの削減処理が行なわれているのではありません。

カメラからオブジェクトまでの距離が一定の範囲を超える毎に、

次の LOD のモデルに切り替えている

だけです。

次の LOD のモデル…、そう、メッシュのアップロードの画面にあった「中」「低」「最低」のモデルです。

これらのレベルの LOD のモデルは、実は何も設定していない状態、

生成

の時も、アップロードの際にそれらのモデルが自動生成されて、一緒にアップロードされています。

「中」「低」「最低」それぞれのモデルが、あらかじめ作られている状態です。

もしそこでモデルが崩れている状態になっていた場合、崩れたモデルがそのままアップロードされてしまいます。

つまり、メッシュが崩れるというのは、

崩れたメッシュのモデルをアップしているから

なんです!

LOD というのは、あらかじめ用意したモデルを切り替えるだけの仕組みですので、LOD に適切なモデルが用意されていないと、このようなことも起きてしまいます。


セカンドライフビュアーで LOD 用のモデルを自動的に作ってくれる機能では、
  • プログラムによるポリゴンの自動削減処理のため、ユーザーが意図した減らし方をしてくれない
  • オリジナルの頂点数が既に少なすぎる場合も、無理に LOD を作ろうとしてメッシュが崩れてしまう
ということが起きる場合があります。

これが、メッシュが崩れる原因です。


「え?なに?それって、
セカンドライフビュアーで、
LOD 用のモデルを自動的に作ってくれる機能が
原因ってこと?」

そうです!

「じゃあどうしたらいいの?
ポリゴン数を減らしたモデルを別に作って、
それをアップロードしたらいいの?」

はい、その通りです。
それが、崩れないメッシュを作る、唯一の方法です!


メッシュのアップロード画面で、「高」と同様に「中」以下も「ファイルからロード」の項目を選ぶことで、自分が作ったモデルを LOD 用としてアップロードすることが出来ます。


そうすれば、セカンドライフビュアーではあらかじめ用意されたモデルを切り替えるだけですので、崩れることはありません。


LOD 用のモデルを作る際に注意が必要な点は、下記の部分です。

3D ソフト側のマテリアルの数/名前は、
全ての LOD 用モデルで同じにしておく

これが揃っていないと、

モデルの材料は参考モデルのサブセットではありません。
material of model is not a subset of reference model

というエラーが出てアップロードが出来ませんので、その点だけ注意してください。

ちなみに、マテリアルが同一であれば、メッシュや UV は LOD のレベルごとに全然違う形状になっていても大丈夫なようです。

これで、軽くて崩れないメッシュが出来ました。
めでたしめでたし^^


「ちょっとまって!
崩れないのは分かったけど、
4種類の LOD 用のモデルを
それぞれ一から作るのは大変すぎない?」

はい、ごもっともです。

実は Blender にも、ポリゴン数を自動で削減する機能があります。

それは、「Decimate モディファイア」です。

Doc:JA/2.6/Manual/Modifiers/Generate/Decimate - BlenderWiki

Blenderモディファイア(Decimate)





Decimate モディファイアを使うと、セカンドライフビュアーのポリゴンの自動削減機能のようにポリゴン数を簡単に減らすことが出来ます。

セカンドライフビュアーの自動削減機能と違うのは、
  • Blender のオブジェクト毎に Decimate モディファイアを適用出来る
  • Decimate モディファイアを適用したあと、修正したい場所があれば、その場で直すことが出来る
という点です。

Decimate モディファイアでもメッシュが崩れてしまうことはありますが、崩れた部分をその場で修正出来るというところが、大きな特徴です。

もちろん、手作業で修正する手間は掛かりますが、LOD 用の 4 種類のモデルを全部一から作るよりは、ずっと手間は省けます。
ぜひ試してみてください。


もともと「最低」レベルのポリゴン数で作ってあるようなモデルの場合は、LOD 用のモデルを別途用意する必要はありません。
その場合は、「中」「低」「最低」に「上記の LoD を使用」を設定するだけです。


これで、自動設定ではポリゴン数が少なすぎて崩れていたモデルも、カメラが遠くにあってもきれいに表示されるようになります。

左:LOD を自動設定にして崩れてしまったもの
右:「上記の LoD を使用」を設定したもの

ただしこの方法はあくまでも、LOD 用にもうこれ以上ポリゴンが削減出来ないモデルの場合のみ行なってください。



LOD 用の低ポリゴンモデルを作成する際は、SIM 全体の環境を考慮して、可能な限り少ないポリゴン数で表現するようにしてください。

円柱も、一番遠い LOD では“箱”にしちゃうくらいさっぱりした表現にしても、遠くにあるものですからそんなに気付かないと思います。

作り手側としては、遠くにあるものも出来るだけきれいに見せたい…という気持ちもあるとは思いますが、

ポリゴン数=パソコンの描画の負荷

に直結しますので、そこは可能な限り抑えるようにしてください。
そうしていけば、メッシュで作っていても快適な環境になるはずです。



どうですか?
重い、崩れると言われているメッシュですけれど、メッシュが悪いわけじゃないのが分かりましたよね?^^

「軽くなりましたし、崩れなくなりましたし、
これで完璧ですね!」

実は、もう1点あります。

「え?」

長くなっちゃいましたので、それは次回のお楽しみにー^^/
このエントリーをはてなブックマークに追加

2015年12月5日土曜日

軽くて崩れないメッシュの作り方 ーポリゴン数編

この記事は、「セカンドライフ技術系 Advent Calendar 2015」の記事です。

セカンドライフ技術系 Advent Calendar 2015

セカンドライフのアドベントカレンダーは毎年見ていたのですが、なかなかタイミングが合わなくて参加出来ていませんでした。
今年初めて参加します。よろしくお願いいたします^^


セカンドライフの「メッシュ」について、みなさんはどんな印象をお持ちですか?

メッシュのものがあるところは重い

カメラから離れるとすぐ崩れる

そう思われている方、多いと思います。

セカンドライフのメッシュって、そういうものなのでしょうか?
実は違います。

それらは、メッシュの特徴をうまく生かしきれていないために起きていることです。


一番身近にある、軽くて崩れないメッシュってご存知ですか?

それは、

プリム

です。

 「え?プリムは昔からあるもので、メッシュは最近追加された機能でしょ?
  どこがメッシュなのよ!」

そう思われた方もいらっしゃるかもしれません。

実は、セカンドライフの 3D の世界の中で表示されているもの、
  • プリム
  • パーティクル
  • アバター
これらは全て、メッシュなんです!


セカンドライフに限らず、3D の世界で表示されているものは、全てメッシュで出来ています。

セカンドライフではそれを、つい最近まで“メッシュ”とは呼んでいなかっただけです。
プリムも、みなさんがアップロードしているメッシュも、セカンドライフビュアーの中では同じメッシュです。

従来からある“プリム”は、リンデンがあらかじめ用意した、

基本図形(プリミティブ図形)のメッシュ

のことです。

それを分かりやすく、「プリム」という名前で呼んでいただけです。

ユーザーがアップロードしているメッシュは、そのプリムの図形を、ユーザーがアップロードしたものに入れ替えたものです。


ではなぜ、プリムは軽くて崩れないのに、ユーザーがアップしたメッシュは重くて崩れることがあるのでしょうか?

理由は三つあります。

それは、
  • ポリゴン数
  • LOD
  • マテリアル
です。

今回は、最初の「ポリゴン数」について見ていきましょう。


ポリゴンというのは、メッシュを作る際の最低単位の三角形のことです。


一部の 3D ソフトでは、四角形などの多角形をポリゴンにすることも出来ますが、セカンドライフの世界ではポリゴンは三角形です。

セカンドライフの世界がポリゴンで出来ているというのは、ワイヤーフレーム表示にすることで確認することが出来ます。

ワイヤーフレーム表示への切り替えは、開発メニューの「レンダリング」の「ワイヤーフレーム」で可能です。


通常表示 
ワイヤーフレーム表示
アバターはもちろん、プリムのものも、海も空も、全て三角形が集まって出来ていますよね?
これがポリゴンです。
そして、ポリゴンが集まって出来たオブジェクトが、「メッシュ」なんです。

セカンドライフの世界は、すべてメッシュ(ポリゴン)で出来ているんです^^


ワイヤーフレーム表示している画面の中には、ものすごい数のポリゴンがあると思いませんか?
アバターのポリゴン数なんかすごいですよね?

3D の世界ではこの画面を、1秒間に何十回も描画しています。

セカンドライフはもちろん、他のゲームなどでも、表示の重さを表現するのに、

ここの FPS は 30fps くらいなので軽いよね

という会話すると思いますが、それは

1秒間に 30 回画面を描画している

という意味なんです。

ここでの「FPS」というのは「frame per second」つまり、一秒間に何回画面を書き換えるかという意味です。

フレームレート - Wikipedia

セカンドライフビュアーの FPS は、「アドバンス」メニューの「パフォーマンスツール」の「統計バー」で見ることが出来ます。


この大量のポリゴンを、一秒間に何十回も表示しているんですよ。

さらに、ポリゴンには様々なテクスチャーや透明度、グローなどのエフェクトも適用出来ます。
それらも同様に、1秒間に何十回も描画が行われています。
3D 画面内の物が動いていても、動いていなくても…です。

3D が重いと言われるのは、こういう計算や描画を大量に行なっているからです。

それを軽くするために、GPU というハードウェアがパソコンなどには搭載されていて、CPU への負担を減らそうとしています。

Graphics Processing Unit - Wikipedia


しかし、凝ったものを作ろうとすればするほど、ポリゴンはたくさん必要になってしまいます。
メッシュアバターやメッシュの服などは、その顕著な例です。

そんなアバターや風景用のオブジェクトが山のように出てくることもある世界、それがセカンドライフです。
それでは、いくら最新の GPU を搭載したパソコンを購入しても、重いはずですよね。

ポリゴンが多い=重くなる

これは、3D の世界での基本的なことです。

ですので、メッシュの物の描画の負荷を軽くしようと思うなら、真っ先に行なう必要があるのは、

ポリゴン数を減らす

です。


先ほど、軽いメッシュはプリムだと言いました。
では、プリムのポリゴン数はどれくらいなのでしょうか?


一つのプリムのポリゴン数は、

キューブ108 ポリゴン
プリズム12 ポリゴン
ピラミッド12 ポリゴン
四面体12 ポリゴン
シリンダー192 ポリゴン
半円柱108 ポリゴン
円錐192 ポリゴン
半円錐108 ポリゴン
球体576 ポリゴン
半球340 ポリゴン
トーラス1152 ポリゴン
チューブ576 ポリゴン
リング432 ポリゴン
スカルプテッドプリム2048 ポリゴン
※無加工で、かつ LOD が最高の場合

です。

オブジェクトのポリゴン数は、インワールドで確認することが出来ます。

公式ビュアーや Firestorm ビュアーなどでは、開発メニューの「情報を表示」の「描画情報を表示する」で表示される情報の、Index Data の項目でポリゴン数を見ることが出来ます。


ポリゴン数は、「*.*** KTris」の部分に表示されています。

オブジェクトを選択すると、そのオブジェクトのポリゴン数が表示されます。
単位が「K(1000)」なので小数点が付いていますけれど、小数点を無視してそのままポリゴン数と考えたら大丈夫です^^

Alchemy Viewer では、「描画情報を表示する」の方法以外に、オブジェクトのプロフィールでもポリゴン数を見ることが出来ます。


「Triangles」の部分です。
「描画情報を表示する」の表示が分かりにくい場合は、こちらで確認してみてください。


自分で作ったモデルの場合は、Blender の編集画面でも確認出来ます。
編集画面の上に、選択したオブジェクトのポリゴン数などの情報が表示されています。


「Faces」が面数で、通常は“面数=ポリゴン数”となるんですけれど、Blender では多角形もポリゴンとして扱える「NGON(エヌゴン)」という概念がありますので、これはポリゴン数ではありません。

「Tris」、こちらが三角形のポリゴン数です。


たとえば、プリム製のアクセサリーで、そのプリム数が 100 プリムで出来ているとします。

これと同じ描画の負荷のメッシュオブジェクトを作りたい場合、仮に無加工の Cube だけで作られているケースでは、

108 x 100 = 10800 ポリゴン

で作らないといけません。

実際には、プリム製のオブジェクトでは様々な図形のプリムを組み合わせたりしていますので、プリム製の商品もポリゴン数はもう少し多いかもしれません。

みなさんが作られているメッシュのアイテムは、何ポリゴンくらいですか?

メッシュでものすごく細かくてきれいに作り込まれていても、ポリゴン数が何十万ポリゴンとかになってしまっていたらそれだけで、

重いメッシュ

になってしまっているかもしれません。


メッシュになって、作り手側の自由度はものすごく上がりました。
何十万ポリゴンのモデルだってアップロード出来ます。

しかし、その分ビュアーでの描画が早くなったわけではありません

ユーザーのパソコンの描画能力が同じであれば、プリムの描画の負荷とも比較しながら物づくりをしていかないと、

きれいだけど重くて住みにくい世界

になってしまいます。

メッシュが重いと言われる原因の一つが、この部分です。


もちろん、少ないポリゴン数できれいに見せるのは、それなりのテクニックが必要です。
そこは、デザイナーさんの腕の見せ所です!

ぜひ、環境にやさしい素敵なメッシュオブジェクトを作ってください^^


ポリゴン数を減らしました。
これで、メッシュが重い問題は解決でしょうか?

いいえ、実はまだ解決しなければいけない問題があります。

この続きは、また次回ー!^^/
このエントリーをはてなブックマークに追加

2015年9月30日水曜日

セカンドライフ公式ビュアー バージョン 3.8.4 が公開されました

セカンドライフ公式ビュアー バージョン 3.8.4 (305119) が公開されました。

セカンドライフ公式サイトのダウンロードページからダウンロード出来ます。

Downloads | Second Life

今回のバージョンでは、Importer ビュアーの内容が公式ビュアーに取り込まれました。


これまでのビュアーのメッシュアップロードの機能では、

一つのメッシュのマテリアルの数は 8 つまで

という制限がありました。

バージョン 3.8.4 からはこの制限がなくなり8 つ以上のマテリアルが適用されたメッシュもアップロードすることが出来るようになりました。

この機能は、Blender などの 3D ソフトで、マテリアルが 8 個以上割り当てられたメッシュを作成するだけで利用することが出来ます。


実際に試してみましょう。

今回は、 1 つの板(Plane)を 16 分割して、それぞれに別のマテリアルを割り当てたメッシュオブジェクトを作成します。


Collada(dae)形式で書き出して、いつも通りセカンドライフビュアーからアップロードしてください。

これで、マテリアルが 8 個以上割り当てられたメッシュオブジェクトが、インワールドで利用出来るようになります。


何も特別な手順は必要ありません^^


この機能は、従来の“一つのメッシュのマテリアルの数は 8 つまで”という仕様を変えるものでは無いようです。

実際、アップロードされたメッシュオブジェクトをよく見てみると、マテリアルの数 8 個毎に、メッシュが別のオブジェクトに分かれています。


デフォルトでは、アップロードされたオブジェクトはリンクされた状態になっていますので、編集ウインドウのオブジェクトの数は 1 になっています。

このリンクを解除すると、マテリアルの数 8 個毎にオブジェクトがリンク解除されて、別のオブジェクトになります。
今回は、2 オブジェクトになりました。


リンク解除したものは、通常の別オブジェクト扱いになります。



これまでは、一つのメッシュオブジェクトで 8 つ以上のマテリアルを使おうとすると、
  1. 3Dソフトでメッシュオブジェクトを作成
  2. マテリアルが 8 個毎になるように 3D ソフト内でオブジェクトを分割
  3. Collada 形式で書き出し
  4. Collada ファイルをアップロード
という作業が必要でした。

この作業を自動化して、8 つ以上のマテリアルが適用されたメッシュをそのままインワールドに持っていけるようにしたのが、今回の機能です。

仕様変更ではなくて、読み込み機能の改良ということのようです。


仕様や仕組み的にはちょっとややこしい感じですけれど、利用者側としては、特に何も意識する必要はありません。

マテリアルが 8 個以上割り当てられたメッシュも、何も考えなくてもそのままインワールドに持っていくことが出来ます。

今まで以上に表現力を高めることが出来る機能ですので、ぜひ活用して、素敵な商品をたくさん作ってください^^
このエントリーをはてなブックマークに追加