The Compute Shaders project was a personal exploration into optimizing rendering techniques, specifically ray and path tracing, using Unity. Building on my knowledge from the Advanced Graphics course, this project allowed me to dive deeper into compute shaders and their potential for GPU acceleration.
To get started, I followed this comprehensive tutorial on implementing ray and path tracing in Unity. After completing the tutorial, I expanded upon the initial framework to include additional techniques and features:
- Beer's Law: Simulated light absorption for realistic rendering of transparent objects.
- Reflections and Refractions: Enhanced light behavior at material boundaries.
- Skybox Integration: Added a skybox for realistic environmental lighting.
- Improved Scene Structure: Organized the Unity project with scriptable objects to allow easy swapping of scenes and rendering techniques.
This project taught me valuable lessons in Unity and rendering techniques, including:
- Compute Shaders: Leveraged the GPU for parallelized ray and path tracing, achieving significant performance improvements compared to CPU-based methods.
- Scriptable Objects: Simplified data management in Unity, making the project more modular and scalable.
- Rendering Optimization: Applied concepts from my Advanced Graphics course to create a more efficient and visually stunning implementation.
Below are some renders showcasing the capabilities of the ray and path tracers:
Demonstrates realistic lighting, reflections, and refraction. Highlights the difference in rendering techniques for the same scene. A different perspective showing complex material interactions.While this project is complete for now, it serves as a solid foundation for further experimentation. I may revisit it in the future to explore additional features, optimizations, and rendering techniques.
If you're interested in learning more about Unity and compute shaders, I recommend:
- The Ray and Path Tracing Tutorial
- The excellent resources available at Catlike Coding
This project is available for educational purposes.



