## Raytracing Reflection, Refraction, Fresnel, Total Internal Reflection, and Beer’s Law

This post talks about how to render images like the below in real time using ray tracing. Some realism in the images come from reflection and refraction, but the real icing on the cake comes from Fresnel, total internal reflection … Continue reading

## Path Tracing – Getting Started With Diffuse and Emissive

The images below were path traced using 100,000 samples per pixel, using the sample code provided in this post. Path tracing is a specific type of ray tracing that aims to make photo realistic images by solving something called the … Continue reading

## G-Buffer Upsizing

The other day I had a thought: Rendering smaller than full screen images is super helpful for performance, but upsizing an image results in pretty bad quality vs a full resolution render. What if instead of upsizing the final rendered … Continue reading

I was working on a Dust Game on shadertoy for a few weeks and got a decent amount of the way through it. Unfortunately I hit a snag. There’s a sad fact that browsers compile WebGL shaders on the main … Continue reading

## Cubic Hermite Rectangles

Time for another Frankenstein post. This time we are going to combine the following: Cubic Hermite Interpolation Rectangular Bezier Patches The end result is going to be a Cubic Hermite Rectangle Surface like the below. Note that the curve only … Continue reading

## Lagrange Rectangles

In this post we are going to Frankenstein ideas from two other recent posts. If you haven’t seen these yet you should probably give them a read! Ingredient 1: Lagrange interpolation Ingredient 2: Rectangular Bezier Patches Lagrange Surface Lets say … Continue reading

## Rectangular Bezier Patches

Rectangular Bezier Patches are one way to bring Bezier curves into the 3rd dimension as a Bezier surface. Below is a rendered image of a quadratic Bezier rectangle (degree of (2,2)) and a cubic Bezier rectangle (degree of (3,3)) taken … Continue reading

## Temporal supersampling, flipquads and real time raytracing

Follow me on this train of thought ðŸ˜› 1) There’s this thing called super sampling where you render an image at a larger resolution, so that you can properly downsample it to the right size (the size of your screen … Continue reading

## Analytic Fog Density

There are a number of ways to implement the effect of fog with modern real time rendered graphics. This blog post will explain how to render fog that has varying density, based on a function of X,Y,Z location in space, … Continue reading

## Bezier Curves Part 2 (and Bezier Surfaces)

This is a follow up post to Bezier Curves. My plan was to write a post about b-splines and nurbs next, but after looking into them deeper, I found out they aren’t going to work for my needs so I’m … Continue reading