I am Charmie

メモとログ

povrayでのmesh2

povrayのmesh2関数ではまった。

mesh2は三角メッシュを生成する関数。三角メッシュは、ようは小さい三角形の平面の集合。
mesh2{
vertex_verctors{N
,
,
...

}
face_indices{M
,
,
...
}
}
vertex_vectorsでN個の頂点を宣言。face_indicesでM個のパッチを宣言するわけなんだけど、問題は各メッシュの法線方向。平面なので、法線方向に関する曖昧性がある。それを指定するのはinside_vectorで、これを設定すれば、オブジェクトの内側がどこかとかが設定できるとマニュアルに書いてあったが、どうもそんな感じじゃなかった。
traceマクロでnormalを取ってみると、パッチ毎に法線方向がバラバラだった。
どうも、face_indicesでパッチの頂点を指定する時に、頂点番号の並び順に左手系で進行方向を決めるようだ。例えば、以下のように頂点0,1,2がそれぞれ左上、左下、右下にあるとする。この時、頂点番号をと記述すると画面の裏側に突き進む方向を向いたパッチという風になり、と記述すると逆に画面から飛び出てくる方向を向いたパッチになる。

頂点0


頂点1     頂点2

今回はprimitiveなシーンを自作メッシュで・・・という事をやる必要があったため、はまったものの面白い設定に気づけた。