# raytracing/raytracing.github.io

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/raytracing-raytracing-github-io).**

10,174 stars · 980 forks · HTML · cc0-1.0

## Links

- GitHub: https://github.com/RayTracing/raytracing.github.io
- Homepage: https://raytracing.github.io/
- awesome-repositories: https://awesome-repositories.com/repository/raytracing-raytracing-github-io.md

## Topics

`book` `graphics-rendering` `markdeep` `ray-tracing` `raytracing`

## Description

This project is a ray tracing reference implementation and educational resource for building a Monte Carlo path tracer from scratch. It serves as a guide for physically based rendering, demonstrating how to simulate the behavior of light and materials to create realistic images.

The implementation includes a spatial hierarchy accelerator to optimize intersection tests and a system for generating images in the portable pixmap format. It provides a community reference library of implementations across various programming languages and distributes complete source code archives for study.

The project covers core computer graphics programming concepts, including indirect lighting simulation, motion blur via temporal sample averaging, and the rendering of complex geometry such as textures and volumes. It utilizes Monte Carlo integration and brute-force sampling to resolve visual noise and approximate light transport.

## Tags

### Graphics & Multimedia

- [Path Tracing Algorithms](https://awesome-repositories.com/f/graphics-multimedia/path-tracing-algorithms.md) — Simulates light behavior by recursively tracing paths from the camera to light sources.
- [Path Tracing Implementations](https://awesome-repositories.com/f/graphics-multimedia/path-tracing-implementations.md) — Provides a reference implementation of a Monte Carlo path tracer to simulate physically based light transport. ([source](https://raytracing.github.io/books/RayTracingTheNextWeek.html))
- [Physically Based Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/materials-shading/physically-based-rendering-materials/physically-based-rendering.md) — Simulates the behavior of light and materials to create realistic images using path tracing.
- [Indirect Lighting Simulation](https://awesome-repositories.com/f/graphics-multimedia/indirect-lighting-simulation.md) — Simulates indirect lighting using a general-purpose path tracing capability to produce photorealistic images. ([source](https://raytracing.github.io/books/RayTracingInOneWeekend.html))
- [Monte Carlo Path Tracers](https://awesome-repositories.com/f/graphics-multimedia/monte-carlo-path-tracers.md) — Implements a rendering engine that simulates the physical behavior of light using randomized sampling.
- [Monte Carlo Rendering](https://awesome-repositories.com/f/graphics-multimedia/monte-carlo-rendering.md) — Uses randomized sampling algorithms to approximate complex visual effects and solve lighting equations.
- [Brute-Force Sampling](https://awesome-repositories.com/f/graphics-multimedia/brute-force-sampling.md) — Uses high-volume ray casting per pixel to resolve image noise and detail.
- [Complex Geometry Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/3d-graphics-pipelines/geometry-instancing/complex-geometry-rendering.md) — Renders detailed environments utilizing textures, volumetric shapes, and object instancing. ([source](https://raytracing.github.io/books/RayTracingTheNextWeek.html))
- [Motion Blur Simulations](https://awesome-repositories.com/f/graphics-multimedia/motion-blur-simulations.md) — Implements motion blur by assigning timestamps to rays and averaging samples across a defined time interval. ([source](https://raytracing.github.io/books/RayTracingTheNextWeek.html))
- [Spatial Hierarchy Accelerators](https://awesome-repositories.com/f/graphics-multimedia/spatial-hierarchy-accelerators.md) — Implements a spatial hierarchy accelerator to reduce intersection test calculations for complex scenes.
- [Temporal Sample Averaging](https://awesome-repositories.com/f/graphics-multimedia/temporal-sample-averaging.md) — Calculates motion blur by sampling ray timestamps across a defined time interval.

### Education & Learning Resources

- [Reference Implementations](https://awesome-repositories.com/f/education-learning-resources/educational-resources/reference-and-media/books-docs-reference/code-examples/reference-implementations.md) — Provides functional codebases that serve as standardized models for implementing a path tracer.
- [Ray Tracing Education](https://awesome-repositories.com/f/education-learning-resources/educational-resources/systems-applied-computing/machine-learning-education/llm-engineering-guides/transformer-model-tutorials/educational-implementations/ray-tracing-education.md) — Serves as an educational resource for building a Monte Carlo path tracer from scratch.
- [Computer Graphics](https://awesome-repositories.com/f/education-learning-resources/educational-resources/systems-applied-computing/scientific-and-specialized-computing/computer-graphics.md) — Provides educational content focused on rendering, geometry, and visual computing techniques.

### Scientific & Mathematical Computing

- [Monte Carlo Integration](https://awesome-repositories.com/f/scientific-mathematical-computing/monte-carlo-integration.md) — Applies randomized sampling to approximate the integral of light transport for realistic indirect lighting.
- [Monte Carlo Rendering Approximation](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/algorithms-and-complexity/approximate-algorithms/monte-carlo-rendering-approximation.md) — Uses randomized algorithms to approximate complex visual effects and solve rendering problems. ([source](https://raytracing.github.io/books/RayTracingTheRestOfYourLife.html))

### Software Engineering & Architecture

- [Bounding Volume Hierarchies](https://awesome-repositories.com/f/software-engineering-architecture/trees/bounding-volume-hierarchies.md) — Implements bounding volume hierarchies to optimize ray-object intersection tests in 3D scenes.

### User Interface & Experience

- [Spatial Intersection Optimization](https://awesome-repositories.com/f/user-interface-experience/performance-optimizers/spatial-intersection-optimization.md) — Optimizes rendering speed by reducing calculations for detecting overlapping objects using spatial hierarchies. ([source](https://raytracing.github.io/books/RayTracingTheNextWeek.html))
