Just to clarify, the way the normals *should* work is sketched in the attached 
image.  Please verify.

When the angle between 2 faces is sharper than the crease angle, there is one 
normal per face, and when the angle is smoother than the crease angle, the 
normal is averaged.

Thanks,
-Ben

-----Original Message-----
From: osg-users-boun...@lists.openscenegraph.org 
[mailto:osg-users-boun...@lists.openscenegraph.org] On Behalf Of Jan Ciger
Sent: Tuesday, March 24, 2009 1:36 PM
To: OpenSceneGraph Users
Subject: Re: [osg-users] VRML Normal Issue

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ben Axelrod wrote:
> Thanks for the info.  Is this standard procedure with mesh files?
> Because I have noticed similar affects with a variety of file
> formats.
>
> I agree that when no normals are specified, the proper behavior for
> the parser is to use one normal per face, and calculate the face
> normals from the vertex points, but the shading I see in badbox.wrl
> does not look like one normal per face, it looks like one normal per
> vertex.  The shading of goodbox.wrl looks like one normal per face to
> me.  Am I mistaken on how these should look?

I can't test it right now, because I do not have the VRML plugin
compiled at the moment. I have loaded the models in WhiteDune editor,
and both look OK to me, with the badbox one showing some artifacts.

I had a look at the code and if you do not specify any normals, the OSG
loader will not really handle it right. It seems that in that case an
average normal out of the adjacent faces is computed and used per-vertex
(i.e. the edges and corners are smoothed ...) This isn't completely
correct, the VRML spec specifies use of crease angle parameter that will
make all angles smaller than this one averaged and ones larger sharp.
However, this is not intended to be a 100% compliant VRML viewer.
Originally, the case without normals was not handled at all.

You have basically two options:

- - generate your VRML including normals
- - fix the VRML plugin code to include handling of the crease angle (in
IndexedFaceSet.cpp, around lines 240 and on in the VRML plugin)


Regards,

Jan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mandriva - http://enigmail.mozdev.org

iD8DBQFJyRn8n11XseNj94gRAhPtAKDd+ov0409iUlfCEoPs0Jgz8z2V/QCfTV6C
trLfTvJTRgm+KjV2GCYphTA=
=dT7/
-----END PGP SIGNATURE-----
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

<<attachment: creasenormals.png>>

_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to