LW と Sculptris でのデータ要件とか
Lightwave(LW)からSculptris(SC)に流し込む為のデータ要件メモ。
単に形状(OBJ)を読み込むだけの場合と、ペイント向けにUV込みで読み込む場合では要件が変わるけど、後者は前者を内包するので、後者を基準にしてる。
用語的にはLWを基準にして十把一絡げにしてるから、読み取るには読み替えや概念の変換が必要かも('з`)
■形状自体
1)三角/四角の混在可能。 SCが三角化する。
※四角を受け付けるには条件があるかも?
サブパッチ形状→3x3 Quadフリーズ:OK
同形状→2x2 Quadフリーズ:NG
同データ→三角化:OK
という事があった。
※※非平面の度合いが影響してるっぽい。
非平面だけを三角化して、四角と混在の状態にしたら↑2x2 QuadでもOKになった。
レイアウトのサブパッチのフリーズ(規則/結果)に合わせる事を考えると、モデラでのフリーズはTriangleでやらないと駄目なんだけどね( 'з`)
四角でフリーズさせるのは害こそあれ利点なし('ε` )
2)点ポリ、線ポリは受容される。 SCで可視化はされない。
3)多サーフェスは受容される SCが1サーフェスにする。
4)UV(値によって囲われる範囲)の重複は許容される。
但し、SCで1サーフェス化されるので重複箇所へのペイント処理は不定になる。
5)SCにUVを読み込ませる場合は全ポリゴンがUV値を持っている必要がある。
LW風に言えば、全頂点がUVにマップされている必要がある。
6)形状は閉じている必要がある。 目や口に注意。

■OBJ出力。 LWのExport OBJ(CmdClass&MeshClass問わず)。
a)LW上でサーフェスがUVを参照していないとUV値が記録されない。
それによりサーフェスが複数ある場合にUVの有無が混在する事になりかねない。 混在すると(5)に引っ掛かる。
LW上のサーフェスが一つで、UV参照をしていない場合は、UVが最初から存在しない事になるので問題にはならない。
b)~9.3.1迄のExport OBJ(Cmd/Mesh)ではUVに関する出力内容が汚い為、SCをクラッシュさせる。
c)9.5~であっても、OBJ出力オプションのZBrushModeがONの場合は(b)と同じになる為、SCをクラッシュさせる。
d)頂点がマップされていないUVをサーフェスが指定していた場合、UV値はゼロとして出力される。
(5)を防ぐ効果はあるけど、(4)に引っ掛かるので意味が無い。
↓画像の重複時の形状のようにUV値が形状に干渉するので、過度の重複はクラッシュに繋がるかも。
~931では、
v(頂点)
vt(UV)
f(面/UV Idx/pNorm Idx)
vt
f
の様に面毎にvtとfを繰り返す。 SCは許容出来ずに落ちる。
v/vt/f、各種毎に一纏めにして出力されていればSCで読める。
9.5~でZBrushMode:OFFで出力したOBJだけがSCでのペイント用(UV付き)に適った物になる。
9.5~ではExportOBJのMergePointオプションをONにしておくとよさげ。
同、PointNormalはON/OFFで影響しないぽい。
形状だけを読み込ませるなら、~9.3.1でも問題の無いOBJを出力出来る。
形状だけを読み込んで、UV値割付をSCに任せるのはお勧めしない('A`)



上(左):何かが胸部貫通してるように見えるのは、ジオメトリ破壊ではなく爪のUVが重なってるせい。
上(右):元のUVのままペイント出来ている。
サブパッチ→フリーズをQuadで行い、QuadのままOBJに吐いている。
左:UV無しOBJを読んで、PaintModeに移行(SCによるUV割付)した場合のUV。
サブパッチ→フリーズをTrigonで行い、OBJを吐いた(93000△)。
Athlon32+でPaintMode遷移に20分以上掛かった。
----
LWでアトラスでUV展開→Sculptrisでペイント→LWで本来のUVにベイク。という流れが思いつくけど、SCの不連続UVを跨ぐペイント品質の検証が必要かもしれない。
UV値による範囲/領域境界に対するドットへの処理結果によってはLWでのベイク時に酷い事になりかねない('д`)
----
sculptris 1.02が出てる。
OBJ周りで変更があったみたいだけど、未検証。
単に形状(OBJ)を読み込むだけの場合と、ペイント向けにUV込みで読み込む場合では要件が変わるけど、後者は前者を内包するので、後者を基準にしてる。
用語的にはLWを基準にして十把一絡げにしてるから、読み取るには読み替えや概念の変換が必要かも('з`)
■形状自体
1)三角/四角の混在可能。 SCが三角化する。
※四角を受け付けるには条件があるかも?
サブパッチ形状→3x3 Quadフリーズ:OK
同形状→2x2 Quadフリーズ:NG
同データ→三角化:OK
という事があった。
※※非平面の度合いが影響してるっぽい。
非平面だけを三角化して、四角と混在の状態にしたら↑2x2 QuadでもOKになった。
レイアウトのサブパッチのフリーズ(規則/結果)に合わせる事を考えると、モデラでのフリーズはTriangleでやらないと駄目なんだけどね( 'з`)
四角でフリーズさせるのは害こそあれ利点なし('ε` )
2)点ポリ、線ポリは受容される。 SCで可視化はされない。
3)多サーフェスは受容される SCが1サーフェスにする。
4)UV(値によって囲われる範囲)の重複は許容される。
但し、SCで1サーフェス化されるので重複箇所へのペイント処理は不定になる。
5)SCにUVを読み込ませる場合は全ポリゴンがUV値を持っている必要がある。
LW風に言えば、全頂点がUVにマップされている必要がある。
6)形状は閉じている必要がある。 目や口に注意。

