Portable C-implementation of Surface Splines
The purpose of this project is to create an algorithm that takes bezier
patches as it's input and creates a VRML file thereof. This algorithm or
set of functions will then be integrated into an already existent program
that converts input meshes to bezier patches, thus enabling a largely platform
independent visualization of three dimensional objects.
Noteable Items:
-
Increasing the creaseAngle field in the IndexedFaceSet helps "smooth" the
objects. The purpose of creaseAngle is as according to the VRML97
spec it that " the browser shall automatically generate normals, using
creaseAngle to determine if and how normals are smoothed across shared
vertices.".
The desired creaseAngle value largely depends on the type of object
which will be displayed.
1) For more cubic objects: [0, .2]
2) For objects such as nefertiti and venus: [.4, .6]
Any values higher then ~.7 result is severe distortion of the objects
original shape.
IMPORTANT (I bet your glad I didn't make that red and blinking)
-
I have now updated the coloration scheme. The pictures under the links
below reflect the old scheme where I alternately colored each face. The
new scheme alternates the coloration between patches, reducing the speckled
look. I will make the two coloration schemes a runtime option thus enabling
the user to select between the two, which are both of equal value depending
on what aspect of the construction of the object one is looking into.
Some examples:
Lattice
Nefertiti
Pacho2
Propeller
Teapot
Twisted Cube
Two Torus
Venus
Program Source Code
Look for something to show up here really soon.