Posts

Illuminating Raven: Adding HDR and Advanced Lighting to Raven

Image
Hi everyone and welcome to the fifth blog of my ray tracing journey. In this assignment, I have implemented new types of lights in Raven; directional, spot and environment light. In addition to that, Raven now supports High Dynamic Range (HDR) rendering and tone mapping. Dragon New with Spot Scene rendered in 287ms Implementation: HDR Rendering and Tone Mapping We will no longer save our outputs as PPM or PNG files that clipped to 8-bit [0-255] range. Instead, we can save the rendered images as HDR format using the .exr format. Additionally, Raven will have the capability to tone map these images and save them as PNG images. For reading and writing HDR images, I used tinyexr library. For tone mapping, I implemented Reinhard’s Photographic Tonemapping Algorithm. Cube Point HDR Scene rendered in 39ms. Directional Light Directional lights are defined by two key parameters, radiance and direction , and are treated as if they originate at an infinite distance, making all rays parallel. This...

Elevating Raven: Texture Mapping

Image
Hi everyone, welcome to the fourth blog of my ray tracing journey. In this assignment, I have implemented texture mapping features in Raven. These enhancements include support for diffuse, normal, and bump mapping using image-based textures. In addition to handling image textures, Raven can generate procedural textures, such as Perlin noise and checkerboard pattern. Dragon Scene rendered in 1.2 sec Implementation I started to implement a Texture base class, then derived three classes, ImageTexture, PerlinTexture, and CheckboardTexture , from it. After that, I updated my parser to handle the newly introduced parameters, Textures, TextureMap; Interpolation, Decal modes etc.. Replace All: Ignore shading and simply map the texture color directly onto the object’s surface. Replace kd: Use the texture value as kd value. Replace ks: Use texture value as ks value. (Unfortunately, I couldn't manage my time to implement it. Although it is not hard to implement, I was unabl...

Enhancing Raven: Multisampling and Distribution Ray Tracing

Image
Introduction Hi everyone, welcome to the third blog of my ray tracing journey. In this assignment, I have implemented several nice features in Raven, including multisampling, depth of field, area light, glossy reflection and motion blur . These new features enhance the realism of the rendered scenes, further expanding Raven’s power. 🐦 Deadmau5 Scene with 1 Area Light and 900 samples, rendered in 3min 55sec Before you start reading my blogpost, I would like to introduce one of my favorite musicians “ Deadmau5 ” 😊. I have rendered his icon in Raven. I want to share one of his songs that you can listen to while reading the blogpost. “Jaded” was released 17 years ago, and he recently remastered it, naming the new version as “Re_jaded”. I really love this version; it brings back memories of my childhood.  Here’s link  please listen to it. (Later, I might create this music video in Raven. I think the visualization is really cool.) Implementation Firstly, I implemented multisa...

Leveling Up Raven: BVH, Transformations, and Instancing

Image
 “The enigmatic duo David’s Reflection has captivated audiences with their unique fusion of classical and modern sounds, and now, they’re set to release their highly anticipated album, Gaze of Eternity . Known for their haunting melodies and introspective lyrics, David’s Reflection draws inspiration from the iconic duality of Michelangelo’s David, embodied by the two statues staring forward on the album cover. Gaze of Eternity delves into themes of identity, introspection, and timeless beauty, capturing a soundscape where ancient echoes meet contemporary beats. Fans of art rock and atmospheric pop alike will find themselves immersed in a world where music reflects the tension and harmony of looking both inward and outward, balancing tradition with innovation. This album promises to be a soulful journey, one that resonates with those who are unafraid to confront their own reflections and the art that shapes them.” ( generated by gpt4 ) (I wanted to make funny opening since the im...