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
- Lecture slides for Session 2
- Download the paper here (you will need to be on-campus to access the paper): https://dl.acm.org/citation.cfm?id=2732727
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

- Download: Shader scripts for custom lighting and effects such as the one you see on the picture here to the right. The shader scripts include:
- Ambient Lighting (Flat light)
- Lambert lighting
- Specular lighting
- Textures
- Texturing with normals
- Texture with normals and lights
- A script optimized for performance to achieve a higher framerate
- Download the shader scripts here as a zip file
- Download
- MCA work
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