This is the documentation for Enlighten.

6.3.1. チャートの識別方法


Enlighten は、デフォルトで共有されている 1 つ以上の同一の頂点で接続しているフェースを単一のチャートにグループ化します。デフォルトでは、Enlighten は、同じ位置、法線、入力 UV 値を持つ頂点を同一と見なし、ハード エッジをまたいフェースをグループ化することはありません。

同一の頂点を判断する際に Enlighten が比較する属性を制御するには、ジオメトリ オブジェクトcomparePositionscompareNormalscompareChartUvs、または compareAlbedoUvs メッシュ属性を使用します。

たとえば、ハード エッジをまたいでチャートをマージするには compareNormals=false を指定します。 

以下の例では、頂点は位置、チャート UV に基づいてリンクされ、法線とアルベド UV は無視されます。

<geom id="1" name="Room1">
    <mesh name="Room1" filename=".\Room1.pim"
          direct="true" indirect="true" target="true"
          compareNormals="false"
    />
</geom>

共有されている頂点

通常のレンダリング パイプラインでは、さまざまなデータがそれぞれのメッシュの頂点に関連しています。各頂点には位置と法線があり、1 つ以上の UV 座標がある場合もあります。隣接するフェースに同一のデータを有する一致した頂点がある場合、両方のフェースで頂点を共有できます。インデックス化された三角のリストでは、これらの一致する頂点の頂点配列に同一のインデックスを割り当てることができます。

2 つのフェースが同じインデックスを持つ頂点を共有した場合、Enlighten は常に両方のフェースを単一のチャートにグループ化します。これにより、それぞれ共有されている頂点に単一のライトマップ UV 座標が割り当てられ、最終的なライトマップ UV セットを入力頂点配列と同じ方法でインデックス化できます。

共有されている頂点のライトマップ UV 座標は 1 つだけです。頂点を共有するすべてのフェースは 1 つのチャートにグループ化されます。チャートの境界が必要な場所では、頂点配列で頂点をコピーする必要があります。そのようなコピーを簡単かつ直感的に行うには、フェース間のチャート UV にシームを作成します。一致する頂点で、位置と法線が同じでもチャート UV が異なる場合は、同じインデックスを持てません。

縮退三角

縮退三角とは、メッシュが描画された際に目に見えない線または点からなる三角です。縮退三角は、三角ストリッパーによりメッシュに追加されることがあります。これにより、分離した 2 つの三角ストリップを連結して単一のストリップとしてレンダリングします。これは、インデックス化された三角バッファを使用しているときは必要ありません。

他のフェースと同一の頂点を共有する縮退三角がメッシュに含まれている場合、Enlighten はフェースを単一のチャートにグループ化します。これを防ぐには、メッシュ オブジェクトの三角リストを構築する際に縮退三角を除外します。

縮退三角が原因でメッシュのチャートがマージされている疑いがあるときは、GeoRadiosity チャート レンダラーを使用し、Remove degenerates を選択します。