-
Notifications
You must be signed in to change notification settings - Fork 889
Further Readings
beef edited this page Aug 13, 2024
·
4 revisions
- Fundamentals of Computer Graphics, 4th Ed, Marschner and Shirley
- The Graphics Codex, Mcguire
- Real-Time Rendering, 4th Ed, Akenine-Möller et al.
- Computer Graphics: Principles and Practice_, 3rd Ed, Hughes et al.
- stb_image
- High Dynamic Range Imaging: Acquisition, Display, and Image-Based Lighting_, 2nd Ed, Reingard et al.
- Create separate classes for points, displacements, colors, etc. Example
- Using the compiler to do dimensional analysis: velocity, length, time are different types
- Found to be too cubersome in the 1990s
- Researchers at Dartmouth making a serious effort
- Add an environment map to your background function
- A terrific history of environment mapping
- The easiest mapping is to use a single image for the entire sphere of directions
- Example probes for use
- Adding triangles using Barycentric methods
- Ellipses
- Instancing
- Composite objects using CSG methods
- Implementation in the book is called "Box filtering" ("Good enough" for most situations)
- Use a Gaussian-like filter instead
- Can either:
- Uniformly sample the screen and weight the samples
- Non-uniformly sample
- "Ideal" diffuse is also called "Lambertian" and are used 99% of the time in graphics
- Real diffuse objects are not exactly Lambertian
- e.g. become specular at grazing angle
- Have the color of the metal go to white at grazing angle
- Schlick Approximation works for this
- Can use the exact Fresnel equations. But normal incident is usually adequate.
- Filtering of light within a dielectric
- Can be modeled by exponential decay, covered well in the Beer's Law section
- Replace the camera parameter setting in the book with a camera matrix.
- Make it physically accurate
- Use spectra instead of RGB
- Confirm your results with a color checker: X-Rite ColorChecker Classic (MSCCC)
- Generate animations
- Lots of movies use a ray traced system (most, actually)
- Disney
- Pixar
- Solid Angle
- Make it fast!
- Use the Surface Area Heuristic (SAH)
- When choosing among potential partitions, the partition that minimizes the surface area of the sum of the volumes of the sub-trees is almost always good (and naively best)
- SAH-Build that cuts on the longest axis
- More efficient direct lighting can be implemented by
- Sending shadow rays
- Importance sample by sending more rays toward lights
- The more general implementation is transformation matrices
- Collapse all composite transforms into one matrix
- Surface normal scaling is a well-known gotcha