Difference between revisions of "メッシュと LOD"
Atami Merlin (talk | contribs) |
Atami Merlin (talk | contribs) |
||
Line 75: | Line 75: | ||
UV マッピングでは、単純にテクスチャの繰り返し (U と V) とオフセット(補正値)を設定します。 | UV マッピングでは、単純にテクスチャの繰り返し (U と V) とオフセット(補正値)を設定します。 | ||
もしあなたがビルドツールのテクスチャ・タブを子細に見たなら、U と V が既にテクスチャのオフセット値として使われているのが見えるでしょう。 | もしあなたがビルドツールのテクスチャ・タブを子細に見たなら、U と V が既にテクスチャのオフセット値として使われているのが見えるでしょう。 | ||
そうした親しみの上で、このコンセプトがより簡単に出てくることを学んでください。 | |||
===一般的な UV マッピングの技法=== | ===一般的な UV マッピングの技法=== |
Revision as of 15:13, 19 December 2012
詳細レベル
詳細レベル (LOD) は Second Life が、カメラが距離を遠ざけるにつれてオブジェクトの視覚的な詳細を低下させる仕組みです。
メッシュモデルをアップロードする際に、私たちは各レベルにおける詳細度を完全にコントロールできます。
- アップローダーは4つの詳細レベルをサポートします。
- アップローダーは、プレビューや大まかなインポートに合った低い LOD を自動的に生成します。 あなたは自分自身で低い LOD のモデルを作成することで、レベル間のよりスムーズな移行を獲得できます。
- LOD の (詳細度が変化する観察距離における) 選択は、オブジェクトの大きさに影響されます。 同じ距離では、より大きなオブジェクトは小さなオブジェクトより詳細な LOD を見せます。 あなたが自分で LOD モデルを作成してアップロードする際には、これを忘れないでください。
- アップローダーは、重複する LOD レベルのスロットに同じファイルを使用することを許します。 これはより小さなオブジェクトの詳細を確保するのに便利ですが、よく考えて使用してください ;高度に詳細なモデルを全てのスロットに使用すると、モデルの土地影響 (land impact) やレンダリング性能に不利な影響をを与えます。
- 全ての LOD モデルの当り判定の境界 (bounding box) が、共通なサイズであることを確認してください。 これはオブジェクトが LOD レベルを遷移する際に、大きさを変えてしまうのを阻みます。 ほとんどのモデル作成アプリケーションは、複合したオブジェクトの当り判定境界を、同時に見る方法を提供しています。
- 各々の LOD モデルは、最高の詳細度のモデルの全てのマテリアルを維持すべきです。 あなたのモデルが8つのマテリアルを持つなら、すべての LOD モデルも同様です。 これを無視すると、予測不能なテクスチャ位置の変化を引き起こすでしょう。 しかもマテリアルの必要性の無視は、アップローダーを止めないでしょう。 もしあなたのモデルがテクスチャを不適切に表示しているなら、LOD ファイルのマテリアルに目を凝らしてください。
- LOD モデルを作成する為の大まかな指針は、各レベルでトライアングル数を 50%-75% 減らすことにあります。 例としては、最も詳細なモデルが 400 トライアングルだとすると、次のレベルでは 200 トライアングルを越えるべきではないでしょう。 さらに次のレベルは 100 以下で、最低では 50 トライアングルかそれ以下であるべきです。
メッシュモデルを順を追ってアップロードする為の Second Life の知識基盤 (Knowledge Base): モデルのアップロード
アップローダーの LOD セクションの簡単な手順
アップローダーが生成する LOD
- トップメニュー・バーから、 Build > Upload > Model... を選択します。
- "High" のファイルスロットで Browse をクリックし、あなたのコンピュータ上の .dae ファイルを選択し、 Open をクリックします。
- "Medium" レベルのスロットを反転表示させる為にクリックします。 どれかのレベルを反転表示させると、そのレベルのモデルが Preview 窓に表示されます。 LOD 間の遷移が満足できるまで、トライアングル数を上下させる為に各々のレベルで↑↓を使用してください。
- Calculate weights & fee をクリックし、好きな土地影響 (Land Impact) 数になるかを見ます。 しかしまだアップロードしないで! まだモデルの物理特性プロパティを調節する必要があります。
トライアングル数の制限とエラー閾値の完全な詳細は、 Upload Model UI reference を見てください。
ユーザーが作成する LOD ファイル
- トップメニュー・バーから、 Build > Upload > Model... を選択します。
- "High" の LOD スロットで、上述の最高詳細度のモデルを読み込みます。
- "Medium" スロットで、次の詳細度の LOD モデルを読み込みます。
- "Low" のファイルスロットで、最低より一段上の LOD モデルを読み込みます。
- "Lowest" スロットで、最低の LOD モデルを読み込みます。
- Calculate weights & fee をクリックし、好きな土地影響 (Land Impact) 数になるかを見ます。 しかしまだアップロードしないで! まだモデルの物理特性プロパティを調節する必要があります。
物理特性
Second Life は、カスタムの物理シェイブ (物理特性の形状) をサポートしており、それはメッシュオブジェクトと一緒にアップロードすることもできるし、独立してアップロードすることも可能です。 これにより、視覚的に複雑でありながら低い物理特性の重みをもったオブジェクトの制作が可能となります。 物理シェイブを作る際の Havok の公式 (そして非常に技術的で) かつ最良の演習のために、 Second Life 知識基盤で Best practices for creating efficient collision volumes を見てください。
Havok 物理のヒントと過度の単純化
Havok はキューブを愛しています。そしてここに、Havok がキューブを処理することに最適化されていることが殆ど瞬時に見てとれます。 逆に言うと、Havok がキューブ (より適切に言えば、空洞を持つかカットされたそれ)よりも複雑なオブジェクトに出会う時、そのオブジェクトの ひとつひとつのトライアングル を数えて、それぞれをどう扱うかを思案することを強いられます。だから物理シェイブはできる限り単純に保ってください!
さまざまなタイプの課題に対応する物理シェイプを作成するための指針が存在します;
- 大きくてくぼんだ形状 (家とか)の為には、最低限のトライアングル数をもったカスタムの物理特性のメッシュを用います。より大きなトライアングルを物理メッシュに使うと、物理コストはより低下します。
- 正確な衝突形状を必要としない非常に単純なオブジェクト (木の幹とか)では、箱型のような粗末な物理シェイプを使ってみてください。 さらにこの手法に関する情報が必要であれば、 Physics Optimization を見てください。
- カスタムの物理特性のメッシュを効果的に使うには小さすぎるが、かなり正確な衝突モデルを必要とする、中間的なオブジェクトに対しては、下記のメッシュアップローダーの物理特性タブを利用してください。
物理シェイプ、それがメッシュのアップロードや LOD とどのように関係するか
ここにメッシュアップローダーの物理特性タブを使用するための手順の説明があります
このタブには殆ど無限の柔軟性があります。ここにあるのはアップローダーの物理特性タブの素早い説明であり、冗長ではありますが、解析ボタンの重要性と実用性を詳解することは必要なことです。
ステップ 1: 詳細レベル
- あなたは LOD レベルのどれでも物理シェイプとして割り当てることができます。
- あるいは、物理シェイプのために新しいファイルを挿入できます。
- あるいは、アップローダーのまさにここで物理シェイプを生成することもできます。
ステップ 2: 解析
- 解析ボタンを使用せずにアップロードされたメッシュの物理シェイプは、インワールドで、両側に面をもつ結果となるでしょう。 実例: ひとつの平面が両側に面をもつ壁としてアップロードされるでしょう。 キューブは空洞をもつ箱としてアップロードされます。 これは単純な形状を作るには便利なのですが、同時に、アバターやその他の物理オブジェクトをトラップするエリアを作り出す危険なことでもあります。
- 解析ボタンを押すと一組の 凸面体 (穴や窪みのない形状)が生成されます。それは元々のメッシュ形状を近似したものです。 これらの凸面体の殻 (convex hull) は、塊として振る舞う物理シェイブを作り出します。 解析済みの物理シェイプの中で立ち往生したアバターや物理オブジェクトは、 Havok によってきちんとその塊から押し出されます。
ステップ 3: 単純化
- ここからあなたは単純化ができます。
- より複雑な形状の中の穴を塞いでください。 これは物理シェイプのために LOD レベルを利用するときに有用です。
いつでもゴールは最も単純な物理シェイプを可能とすることにあるべきです。 ここにあるアップローダーのツールを表面形状 (geometry) と物理特性の計算をできうる限り低く保つ為に利用してください。
UV マッピング
Second Life の中でビルドツールを使ったことのある人なら、誰でも既に UV マッピングは理解しています。 ただし、たぶんそれは異なる用語集の下でのことです。 UV マッピングでは、単純にテクスチャの繰り返し (U と V) とオフセット(補正値)を設定します。 もしあなたがビルドツールのテクスチャ・タブを子細に見たなら、U と V が既にテクスチャのオフセット値として使われているのが見えるでしょう。 そうした親しみの上で、このコンセプトがより簡単に出てくることを学んでください。
一般的な UV マッピングの技法
標準的な UV マッピング
最も普通の UV マップ技法では、メッシュの表面を偏平な部分に巧妙に分割します。 大抵の 3D モデリング・ソフトウェアパッケージにはこの機能が最初から準備されています。
このやり方でする UV マッピングには、長所も短所もあります:
- この UV マッピング技法を使って作られた形状は、テクスチャがインワールドでどのように適用されるかを簡単に視覚化でき、それによりテクスチャの修正や描画が簡単になります
- 大抵の 3D モデリング・ソフトウェアパッケージは、このマッピング技法 (投影マッピング、シーン・ライティング、諸々と併せることで)を利用して美しいテクスチャを生成するのに利用することができます。
- 欠点は、より大きくとても複雑なオブジェクトで明らかになります。 複雑なオブジェクトをひとつの UV マップ上に平らに広げようとすると、あるものは簡単にピクセル(ないしテクスチャ空間)から飛び出して行きます。 その代りとして、大きなオブジェクトは、しばしば継ぎ目のない繰り返し可能なテクスチャを必要とします。
投影 UV マッピング
投影 UV マッピングは、インワールドでプリム・オブジェクトにテクスチャを適用するのに非常に似ています。 投影 UV マッピングの目的は、発色している (diffuse) テクスチャの大きさを決め、回転させ、位置を補正することで、オブジェクトに完璧にそれを着せることにあります。
- 投影 UV マッピングの利点は多用途であることです。 この方法でUV マップされた家には、どんな数の標準的な壁や屋根、あるいは室内装飾のテクスチャでも着せられます。
- テクスチャは繰り返しと位置補正が可能です。
- テクスチャはアニメーションできます。
欠点:
- インワールドでのテクスチャサイズが過剰になる危険性
- 投影 UV マップを付けてアップロードされたモデルでは、モデリングソフトウェアのテクスチャ焼き付け機能の利点が利用できない
Baking textures
An advanced feature of most modeling software packages uses both the Standard UV map and the projection maps to render an image. This is sometimes referred to as "baking" a texture. The goal is to use all the texture information stored in the Projection maps to create an image that fits the Standard UV map. This render can be influenced by any lighting or other objects in the scene.
Texture Faces
- Second Life's COLLADA mesh uploader supports up to 8 separate texture faces.
- Each LOD model must all have the same number of Texture faces.
- All the separate faces need to use the same UV map.
- Each modeling software handles this slightly differently. Assigning different areas to different materials archives separate Texture faces on an uploaded Mesh in some modelers, and assigning areas to separate textures achieves this in others. Here are some examples of application specific information.
Normals
A normal is something that is perpendicular to a plane. For the scope of this article, normal describes the direction a face is pointing. Most 3D renderers, the Second Life Viewer included, smartly render only one side of a face. This saves cycles but assumes model is manifold (enclosed in a way that won't encourage views inline with the normal, or are double sided where needed)
Two spheres. Left: Normals pointing out, Right: Normals pointing in.
Smooth Normals
In the case of a round or curved multiple face surface, a normal average can be used. A normal average allows inexpensive surface smoothing. Commonly known as "smooth normals" or "smooth shading", it is an invaluable tool when creating low polygon Second Life content. Smooth normals allow fewer faces to appear as a visually smooth surface, requiring far fewer faces. For example, a five-sided cylinder with smooth normals can appear completely round in Second Life. In some cases, a even a three-sided cylinder can appear perfectly round.
Low polygon modeling
It is important to remember that Hollywood-quality digital models are extremely costly to use in Second Life. Real-time rendering means Second Life must stream triangles and data near the speed of light. Make sure each and every polygon and bit counts! There are many low polygon modeling techniques and software-specific tutorials and tools available around the web.
The goal is to save every triangle you can on the model you plan to upload:
- Ensure that any flat surface uses the smallest number of triangles possible.
- Use smooth normals to "fake" smooth curved surfaces.
- Use low polygon rendering tricks to bake detailed textures, which can provide the illusion of more geometric detail.
Low polygon texture baking tricks
It is possible to create a very highly detailed model and use it to render gorgeous textures on the faces of a very simple low polygon (Second Life friendly) version. In this case, the name "low polygon modeling" sounds slightly deceptive because you will model and render a very high polygon scene for the purposes of creating the textured illusion. However, the final product is a very efficient, low-polygon model with very detailed textures mapped onto it.
Most modeling software packages have features built in to facilitate this technique.