
Q3A Maps And Curved Surfaces
Submitted by 
I implemented a small .bsp viewer in my engine and wondered about the squished look of pipes / cylindrical objekts in the level.
Normaly Q3A uses C1 bezier curves (3 controlpoints per line / 9 per patch)
The bezier function calculate a weight for each of the 3 control points from a value
alpha [0..1]:
weight1= (1alpha)ÂÂ²
weight2=2*(1alpha)(alpha)
weight3= alphaÂÂ² 
But you can use a trigonometrical interpolation here, too.
The weights would now be the following:
weight1= 1cos(alpha*PI / 2);
weight3= 1 sin(alpha*PI / 2);
weight2= 1weight1weight3; 
Now you will see really curved surfaces :).. and real cylinders
w.b.r.
M.Knuth

The zip file viewer built into the Developer Toolbox made use
of the zlib library, as well as the zlibdll source additions.
