Aegis is an experimental ray tracing engine implemented in CUDA, designed to explore fundamental concepts of GPU-accelerated rendering. The project combines essential ray tracing techniques with the parallel computing power of modern GPUs, serving as a hands-on exploration of Monte Carlo integration, light transport, and scene management. It aims to provide a solid foundation for understanding core principles of ray tracing and CUDA programming, while delivering visually compelling results.
- CUDA-Accelerated Rendering: Leverages the parallel processing capabilities of GPUs to accelerate ray tracing, providing an accessible entry point into high-performance computing.
- Basic Monte Carlo Integration: Implements Monte Carlo methods for light sampling and scattering, laying the groundwork for understanding more advanced rendering techniques.
- Fundamental Light Scattering Models: Includes basic scattering models and importance sampling, enabling exploration of how light interacts with surfaces and volumes.
- Dynamic Scene Capabilities: Supports motion blur and defocus blur to illustrate the effects of camera and object motion on rendering.
- Optimized Scene Traversal: Uses Bounding Volume Hierarchies (BVH) to demonstrate efficient spatial partitioning, reducing computation time for ray-object intersections.
- Texture and Material Basics: Provides support for simple texture mapping and basic material properties, offering a practical way to learn about shading and surface details.
- Extensible Framework: A modular structure that allows for easy experimentation with different rendering techniques and scene configurations, making it ideal for learning and expanding on core concepts.
For more information on the development history and features of previous versions, please refer to the version history here.
-
MacBook Air M2 (2023) vs. Google Cloud (NVIDIA T4):
- Speedup Factor:
$\frac{7 \text{ hours } 32 \text{ minutes}}{46 \text{ minutes } 22 \text{ seconds}} \approx 9.8$ - The NVIDIA T4 offers a speedup of nearly 10x, leveraging its 2560 CUDA cores to significantly outperform the CPU-based implementation.
- Speedup Factor:
-
MacBook Air M2 (2023) vs. Google Cloud (NVIDIA V100):
- Speedup Factor:
$\frac{7 \text{ hours } 32 \text{ minutes}}{15 \text{ minutes } 47 \text{ seconds}} \approx 28.6$ - The V100 achieves a 28.6x speedup, demonstrating its capability to handle intensive computations with its powerful 5120 CUDA cores and high-bandwidth memory.
- Speedup Factor:
-
MacBook Air M2 (2023) vs. Google Cloud (NVIDIA A100):
- Speedup Factor:
$\frac{7 \text{ hours } 32 \text{ minutes}}{5 \text{ minutes } 2 \text{ seconds}} \approx 89.8$ - The A100 provides an impressive 89.8x speedup, showcasing the advantages of its 6912 CUDA cores and advanced architecture for complex rendering tasks.
- Speedup Factor:
Explore some of the additional renders created using Aegis:
This project was heavily influenced by the Ray Tracing series by Peter Shirley, which provided the foundational knowledge and framework for building Aegis. The books in this series—Ray Tracing in One Weekend, Ray Tracing: The Next Week, and Ray Tracing: The Rest of Your Life—are excellent resources for anyone interested in learning about the fundamentals of ray tracing.
- NVIDIA Developer Blog: Accelerated Ray Tracing in One Weekend in CUDA
- PBRT (Physically Based Rendering) by Matt Pharr, Wenzel Jakob, and Greg Humphreys: An in-depth guide to advanced rendering techniques. Book Website
- "An Efficient and Physically Realistic Lighting Model for Computer Graphics" by Turner Whitted: The original paper introducing recursive ray tracing. Paper Link
- "A Survey of Monte Carlo Methods for Light Transport Simulation in Computer Graphics" by Kelemen et al.: Comprehensive overview of Monte Carlo methods used in rendering. Paper Link
- "Ray Tracing Gems" by Eric Haines and Tomas Akenine-Möller: A collection of state-of-the-art ray tracing techniques. Book Website
- CUDA Programming Guide by NVIDIA: Essential reading for understanding CUDA's parallel programming model. Documentation
These resources have been invaluable in guiding the development of Aegis, and we highly recommend them to anyone looking to deepen their understanding of ray tracing and GPU programming.