This is the documentation for Enlighten.

7.11.1.6. 詳細レベルとベイク

導入

シーンでジオメトリ オブジェクトで複数の詳細レベル (LOD) メッシュが使用されている場合、ベイク API はこの情報を使用して、これらのオブジェクトが異なる LOD 間でセルフシャドウを行わないようにします。メッシュ LOD レベルが異なる場合、ライトマップを個別に持たせる必要はなく、メッシュごとのライトマップ機能を使用してこれを実現できます。

HLBS シーン マークアップ

ベイクはプリコンピュートと同じジオメトリを使用するため、同じ .geom XML 形式を共有します。ライトマップの詳細レベルを下げて低い解像度を使う最善の方法としては通常、各 <mesh> タグに lmNamelmType を追加します。

シーン例

このシーンでは、詳細レベル情報を持つ 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 形状のボックスの両方を指定し、GeometryAGeometryB インスタンスを配置します。各インスタンスには定義された 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 つの最終的なライトマップが得られます。

生成されたライトマップ

ジオメトリ

メッシュ

A_512x512

ubox_left

All

B_512x512

ubox_right

All

GA_GeomA_512x512

GeometryA

Pyramid

GA_GeomA_64x64

GeometryA

Cube

GB_GeomB_512x512

GeometryB

Pyramid

GB_GeomB_64x64

GeometryB

Cube

最終出力