\( \newcommand{\vecIII}[3]{\left[\begin{array}{c} #1\\\\#2\\\\#3 \end{array}\right]} \newcommand{\vecIV}[4]{\left[\begin{array}{c} #1\\\\#2\\\\#3\\\\#4 \end{array}\right]} \newcommand{\Choose}[2]{ { { #1 }\choose{ #2 } } } \newcommand{\vecII}[2]{\left[\begin{array}{c} #1\\\\#2 \end{array}\right]} \newcommand{\vecIII}[3]{\left[\begin{array}{c} #1\\\\#2\\\\#3 \end{array}\right]} \newcommand{\vecIV}[4]{\left[\begin{array}{c} #1\\\\#2\\\\#3\\\\#4 \end{array}\right]} \newcommand{\matIIxII}[4]{\left[ \begin{array}{cc} #1 & #2 \\\\ #3 & #4 \end{array}\right]} \newcommand{\matIIIxIII}[9]{\left[ \begin{array}{ccc} #1 & #2 & #3 \\\\ #4 & #5 & #6 \\\\ #7 & #8 & #9 \end{array}\right]} \)

Quiz

  1. When someone just talks about shaders without specifying, which one are they usually talking about?

    Fair question. Probably the fragment shader, since that's the one I most often see a modification to. I rarely see modifications of the vertex shader, but ChatGPT mentioned that one could use it to perturb the locations of vertices, say in a plane, to make it move.

  2. The demo from the reading looks similar to the same thing without custom programmed shaders, are there things we can change to make it look different by changing the shaders?

    Excellent point. I should add some custom shaders to the reading. We'll go over some today.

    Honestly, the main reason is that there's this huge jump between shader code we can understand to shader code that is extremely complex and not at all well documented. Consider the water shader we will look at today.

  3. The clipping planes example shows only one new triangle, what's the second one mentioned in the caption? Also, what's the effect of the geometry being modified in this way and is it something we should take into account?

    Let's look at the section on vertex shaders