Quake 3 and curved surfaces

Started by
4 comments, last by 3dcgi 23 years, 1 month ago
What does the Quake 3 engine do that caused it to get a reputation for being good at rendering curved surfaces? I''m sure the reputation is well deserved I''m just curious about the technology behind it. -- Todd http://www.3dcgi.com/
Advertisement
it was just the first game to support them fully


MENTAL
Thanks Mental, but do you know what they do technically?

Do they automatically generate triangles from an equation that describes the curve? A form of scalable geometry.

Another option I thought they might use is smoothing groups to specify curves? In this case the curved surface would already be tessellated, but the smoothing group would cause polygons to share vertex normals along their edges, resulting in smoother shading.

I''m not looking for enough information to duplicate what they do I''m just curious

Thanks.


--
Todd
http://www.3dcgi.com/
Quake 3 uses biquadratic Bezier patches ... so in essence they generate a triangle grid from a parametric formula. The number of subdivision steps is determined by the curvature of the patch and the selected geometry detail (Low/High). They do run-time LOD by removing columns/rows of vertices in the grid.

Hope this helps a bit,

MK42
That''s what I was looking for. Thanks.

--
Todd
http://www.3dcgi.com/
You know, I was playing Q3A on my LAN with 3 computers. and on one of them, the graphics was messed up. - Many of the meshes, especially the arch-ways (obviously using the curved surfaces) were like flashing random colors. But the really neat thing about it was it revealed how they were performing their curved surfaces trick.
Basically, as you moved closer to the wall, the triangles were being modified, i.e extra triangles being added.

This seems the obvious thing to do, they probably have a system of calculating how many triangles to use to approximate a curved arch-way/pillar etc.

Something like:

segments = DETAIL_LEVEL * 1/distance_of_camera_from curved surface + K.

where:
DETAIL_LEVEL - is just a setting that the user sets. i.e if you have a crap computer+gfx card, then this would be a low value. as opposed to someone on a Geforce 2 etc.
1/distance... - as you approach the pilar/archway, more detail (hence more triangles), would need to be put into it. - If you''re a mile a way, then the archway can just be a triangle
K - well all equations need a const

(not saying, that it''s as simple as this, but I''d imagine the no. of triangles used to render the curved surface, would be determined by these factors.)

/Memir
Flash Pool - Pool/Billiards game for Facebook (developed by Memir).

This topic is closed to new replies.

Advertisement