3draycastingquake

Difference between Doom and Quake 3D rendering


I have been studying (old) 3D rendering techniques for the past weeks and think that I now have a fair understanding of the way 3D rendering in Doom works. It uses raycasting to render the 3D scene, uses sprites for objects and thus is not "true" 3D. It also does not allow for real look up/down, only through Y-shearing.

Quake is ID's first "true" 3D engine, has objects that can be viewed from different angles and allows looking up and down.

Now I hear this "true" 3D a lot when studying these techniques, but I can't get a clear explanation of what exactly this true 3D means. How is Quake rendering different from Doom rendering?

Does the Quake world use 3D vertices and are they all projected instead of raycasting for intersections?

I would love to hear a clear explanation of the differences!

P.S. I know the source code for Quake is available, but id software's FTP has been down for weeks and I can't find it anywhere else. If anyone knows where to find it elsewhere, let me know.


Solution

  • I don't think there's a single universal definition. Perhaps the truest 3d possible is one that is indistinguishable from what you see in real life, meaning photographically-realistic quality of rendering of objects, lighting, shades, fully taking into account changes as they happen in real time, creating the sense of depth and also changing with the viewer's position, their use of left, right or both eyes and changing focus. Currently we don't have such a mighty technology in our computers and TVs. Real-life experience so far beats everything available on the market for the general consumer.

    Compared to Doom, Quake had advanced lighting (via light maps), shading, better texture mapping (via MIP maps, reducing the aliasing artifacts observable when looking at distant objects) and 3d objects instead of sprites. Its game space wasn't inherently flat as Doom and rendering allowed looking at things at different angles as you say.

    More details can be found through here and here.

    If you're interested in how all these cool Quake things can be done, read Michael Abrash's books, e.g. Ramblings in Realtime and Graphics Programming Black Book.