This is the documentation for Enlighten.
7.11.1.6. 詳細レベルとベイク
導入
シーンでジオメトリ オブジェクトで複数の詳細レベル (LOD) メッシュが使用されている場合、ベイク API はこの情報を使用して、これらのオブジェクトが異なる LOD 間でセルフシャドウを行わないようにします。メッシュ LOD レベルが異なる場合、ライトマップを個別に持たせる必要はなく、メッシュごとのライトマップ機能を使用してこれを実現できます。
HLBS シーン マークアップ
ベイクはプリコンピュートと同じジオメトリを使用するため、同じ .geom XML 形式を共有します。ライトマップの詳細レベルを下げて低い解像度を使う最善の方法としては通常、各 <mesh>
タグに lmName
と lmType
を追加します。
シーン例
このシーンでは、詳細レベル情報を持つ 2 つのオブジェクトがあります。それぞれ、錐体 (高 LOD) と立方体 (低 LOD) で構成された 2 つのオブジェクトに注目します。明らかに詳細レベル メッシュの適切な例とは言えませんが、効果は明確に現れています。左側は GeometryA
であり、ターゲット メッシュ (立方体) と単一のディテール メッシュ (錐体) として使用される不可視の詳細度の低い LOD を有しています。右側は GeometryB
であり、ターゲット メッシュとして使用される、視認できる詳細度の低い LOD と、ディテール メッシュとして使用される詳細度の高い LOD を有しています。
GeometryA.geom
<geom id="" name="GeometryA" version="3"> <mesh name="pCubeShape1" filename=".\pCubeShape1.pim" lmName="GeomA" lmType="64x64" direct="true" indirect="true" target="true" lodLevel="-1" /> <mesh name="pPyramidShape2" filename=".\pPyramidShape2.pim" lmName="GeomA" lmType="512x512" direct="false" indirect="true" target="false" lodLevel="0" /> </geom>
GeometryB.geom
<geom id="" name="GeometryB" version="3"> <mesh name="pCubeShape1" filename=".\pCubeShape1.pim" lmName="GeomB" lmType="64x64" direct="true" indirect="true" target="true" lodLevel="1" /> <mesh name="pPyramidShape2" filename=".\pPyramidShape2.pim" lmName="GeomB" lmType="512x512" direct="false" indirect="true" target="false" lodLevel="0" /> </geom>
次に、シーンはワールド向けに 2 等分された U 形状のボックスの両方を指定し、GeometryA
と GeometryB
インスタンスを配置します。各インスタンスには定義された lmName
属性があり、これはメッシュ レベルの lmName
属性と組み合わさせられ、最終的なライトマップ名が与えられます。メッシュごとのライトマップをご覧ください。
<scene name="LevelOfDetail" version="1"> <instance name="ubox_left" systemId="1" paramSet="Interior" geometry="ubox_left" type="Radiosity" lmName="A" lmType="512x512" position="-1000.0 0.0 0.0" rotation="0.0 0.0 0.0 1.0" /> <instance name="GeometryA" systemId="1" paramSet="Interior" geometry="GeometryA" type="Radiosity" lmName="GA" position="-1000.0 -500.0 0.0" rotation="0.70710678 0.0 0.0 0.70710678" /> <instance name="ubox_right" systemId="2" paramSet="Interior" geometry="ubox_right" type="Radiosity" lmName="B" lmType="512x512" position="1000.0 0.0 0.0" rotation="0.0 0.0 0.0 1.0" /> <instance name="GeometryB" systemId="2" paramSet="Interior" geometry="GeometryB" type="Radiosity" lmName="GB" position="1000.0 -500.0 0.0" rotation="0.70710678 0.0 0.0 0.70710678" /> </scene>
インスタンスとメッシュのライトマップ名を組み合わせると、次の 6 つの最終的なライトマップが得られます。
生成されたライトマップ | ジオメトリ | メッシュ |
---|---|---|
|
| All |
|
| All |
|
| Pyramid |
|
| Cube |
| GeometryB | Pyramid |
|
| Cube |