Raytracing Renderer

Raytracing is a strategy to determine the color of each pixel in an image depicting a 3D scene. For each pixel, a ray is shot from the camera position towards the given point in the scene to find what object is represented by that pixel. More rays are traced from that point to any light sources in the scene, and the color at the point is derived by evaluating the properties of the represented object (such as albedo color, roughness, reflectivity, etc.) and the properties of the light sources.

The below images were generated with the raytracing renderer I wrote in C# for my Image Synthesis class.

(The source textures and normal maps used are not my own)

Shading

Directional lighting

Point lighting

Spot light from above

Area light

Texturing

UV test

Normal map

Normals with albedo color

Normals with albedo texture

Reflection

No normals, low roughness

With normals, medium roughness

With normals, high roughness

Reflected ground plane

Refraction

Refracted primitives

With normal map

Fresnel (refraction & reflection)

Variable Index of Refraction

Glossiness

Low-gloss fresnel

High-gloss fresnel