15 Years Later: A Historic Look Back at "Quake 3: Ray Traced"
Daniel Pohl, Selvakumar Panneer, Deepak Vembar, Carl Marshall
DOI: http://dx.doi.org/10.15439/2020F3
Citation: Proceedings of the 2020 Federated Conference on Computer Science and Information Systems, M. Ganzha, L. Maciaszek, M. Paprzycki (eds). ACSIS, Vol. 21, pages 401–412 (2020)
Abstract. Real-time ray tracing has been a goal and a challenge in the graphics field for many decades. With recent advances in the hardware and software domains, this is becoming a reality today. In this work, we describe how we got to this point by taking a look back at one of the first fully ray traced games:``Quake 3: Ray Traced''. We provide insight into the development steps of the project with unreleased internal details and images. From a historical perspective, we look at the challenges pioneering in this area in the year 2004 and highlight the learnings in implementing the system, many of which are relevant today. We start by going from a blank screen to the full ray traced gaming experience with dynamic animations, lighting, rendered special effects and a simplistic implementation of the gameplay with basic AI enemies. We describe the challenges encountered with aliasing and the methods used to alleviate it. Lastly, we describe for the first time the unofficial continuation of the project, code named``Quake 3: Team Arena Ray Traced'', and provide an overview of the changes over the past 15 years that made it possible to generate fully ray-traced interactive gaming experiences with mass market hardware and an open software stack.
References
- C. Wyman and A. Marrs, “Introduction to DirectX Raytracing”, in Ray Tracing Gems, Springer, 2019, pp. 21–47.
- G. R. Hofmann, “Who invented ray tracing?”, The Visual Computer, vol. 6, no. 3, pp. 120–124, 1990.
- A. Appel, “Some techniques for shading machine renderings of solids”, in Proceedings of the April 30–May 2, 1968, spring joint computer conference, ACM, 1968, pp. 37–45.
- T. Whitted, “An improved illumination model for shaded display”, in ACM SIGGRAPH Computer Graphics, ACM, vol. 13, 1979, p. 14.
- R. L. Cook, T. Porter, and L. Carpenter, “Distributed ray tracing”, in ACM SIGGRAPH computer graphics, ACM, vol. 18, 1984, pp. 137–145.
- A. S. Glassner, “Spacetime ray tracing for animation”, IEEE Computer Graphics and Applications, vol. 8, no. 2, pp. 60–70, 1988.
- M. J. Muuss and M. Lorenzo, “High-resolution interactive multispectral missile sensor simulation for ATR and DIS”, in Proceedings of BRL-CAD Symposium’95, vol. 2, 1995.
- S. Parker, P. Shirley, Y. Livnat, C. Hansen, and P.-P. Sloan, “Interactive ray tracing for isosurface rendering”, in Proceedings Visualization’98 (Cat. No. 98CB36276), IEEE, 1998, pp. 233–238.
- I. Wald, P. Slusallek, C. Benthin, and M. Wagner, “Interactive rendering with coherent ray tracing”, in Computer graphics forum, Wiley Online Library, vol. 20, 2001, pp. 153–165.
- I. Wald and C. Benthin, “OpenRT-A flexible and scalable rendering engine for interactive 3D graphics”, 2002.
- A. Dietrich, I. Wald, C. Benthin, and P. Slusallek, “The OpenRT application programming interface–towards a common API for interactive ray tracing”, in Proceedings of the 2003 OpenSG Symposium, Citeseer, 2003, pp. 23–31.
- J. Schmittler, D. Pohl, T. Dahmen, C. Vogelgesang, and P. Slusallek, “Realtime ray tracing for current and future games”, in ACM SIGGRAPH 2005 Courses, 2005, p. 23.
- D. Pohl, “Applying Ray Tracing to the Quake 3 Computer Game”, University of Erlangen, 2004.
- M. Woo, J. Neider, T. Davis, and D. Shreiner, OpenGL programming guide: the official guide to learning OpenGL, version 1.2. Addison-Wesley Longman Publishing Co., Inc., 1999.
- H. Fuchs, Z. M. Kedem, and B. F. Naylor, “On visible surface generation by a priori tree structures”, in ACM Siggraph Computer Graphics, vol. 14, 1980, pp. 124–133.
- D. P. Luebke and C. Georges, “Portals and mirrors: Simple, fast evaluation of potentially visible sets.”, SI3D, vol. 95, p. 105, 1995.
- C. Benthin, I. Wald, and P. Slusallek, “Interactive ray tracing of free-form surfaces”, in Proceedings of the 3rd international conference on Computer graphics, virtual reality, visualisation and interaction in Africa, ACM, 2004, pp. 99–106.
- M. Abrash, “Quake’s lighting model: Surface caching”, Graphic Programming Black Book, 2000.
- J. Carmack, John Carmack on shadow volumes, http://fabiensanglard.net/doom3_documentation/CarmackOnShadowVolumes.txt, 2000.
- H. Murakami, 1Q84. Random House, 2012.
- C. Everitt, A. Rege, and C. Cebenoyan, “Hardware shadow mapping”, White paper, nVIDIA, vol. 2, 2001.
- R. Fernando, S. Fernandez, K. Bala, and D. P. Greenberg, “Adaptive shadow maps”, in Proceedings of the 28th annual conference on Computer graphics and interactive techniques, ACM, 2001, pp. 387–390.
- M. Stamminger and G. Drettakis, “Perspective shadow maps”, in ACM transactions on graphics (TOG), vol. 21, 2002, pp. 557–562.
- C. Wächter and N. Binder, “A fast and robust method for avoiding self-intersection”, in Ray Tracing Gems, Springer, 2019, pp. 77–85.
- P. Jaquays and B. Hook, “Quake 3: Arena shader manual, revision 10”, in Game Developer’s Conference Hardcore Technical Seminar Notes, 1999.
- J. Günther, H. Friedrich, H.-P. Seidel, and P. Slusallek, “Interactive ray tracing of skinned animations”, The Visual Computer, vol. 22, no. 9-11, pp. 785–792, 2006.
- C. Lauterbach, M. Garland, S. Sengupta, D. Luebke, and D. Manocha, “Fast BVH construction on GPUs”, in Computer Graphics Forum, Wiley Online Library, vol. 28, 2009, pp. 375–384.
- D. Kopta, T. Ize, J. Spjut, E. Brunvand, A. Davis, and A. Kensler, “Fast, effective BVH updates for animated scenes”, in Proceedings of the ACM SIGGRAPH Sym- posium on Interactive 3D Graphics and Games, ACM, 2012, pp. 197–204.
- J. Van Waveren, “The Quake III Arena Bot”, University of Technology Delft, 2001.
- P. S. Heckbert et al., “Texture mapping polygons in perspective”, Citeseer, Tech. Rep., 1983.
- H. Igehy, “Tracing ray differentials”, in Proceedings of the 26th annual conference on Computer graphics and interactive techniques, ACM Press/Addison-Wesley Publishing Co., 1999, pp. 179–186.
- F. C. Crow, “A comparison of antialiasing techniques”, IEEE Computer Graphics and Applications, no. 1, pp. 40–48, 1981.
- J. Schmittler, S. Woop, D. Wagner, W. J. Paul, and P. Slusallek, “Realtime ray tracing of dynamic scenes on an FPGA chip”, in Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, 2004, pp. 95–106.
- B. Freisleben, D. Hartmann, and T. Kielmann, “Parallel raytracing: A case study on partitioning and scheduling on workstation clusters”, in Proceedings of the thirtieth hawaii international conference on system sciences, IEEE, vol. 1, 1997, pp. 596–605.
- Quake 4: Ray Traced, http://www.q4rt.de.
- Quake Wars: Ray Traced, http://www.qwrt.de.
- Wolfenstein: Ray Traced, http://www.wolfrt.de.
- J. Bikker, “Real-time ray tracing through the eyes of a game developer”, in 2007 IEEE Symposium on Interactive Ray Tracing, IEEE, 2007, pp. 1–10.
- M. McGuire and M. Mara, “Efficient GPU screen-space ray tracing”, Journal of Computer Graphics Techniques (JCGT), vol. 3, no. 4, pp. 73–85, 2014.
- Intel embree, http://www.embree.org.
- Nvidia OptiX, http://developer.nvidia.com/optix.
- DirectX Raytracing samples, http://github.com/microsoft/ DirectX - Graphics - Samples / tree / master / Samples / Desktop/D3D12Raytracing.
- Quake 2 Vulkan Path Tracer, http://brechpunkt.de/q2vkpt.
- C. R. A. Chaitanya, A. S. Kaplanyan, C. Schied, M. Salvi, A. Lefohn, D. Nowrouzezahrai, and T. Aila, “Interactive reconstruction of monte carlo image sequences using a recurrent denoising autoencoder”, ACM Transactions on Graphics (TOG), vol. 36, no. 4, p. 98, 2017.
- Intel Open Image Denoise, http://openimagedenoise.github.io.