Raven is a ray/path tracer developed in C++20 as part of my CENG 795: Advanced Ray Tracing coursework. It supports a wide range of rendering features, including various intersection methods, realistic materials, advanced lighting, and texture techniques.
Features:
- Intersections
- Ray-Object Intersection
- Triangle Intersection
- Sphere Intersection
- Mesh Intersection
- Ray-Object Intersection
- Acceleration Structures
- Bounding Volume Hierarchy (BVH)
- Transformations
- Transformation
- Instancing (efficient rendering of duplicate geometry)
- Rendering Techniques
- Basic Ray Tracing
- Distribution Ray Tracing
- Depth of Field
- Area Lights
- Glossy Reflections
- Motion Blur
- Path Tracing
- Importance Sampling
- Next Event Estimation
- Russian Roulette
- Materials
- Conductor (Metallic) Materials
- Dielectric (Transparent/Refractive) Materials
- Lighting
- Point Lights
- Area Lights
- Directional Lights
- Spot Lights
- Environmental Lighting
- Object Lights
- Mesh-based
- Sphere-based
- BRDF Models
- Phong
- Modified Phong
- Normalized Modified Phong
- Blinn-Phong
- Modified Blinn-Phong
- Normalized Modified Blinn-Phong
- Torrance-Sparrow
- Texture Mapping Techniques
- Standard Texture Mapping
- Normal Mapping
- Bump Mapping
- Image Output and Post-processing
- Supported File Formats
- ppm
- png
- hdr
- exr
- High Dynamic Range (HDR) & Tone Mapping
- Reinhard Photographic Tone Mapping
- Supported File Formats
- Scene Management
- Scene Description: XML-based scene description format, supporting meshes in XML and PLY file formats.
- Performance and Profiling
- Multithreading (Parallel rendering to utilize multiple CPU cores effectively)
- Integrated Profiler: Automatically generates profiling data (JSON format) for each rendered scene.
- Programs C++
- Category Computer Graphics
- Date Februray , 2025
- Link https://github.com/ramazantokay/Raven-RT