[Bf-committers] Patch for bug 1355

Arne Schmitz bf-committers@blender.org
Sun, 13 Jun 2004 09:04:45 +0200

Content-Type: text/plain;
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Am Sonntag, 13. Juni 2004 03:39 schrieb Jonathan Merritt:
> 1. Select a face of the mesh.
> 2. Construct a line along the normal of the face. =A0Trace the line out on
> one side of the face; if it intersects zero or any even number of faces
> then accept this as the "outside" direction, otherwise take the other
> direction as "outside". =A0(This borrows from the concept of "Gaussian
> surfaces" in physics.)

One of the usual approaches to realign the normals according to a minimal=20
spanning tree. The weights in the tree are chosen according to 1) geometric=
proximity and 2) value of the (signless) dot-product of two neighbouring=20
normals. After building the MST you just reorient the normal of the=20
face/vertex with the smallest Z-axis value outside and traverse the tree=20
while setting the normals accordingly.

I think it's described in an old Hoppe paper:


> 3. For non-manifold meshes, repeat step 2 for all faces (non-manifold
> meshes surely don't have a well-defined inside or outside anyway!?).

Yeah, I think non-manifold is a case where you can do whatever you like,=20
because it just can't work.



[--- PGP key FD05BED7 --- http://www.root42.de/ ---]

Content-Type: application/pgp-signature
Content-Description: signature

Version: GnuPG v1.2.2 (GNU/Linux)