Workbook 10 Gallery

Here are some cool examples from student assignments for Workbook 10.

Note: we cannot post all cool assignments! What we post is a random selection of good assignments - not necessarily the best.

Box 9-2

Box-10-09-02
  • Author: MATTHEW WITTWER
  • Image source: a cool texture of the moons surface from https://www.dreamstime.com/moon-surface-seamless-texture-background-closeup-moon-surface-texture-image188679621
  • Lighting: diffuse lighting in the cameras direction
  • Note: In addtion to adding the texture I used the color intensity of the rgb values in the image to warp the surface of the sphere. The brighter spots are elevated in the direction of the surface normals while the darker regions are recessed into the sphere. I also increased the number of segments in the sphere for this part to allow for the surface roughness to be more visible.
Box-10-09-02
  • Author: MICHAEL FEIST
  • Image source: It’s an image of my dog so I already had it
  • Lighting: simple diffuse lighting
  • Note: I created a displacement map that roughly traces the dog.
Box-10-09-02
  • Author: ZHIYUAN HAN

Box 9-3

Box-10-09-03

Please click on the image to interact with the scene by yourself!

  • Author: AUSTIN FRINGS
  • Note: The shader works by adding cos(x) and cos(y) together to find a d value for the mix function and then uses the x and y values to find one of the colors. At the same time, the image scrolls to the right by updating the x value with the stepWorld function in the .js file and adding the x value to the .fs file x value.

Box-10-09-03

Please click on the image to interact with the scene by yourself!

  • Author: ISAAC COLBERT
  • Note: The shader uses the x and z of the object’s world position as the seed to the 2D Noise function from https://thebookofshaders.com/11/ which is based on Morgan McGuire @morgan3d https://www.shadertoy.com/view/4dS3Wd. The 2D integer vector from the floor of this vector is passed in to the random function to produce random values for the four corners of the 2D tile. The vector of the fractional components of the world xz-vector is used for the smooth interpolation of the corners. The fractional vector is multiplied by a cubic curve controlled by the sliders and is in the form u = f * f * (a - b * f) where f is the fractional vector. This resulting u is used in the mix function as specified at https://thebookofshaders.com/11/ where the 4 corners’ percentages are mixed. The sliders affect this cubic curve so when the values are close together and relativelysmall, there is significantly more gray smoothing, while when the values are far apart or large, there is still smoothing but it is not as drawn out, leading to more blues and blacks. This produces the base color of the texture, which is then multiplied by the diffuse lighting pointing in (0, 0, 1) of the camera’s coordinate system.

Box-10-09-03

Please click on the image to interact with the scene by yourself!

  • Author: JEREMY BOETTICHER
  • Note: It’s a shader that interpolates (mostly) between colors and animates the displacement. I copied a lot of code from chapter 8 to make it, as you can probably tell. Two extra uniform variables are slapped into the shader: time and seesaw. Seesaw allows for the pulsating effect whereas time allows for the color interpolation & jump back to the “original” color.

Box-10-09-03

Please click on the image to interact with the scene by yourself!

  • Author: ZHIYUAN HAN
  • Note: The Shader reads 4 kinds of single bricks and randomly put it on each block of the geometry. The parameter “Broken” can control the damaged condition of the bricks (lost bricks).