■OBJ出力。 LWのExport OBJ(CmdClass&MeshClass問わず)。
a)LW上でサーフェスがUVを参照していないとUV値が記録されない。
それによりサーフェスが複数ある場合にUVの有無が混在する事になりかねない。 混在すると(5)に引っ掛かる。
LW上のサーフェスが一つで、UV参照をしていない場合は、UVが最初から存在しない事になるので問題にはならない。
b)~9.3.1迄のExport OBJ(Cmd/Mesh)ではUVに関する出力内容が汚い為、SCをクラッシュさせる。
c)9.5~であっても、OBJ出力オプションのZBrushModeがONの場合は(b)と同じになる為、SCをクラッシュさせる。
d)頂点がマップされていないUVをサーフェスが指定していた場合、UV値はゼロとして出力される。
(5)を防ぐ効果はあるけど、(4)に引っ掛かるので意味が無い。
↓画像の重複時の形状のようにUV値が形状に干渉するので、過度の重複はクラッシュに繋がるかも。
~931では、
v(頂点)
vt(UV)
f(面/UV Idx/pNorm Idx)
vt
f
の様に面毎にvtとfを繰り返す。 SCは許容出来ずに落ちる。
v/vt/f、各種毎に一纏めにして出力されていればSCで読める。
9.5~でZBrushMode:OFFで出力したOBJだけがSCでのペイント用(UV付き)に適った物になる。
9.5~ではExportOBJのMergePointオプションをONにしておくとよさげ。
同、PointNormalはON/OFFで影響しないぽい。
形状だけを読み込ませるなら、~9.3.1でも問題の無いOBJを出力出来る。
形状だけを読み込んで、UV値割付をSCに任せるのはお勧めしない('A`)



上(左):何かが胸部貫通してるように見えるのは、ジオメトリ破壊ではなく爪のUVが重なってるせい。
上(右):元のUVのままペイント出来ている。
サブパッチ→フリーズをQuadで行い、QuadのままOBJに吐いている。
左:UV無しOBJを読んで、PaintModeに移行(SCによるUV割付)した場合のUV。
サブパッチ→フリーズをTrigonで行い、OBJを吐いた(93000△)。
Athlon32+でPaintMode遷移に20分以上掛かった。
----
LWでアトラスでUV展開→Sculptrisでペイント→LWで本来のUVにベイク。という流れが思いつくけど、SCの不連続UVを跨ぐペイント品質の検証が必要かもしれない。
UV値による範囲/領域境界に対するドットへの処理結果によってはLWでのベイク時に酷い事になりかねない('д`)
----
sculptris 1.02が出てる。
OBJ周りで変更があったみたいだけど、未検証。
この記事へのコメント