You Like My Tutorials? Click The Banner To Keep 'Em Coming!

  glGameDeveloper() Discussion
  OpenGL Coding
  Quake III Curved surfaces

Post New Topic   Post A Reply
profile | register | faq

Author Topic:   Quake III Curved surfaces
Berserker posted 11-27-99 01:41 PM ET (US)   Click Here to See the Profile for Berserker   Click Here to Email Berserker  
Someone know if John Carmack used the OpenGL Bézier functions or he programmed his own curved surfaces functions?

mafried posted 11-28-99 08:41 PM ET (US)     Click Here to See the Profile for mafried  Click Here to Email mafried     
I believe he used NURB surfaces, which, by the way, are part of GLU. Look in your 'OpenGL Programming Guide' on page 455 (in the Second Edition) for more information (or ask me/someone questions, look around, whatever works). NURBS are really cool, expandable curved surfaces that work (if I remember right) in a similar way to bezier curves, but offer more functionality.

Joe posted 11-29-99 09:54 AM ET (US)     Click Here to See the Profile for Joe  Click Here to Email Joe     
I think he said he used Cubic Bezier patches. This means two end points and one control point. NURBS are pretty slow to be used in a 3d game.

I still have no idea how to calculate Cubic Beziers. However I have done curves using cosine and sine and making semi-circles, since irregular curves aren't as useful. Most curves used in Q3A are semicircles from what I've seen, other than some of the arches in the Tourney map.

madsax posted 11-29-99 06:18 PM ET (US)     Click Here to See the Profile for madsax  Click Here to Email madsax     
There's an interview with Carmack that indicates he uses nonrational quadratic Beziers. You're right, that's 9 control points instead of 16.
I doubt that he used the internal OpenGL evaluators-- there are some faster ways to do tessellation that direct evaluation.
I had an article on Gamasutra recently that talks about different ways to tesselate cubic Beziers. Quadratics are very similar.
Here's Carmack's interview:
And the Bezier article:

mafried posted 11-29-99 10:31 PM ET (US)     Click Here to See the Profile for mafried  Click Here to Email mafried     
woops.. sorry about that one. I could have sworn I heard him say he used nurbs... oh well...

thanks for correcting me!

Berserker posted 11-30-99 03:24 AM ET (US)     Click Here to See the Profile for Berserker  Click Here to Email Berserker     
Wow!!...thank you. I ask this because I'm programming with other programmer a 3D engine. At the moment, the engine renders the Q3:A 1.08 levels with lightmaps, textures and curved surfaces... but with OpenGL Bézier functions... there is a problem that I don´t know how to solve... Who I detect the collisions with curved surfaces??. I heard that John had some problems about this...Do you know some sites where I could find some information??

Thank you!!

Chris posted 12-16-99 06:39 AM ET (US)     Click Here to See the Profile for Chris  Click Here to Email Chris     
As far as i know, they don't make collision detection at all with the curved surfaces, because they didn't manage it.

So i guess they put some invisible cubic objects below the curved surfaces and use them for collision detection only.

Perhaps you have noted that the curved surfaces usually are placed where collisions are not very probable; the only collisions that might happen are bullets being fired at them.


Chris posted 12-16-99 06:44 AM ET (US)     Click Here to See the Profile for Chris  Click Here to Email Chris     
Oops, i think i have to correct myself. I only know the quake3-demotest number 1, and i can't remember curved surfaces who were placed somewhere where a collision would be probable.
But in the newest test, the new level with the open mouth, i guess that's full of c.s. so i was wrong.

Post New Topic   Post A Reply
Hop to:

Contact Us | glGameDeveloper()

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 1999.