3480 - Joseph Shafer Computer Graphics Project Idea
Raytraced Water Ripples
My computer graphics elements...
photo-realistic rendering
light transmission
bump map cycling
texture mapping
To demonstrate my study...
Example Gif of Water Ripples
Progress images and gifs of ripples using graphics techniques learned in class
Lab 8 Raytracer as a Framework
Final Gif showcasing project
Project Examples and Progress
Example Gif:
Project Progress Timeline
Using Lab 8
Made the water and light move a bit.
Used some ideas from this tutorial on water ripples to make a better looking effect. No mesh net used here, but followed the way they manipulate normals near the bottom of the page.
Using the way to manipulate normals from lab 11.
How this is achieved is using two disks with a specular highlight in the center of the blue one. One is blue, and the other is a transparent disk layered right above. The clear disk acts as a surface for the waves. I turned off the clear disks ability to make shadows to maintain the color of the disk underneath. There are 3 points the ripples start from to make the water look more choppy.
Experimented with making ripples using perlin noise instead of a sin wave. Also tried making a texture effect below the water with perlin noise. Not sure if I'll use these for my project but I thought it looked interesting.
Thanksgiving Break Progress
This was an early attempt of using refraction to cause the lines on a texture to move in a way similar to water. Here there is two connected triangles with a texture on them. Between the texture and the raytracer camera is a 100 clear triangle mesh that change their index of refraction randomly each frame.
Here I attempted to see if creating a transparent disk and spinning it around a point would create the desired effect. This is achieved by manipulating the X and Z directions of the normal of the transparent disk with sinusoidal functions.
Both these images use the same equation to create their effects, with the first one using the equation for the color of the floor and the second one using the equation for the index of refraction.
Pseudocode Explanation:
x = x coordinate / 200
z = z coordinate / 50
// replace refraction with color for first image
objectIndexOfRefraction = (sin(x + sin(z) + time) / π) + 1
As the raytracer iterates through every pixel the index of refraction changes slightly based on this equation using inputs of x, z, and time.
Adding Ripples back to above gif
Lab 15 Work
Attempt to make gif seamless. Closer than above gif but still a work in progress.
Final Gif
Cleaned up the looping by making the index of refraction at each point increment until the halfway point, then decrement until the final frame.