Project Demo This *technically* meets the requirements, but hasn't been polished (at all) Drawing a Fruit from a Seed General challenge: Represent a fruit with a single vertex Last Fall's Game Engine Design method: Use a CPU loop Serializes what ought to be a parallel process OpenGL doesn't really handle multiple threads An issue: The tessellation shader subdivides squares and triangles Another issue: Could be drawn in the geometry shader, but we couldn't use a tessellation shader then Instanced Rendering: Vertex order, but if we pre-load ONE model, we can draw it many places That's what instanced rendering is intended to solve! We have a compute shader that moves vertices around already And a tessellation shader than makes spheres based on a cube But, it has to know where the center is! Tessellation Levels and Distance Need to relate distance from camera and tessellation level Level 0 culls the polygon completely Distance from the camera, difference spaces camera space vs. world space and model space There are other spaces too! Example: Tessellate the cube more when it's close, and less when it's far away We can just go closer and closer Initial Velocity outward Just have to compute it The physics compute shader from last time actually supports it Multiple programs: Don't avoid it, multiple programs are ok Tree and fruit Wind effects on fruit, pre- and post-fruitfall Upcoming Course Directions: Lighting: Pretty soon Textures: I think these should be mentioned 3D graphics is a big area, and we've been going wherever I please If you have something that would really complete your 492 experience, let me know Could also be a good project idea Compute pivot post-midterm At this point, OpenCL is the leading candidate Vs. CUDA Motivating problem: 3D image analysis for Bioinformatics Vulkan is intended as the successor to both OpenGL and OpenCL At this point, I'm planning on a one-week intro to Vulkan at the end DX12 is intended to compete with Vulkan RTX ray tracing interface in DX12 and Vulkan, but not (yet?) OpenGL Lab today: Start your project Practice Problem: Make the bounces smaller and make the fruit become flatter after hitting the ground Kind of complicated, you'll have to know (for each fruit) if that fruit has hit the ground before in the TES Can either add a boolean, or perhaps hijack the w coordinate from center (would have to apply MVP differently)