This is the documentation for Enlighten.

7.11.1.5. 頂点ベイク

導入

一部のケースでは、頂点ベイクを使用するメリットがあります。テクスチャと UV マップを作成するのではなく、モデルの各頂点のライティングをベイクし、頂点間に補間します。モデルに十分詳細なテッセレーションが行われていた場合、ライティングは標準のテクスチャ出力と見分けがつきません。このメリットの 1 つは、頂点ベイクを使用したオブジェクトにはライトマップ UV の展開が不要であることですが、大きな三角を持つモデルはこのタイプの出力に適していません。

HLBS シーン マークアップ

ベイクの paramset では、以下のように outputType パラメーターを vertex に設定する必要があります。

scene_default.bp
<bakeParams name="128x128_vertex" resolution="128 128" outputType="vertex"/>

頂点ベイクが行われた出力を使用する場合、一部のシーン構成に交差オブジェクトが生じ、AO 出力でのエイリアシングの原因となることがあります。

出力 UV

ベイク ステップで得られる BakeUVStream 出力は、レンダリングのために適切な頂点バッファの設定が可能な、出力ライトマップでの頂点出力の位置を示します。ピクセルが高密度にパックされているため、正しくピクセルをルックアップする際には注意が必要です。UV では、DirectX の UV 規約 (http://msdn.microsoft.com/en-us/library/windows/desktop/bb147229%28v=vs.85%29.aspx) が適用されます。[ 0.0, 1.0 ] の範囲 (包括的) の浮動小数点数のテクスチャ座標は、[ - 0.5, n - 0.5] の範囲の整数テクセル空間値にマッピングされます。n はテクスチャの既定のディメンションにおけるテクセルの数です。テクスチャ座標の UV は、浮動小数点精度によるあいまいさを避けるため、ピクセルの「中間」を参照しています。浮動小数点数 UV の整数へのマッピングは以下のとおりです。

int u = int(floor(uv.U*resolutionU));
int v = int(floor(uv.V*resolutionV));

頂点ベイクを適用したシーン例

このシーンでは左側の 2 つの球体がテクスチャ ベイクされており、右側の 2 つの球体は頂点ベイクされています。

シーンの説明

このシーンは 2 対の球体を規定しており、それぞれが固有のライトマップ (合計4 つのライトマップ) を有しています。

uboxVertex.scene
<?xml version="1.0" encoding="utf-8"?>
<scene name="uboxVertex" version="1">
    <instance name="sphere_vertex_A" systemId="1" paramSet="Interior" geometry="regular_whitesphere" type="Static Set Dressing" lmName="VERTEX_A" lmType="128x128_vertex" position="-780.912 310.003 150.0" rotation="0.0 0.0 0.0 1.0" />
    <instance name="sphere_vertex_B" systemId="1" paramSet="Interior" geometry="regular_whitesphere" type="Static Set Dressing" lmName="VERTEX_B" lmType="128x128_vertex" position="-780.912 310.003 410.0" rotation="0.0 0.0 0.0 1.0" />
 
    <instance name="sphere_texture_A" systemId="1" paramSet="Interior" geometry="regular_whitesphere" type="Static Set Dressing" lmName="TEXTURE_A" lmType="128x128_texture" position="-1082.912 310.003 150.0" rotation="0.0 0.0 0.0 1.0" />
    <instance name="sphere_texture_B" systemId="1" paramSet="Interior" geometry="regular_whitesphere" type="Static Set Dressing" lmName="TEXTURE_B" lmType="128x128_texture" position="-1082.912 310.003 410.0" rotation="0.0 0.0 0.0 1.0" />
 
    <instance name="ubox_left" systemId="2" paramSet="Interior" geometry="ubox_left" type="Radiosity" lmName="B" lmType="512x512" position="-1000.0 0.0 0.0" rotation="0.0 0.0 0.0 1.0" />
    <instance name="ubox_right" systemId="1" paramSet="Interior" geometry="ubox_right" type="Radiosity" lmName="A" lmType="512x512" position="1000.0 0.0 0.0" rotation="0.0 0.0 0.0 1.0" />
    <instance name="Box" systemId="1" paramSet="Interior" geometry="Box" type="Static Set Dressing" lmName="SSD" lmType="128x128_pack" position="1084.85 -384.894 35.3984" rotation="0.0 0.0 0.0 1.0" />
 
    <volume name="Probes" probesParamSet="Cull_L1">
        <resolution x="15" y="10" z="5" />
        <size x="3400.0" y="2400.0" z="1000.0" />
        <position x="-1700.0" y="-1200.0" z="5.0" />
        <basis>
            <U x="1.0" y="0.0" z="0.0" />
            <V x="0.0" y="1.0" z="0.0" />
            <N x="0.0" y="0.0" z="1.0" />
        </basis>
    </volume>
</scene>
ベイク パラメーター

ベイク パラメーターは、2 つの球体のテクスチャ ベイクと後の 2 つの球体の頂点ベイクを指定しています。

uboxVertex_default.bp
<?xml version="1.0" encoding="utf-8"?>
<bakeParamsList version="1">
    <bakeParams name="128x128_texture" resolution="128 128" packUVs="true" outputType="texture">
        <direct maxAASamples="8" maxLightSamples="256"/>
    </bakeParams>
    <bakeParams name="128x128_vertex" resolution="128 128" packUVs="true" outputType="vertex">
        <direct maxAASamples="8" maxLightSamples="256"/>
    </bakeParams>
    <bakeParams name="128x128_pack" resolution="128 128" packUVs="true" outputType="texture">
        <direct maxAASamples="8" maxLightSamples="256"/>
    </bakeParams>
    <bakeParams name="512x512" resolution="512 512" packUVs="false">
        <direct maxAASamples="8" maxLightSamples="256"/>
    </bakeParams>
</bakeParamsList>
頂点ベイクとファイナル ギャザー

実装の制限があるのため、頂点ベイクはファイナル ギャザーとの組み合わせでは機能しません。頂点ベイクされたオブジェクトが見えるオブジェクトではすべて、ファイナル ギャザーを無効にする必要があります。