Quake Engine
description
Transcript of Quake Engine
Quake Engine
THE QUAKE ENGINE IS OLD (relatively)
• Made in 1996 to power the game of the same name.
• id’s follow up to the immensely popular “DOOM”
• Made the transition from DOOM’s psuedo-3D (2.5D?) to levels and models actually rendered in 3D with polygons
Graphics in the 90’s
• Developers were faced with severe hardware limitations when tasked with making a 3D game that would run well on the average 90’s Home computer.
• Solution: Pre-processing, getting rid of any and all superfluous polygons, and other loopholes.
Binary Space Partitioning Tree• The world is divided
into convex subspaces.• If a node is not inside
the viewing frustum, then neither are it’s descendants.
• The problem is obscured polygons inside the frustum.
• Painter’s Algorithm: BAD FOR GAMES.
Potentially Visible Set
• Rather than have an algorithm determine what is visible during valuable rendering time, the developers decided to just attach to each leaf in the BSP tree, a list of every other leaf visible from that one.
• Naturally, this method does not work for moving objects.
Moving Objects
• Moving objects in a BSP tree are a pain to keep track of and there are extra polygons produced when the model is between subspaces.
• First, the non-moving world is produced with its BSP tree and its Z values are stored in a Z-Buffer. Then the moving objects are drawn using Z-Buffering to determine which are visible
Getting Rid of More Things• Distant objects are
indistinguishable blobs anyway. Why waste rendering time?
• “Subdivision Rasterization”
• The difference is not noticeable until close distances so most objects use this method
Lighting
• Smooth shading is bad for large polygons.
• During pre-processing, lightmaps are made for polygons by casting light from close sources.
• During runtime, textures are applied to polygons and are lit according to the pre-made maps.
Lighting Models
• Smooth Shading is fine for moving models.
• The intensity of ambient light is determined by the lightmap on the floor.
• Constant light vector
Sources
• “Ramblings in Realtime” by Michael Abrash.
• Images Obtained from Wikipedia, a Google image search, and the aforementioned article.