19 Curves, Surfaces, and Using Evaluators
19.010 How can I use OpenGL evaluators to create
a B-spline surface?
OpenGL evaluators use a Bezier basis. To
render a surface using any other basis, such as B-spline, you
must convert your control points to a Bezier basis. The OpenGL
Programming Guide, Chapter 12,
lists a number of reference books that cover the math behind
these conversions.
19.020 How can I retrieve the geometry values
produced by evaluators?
OpenGL does not provide a straightforward
mechanism for this.
You might download the
Mesa source code distribution, and
modify its evaluator code to return object coordinates rather
than pass them into the OpenGL geometry pipeline.
Evaluators involve a lot of math, so their
performance in immediate mode is sometimes unacceptable. Some
programmers think they need to "capture" the
generated geometry, and play it back to achieve maximum
performance. Indeed, this would be a good solution if it were
possible. Some implementations provide maximum evaluator
performance through the use of display lists.
|