Instructors: Vijay Kalivarapu and Adam Kohl


There will be five sessions for this course, and will have hands-on and in-class activities.The last session will be questions only and the deeper dive group will mostly be working on their major course activity (MCA).

Session 1

  • Hands-on: Understanding performance differences between CPU and GPU
  • Slides: Graphics pipeline
  • Video: How GPUs conceptually work
  • Hands-on: Simple fragment shader to build something like this on the right
  • Slides: Parts of a shader
  • In-Class: Apply sine-wave animation on a game object using vertex shaders
  • Downloads

Session 2

  • Hands-on: Cool UI animation using fragment shaders (we’ll see something like this on the left)
  • In-Class: Make a plane animate like a wave using vertex shaders
  • Assignment: Implement Gerstner waves
  • Reading assignment: Shape Display Shader Language (SDSL): A New Programming Model for Shape Changing Displays
  • Downloads

Session 3

  • Discuss: Paper assigned during session 3
  • Shader graphs (using UI to interactively build shaders to achieve a desired effect)
    • Hands-on: Fresnel effect (like the one on the right side here)
    • Hands-on: Holographic effect
  • Major Course Activity (MCA) ideas
  • Download

Session 4

  • Finalize MCA topic
  • Demonstrate: Computational Fluid Dynamics animations using vertex and fragment shaders (to see something like this on the left)
  • Discuss: Steps to implement timestep animations
  • In-Class: Use vertex and fragment shaders to show timestep animations with color gradients using lerp
  • Download

Session 5

Tips for C6 getReal3D apps

  • To use UI interaction with Intersense wand
    • Make sure you have ‘EventSystem’ within the project hierarchy
    • The ‘EventSystem’ prefab must be dragged from getReal package, not the Unity’s default EventSystem
    • Assuming getReal3D package is imported properly, its EventSystem is located at Assets >> getReal3D >> UI >> EventSystem
    • This will let users interact with various UI options
  • To use REU_Shaders Unity project (available for download under Session 5 above) for running in the C6
    • The Unity project was built in a newer version of Unity (2019.1.3) than the one getReal3D supports (2018.2.20)
    • Importing the project using Unity Hub will throw a bunch of error messages about Packages not found and that a manifest.json file must be edited located in ‘Packages’ directory under Assets.
    • Do not panic if you see this message. Do the following to resolve
      • Within the Unity editor window, go to Help >> ‘Reset Packages to defaults’
      • This will reset package errors and re-import Unity project to 2018.2.20
      • Everything should be hunky dory