Here are some links related to ray tracing, and more specifically, path tracing.
Some ray tracing related projects or blogs:
- Code & Visuals, by Yining Karl Li, the author of the Takua renderer.
- Iman Sadeghi’s Bi Directional Path Tracing Project Homepage, gives a good introduction to the topic.
- Mitsuba Development Blog. From the description:
Mitsuba is a research-oriented rendering system in the style of PBRT, from which it derives much inspiration. It is written in portable C++, implements unbiased as well as biased techniques, and contains heavy optimizations targeted towards current CPU architectures.
- Nori, an educational ray tracer written in C++.
- Peter Kutz’ Bidirectional Path Tracing and Metropolis Light Transport blog doesn’t seem maintained anymore but still contains interesting articles.
- Ray Tracey’s blog, by Sam Lapere, the author of the Brigade renderer.
- Real time ray tracing, and real time ray tracing part 2, two articles by Matt Swoboda on the making of the demo 5 Faces.
- Smallpt, which I previously mentioned as I experimented with a GLSL version
- Syntopia, where fractals, L-systems and ray tracing
Some major publications:
- The rendering equation, SIGGRAPH 1986, James T. Kajiya. From the paper:
We present an integral equation which generalizes a variety of known rendering algorithms.
We mention that the idea behind the rendering equation is hardly new.
However, the form in which we present this equation is well suited for computer graphics, and we believe that this form has not appeared before.
- Bi-directional path tracing, Compugraphics 1993, Eric P. Lafortune and Yves D. Willems. From the paper:
The basic idea is that particles are shot at the same time from a selected light source and from the viewing point, in much the same way. All hit points on respective particle paths are then connected using shadow rays and the appropriate contributions are added to the flux of pixel in question.
- Optimally Combining Sampling Techniques for Monte Carlo Rendering, SIGGRAPH 1995, Eric Veach and Leonidas J. Guibas. From the abstract:
We present a powerful alternative for constructing robust Monte Carlo estimators, by combining samples from several distributions in a way that is provably good.
- Metropolis Light Transport, SIGGRAPH 1997, Eric Veach and Leonidas J. Guibas. From the abstract:
To render an image, we generate a sequence of light transport paths by randomly mutating a single current path (e.g. adding a new vertex to the path).
- Robust Monte Carlo methods for light transport simulation, 1998, Erich Veach PhD thesis (432 pages pdf): it presents bidirectional path tracing, and introduces Metropolis Light Transport and Multiple Importance Sampling. From the abstract:
Our statistical contributions include a new technique called multiple importance sampling, which can greatly increase the robustness of Monte Carlo integration. It uses more than one sampling technique to evaluate an integral, and then combines these samples in a way that is provably close to optimal. This leads to estimators that have low variance for a broad class of integrands. We also describe a new variance reduction technique called efficiency-optimized Russian roulette.
The second algorithm we describe is Metropolis light transport, inspired by the Metropolis sampling method from computational physics. Paths are generated by following a random walk through path space, such that the probability density of visiting each path is proportional to the contribution it makes to the ideal image.
On a slightly different topic, fxguide had a great series of articles on the state of rendering in the film industry, which I previously mentioned.
Nathan Reed recently published a blog article plotting his numerical findings of Z-buffer precision under different uses. On the way he references a couple of previous articles, that also reference other resources; I think it’s a good opportunity to list some of them. They all tell a part of the story and I recommend reading all of them to get the complete picture.
- A couple of notes about Z, 2009, by Emil Persson, on why Z-buffer is non linear and how to counter the loss of precision.
- Attack of the depth buffer, 2010, by Matt Pettineo, on visualizing depth buffer error when using different buffer formats.
- Maximizing Depth Buffer Range and Precision, 2012, by Brano Kemen, with a significant part on how OpenGL and DirectX are differently affected by the precision issue (spoiler: OpenGL’s coordinate convention hurts pretty badly in this case; fortunately as Nathan Reed’s article points, an extension now fixes this).
- Depth Precision Visualized, 2015, by Nathan Reed, on visualizing depth buffer precision as a function of distance, when using different buffer formats and Z representations.
Here are some of the best articles I have read on the topic. They surely will help you understand what people expect from you and what you should expect from yourself as you become a lead:
The Game Developers Conference took place last week in San Francisco. As I am starting to see more speakers publish their slides, I am creating this post to keep track of some them (this list is not meant to be exhaustive).
- Advanced VR Rendering, by Alex Vlachos (Valve).
- Code Clinic 2015: How to Write Code the Compiler Can Actually Optimize, by Mike Acton (Insomniac Games).
- Great Management of Technical Leads, by Mike Acton (Insomniac Games).
- Physics for Game Programmers : Numerical Methods, by Erin Catto (Blizzard Entertainment).
- Rendering the World of Far Cry 4, by Steve McAulley (Ubisoft Montréal).
- VR Direct: How NVIDIA Technology is Improving the VR Experience, by Nathan Reed (NVidia).
Here is a list of articles published by fxguide, giving fascinating insights into the tools used by the film industry in terms of rendering.
- Ben Snow: the evolution of ILM’s lighting tools (January 2011)
A presentation of the evolution of the technology and tools used at Industrial Light and Magic, over the course of the years and movies, from the mid-90s to nowadays.
- Monsters University: rendering physically based monsters (June 2013)
- The Art of Rendering (April 2012)
A description of the different techniques used in high end rendering and the major engines.
- The State of Rendering (July 2013): part 1, part 2
A lengthy overview of the state of the art in high end rendering, comparing the different tools and rendering solutions available, their approach and design choices, strengths and weaknesses as well as the consequences in terms of quality, scalability and render time.
(Brace yourselves for the massive tag list hereafter.)
I’ll start tweeting about graphics research papers which I think are important to know about for various reasons (in no particular order).
— Tomas Akenine-Möller (@inversepixel) September 14, 2013
This is an announcement that got all my attention. Since Twitter is a mess to find anything older than a day, here is the list so far:
- A Characterization of Ten Hidden-Surface Algorithms, Sutherland et al., ACM Computing Surveys, 1974
- Survey of Texture Mapping, Paul Heckbert, IEEE Computer Graphics and Applications, 1986
- Rendering Complex Scenes with Memory-Coherent Ray Tracing, Matt Pharr et al., proceedings of SIGGRAPH, 1997
- An Efficient Representation for Irradiance Environment Maps, Ramamoorthi & Hanrahan, proceedings of SIGGRAPH, 2001
- Decoupled Sampling for Graphics Pipelines, Ragan-Kelley et al. ACM Transactions on Graphics, 2011
- The Aliasing Problem in Computer-Generated Shaded Images, Franklin C. Crow, Communications of the ACM, 1977
- Ray Tracing Complex Scenes, Kay & Kajiya, proceedings of SIGGRAPH, 1986
- Hierarchical Z-buffer Visibility, Greene et al., proceedings of SIGGRAPH, 1993
- Geometry Images, Gu et al., ACM Transactions on Graphics, 2002
- A Hidden-Surface Algorithm with Anti-Aliasing, Edwin Catmull, proceedings of SIGGRAPH, 1978
- Modeling the Interaction of Light Between Diffuse Surfaces, Goral et al., proceedings of SIGGRAPH, 1984
“The first radiosity paper, with the real physical Cornell box (which I’ve actually have seen in real life!)”
- Pyramidal Parametrics, Lance Williams, proceedings of SIGGRAPH, 1983
- Rendering synthetic objects into real scenes: bridging traditional and image-based graphics with global illumination and high dynamic range photography, Paul Debevec, proceedings of SIGGRAPH 2008
“Influence on gfx proportional to title length!”
- A parallel algorithm for polygon rasterization, Juan Pineda, proceedings of SIGGRAPH, 1988
- Rendering from compressed textures, Beers et al., proceedings of SIGGRAPH 1996
“This one (out of 3) of the 1st texture compression papers ever! Uses VQ so probably not something you want today, but major eye opener!”
- A general version of Crow’s shadow volumes, P. Bergeron, IEEE Computer Graphics and Applications, 1986
“Generalized SV. Nice trick”
- Reality engine graphics, Kurt Akeley, proceedings of SIGGRAPH 1993
“Paper describes MSAA, guard bands, etc etc”
- The design and analysis of a cache architecture for texture mapping, Hakura and Gupta, proceedings of ISCA 1997
“Classic texture $ paper!”
- Deep shadow maps, Lokovic and Veach, proceedings of SIGGRAPH 2000
“Lots of inspiration here!”
- The Reyes image rendering architecture, Cook et al., proceedings of SIGGRAPH 1987
“Sooo good & mega-influential!”
A practical model for subsurface light transport, Jensen et al., proceedings of SIGGRAPH 2001
- Casting curved shadows on curved surfaces, Lance Williams, proceedings of SIGGRAPH 1978
“*the* shadow map paper!”
- On the design of display processors, Myer and Sutherland, Communications of the ACM 1968
“Wheel of reincarnation”
- Ray tracing Jell-O brand gelatin, Paul S. Heckbert, Communications of the ACM 1988
- Talisman: Commodity realtime 3D graphics for the PC, Torborg and Kajiya, Proceedings of SIGGRAPH 1996
- A Frequency Analysis of Light Transport, Durand et al., Proceedings of SIGGRAPH 2005
- An Ambient Light Illumination Mode (behind a paywall), S. Zhukov, A. Iones, G. Kronin, Eurographics 1998
“First paper on ambient occlusion, AFAIK. Not that old…”