80 likes | 214 Vues
This comprehensive graphics course, led by Pete Shirley at the University of Utah, emphasizes teaching essential graphics concepts without relying on APIs. Students will learn to output to screen or PPM files using C++, as they delve into ray tracing and Z-buffer techniques. Key lessons include gamma correction, barycentric coordinates, shadows, and specular reflection/refraction. Assignments challenge students to create efficient graphics engines, making this course ideal for aspiring graphics professionals while providing exciting early projects and fostering deep understanding over syntax.
E N D
Teaching Graphics with no API Pete Shirley NVIDIA, University of Utah
Mechanics of an API-free course • Output to screen or ppm file • Use C++ (because of job market) • Choose ray tracing or z-buffer • Choose modeling or rendering as priority
Shadows tell the story • Ray tracing course: assignment 1 has shadows • OpenGL course….
One triangle z-buffer Void rasterize(float2 v[3], rgb c[3]) { float bary[3]; for (int i = 0; i < nx; i++) for (int j = 0; j < ny; j++) { compute_bary( float2(i,j), v, bary ); if (inside01(bary)) { rgb c = interp(c, bary); setpixel( i, j, c ); } } }
Concepts students learn • Gamma • Barycentrics • Implicit and parametric equations • Shadows • Specular reflection/refraction
Possible capstone projects • Catmull-Clark • Hybrid algorithms • Path tracer • Interactive implementation
Summary Advantages Disadvantages Don’t learn useful API Interactivity occurs late Possibly bad if this is only graphics course you ever tae • Concepts over syntax • Exciting early projects • No expiration date on material • Students must make engine efficient • Good for graphics professionals
Closing remark • Best course is the one the prof likes to teach