Displaying with the Video Card, general procedure for OpenGL 4.0+ or Vulkan Load whatever you want to display in main memory Format should be xyzxyzxyz, or xyzwxyzwxyzw, or something like that Move the list of vertices into video memory Same thing for colors, if you want those rgbargbargba, or rgbrgbrgb, or something like that Load a vertex shader It's a program that says what to do with the vertices (transformations, etc) Can also assign color to a vertex Load a fragment shader It's a program that figures out what color each fragment should be fragment = pixel Input will include which vertices were used to determine this fragment Can also include a color, determined by what the vertex shader output Start the main loop, which will: Prepare the transformation matrix or matrices for the next scene, if anything is moving Clear the framebuffer Draw a new frame How would Vulkan be different? Nothing in the above is wrong for vulkan But each step will require more detail OpenGL makes a lot of assumptions about what you want They'll be basically correct for what we're doing If they weren't, then we'd be in for a hard time of it Lab 2: Probably OpenGL Project 1: Probably using OpenGL and C++ to draw something, a "get your feet wet" project Continuing with our demo: Let's make a field of spinning triangles Can we move through it? Active learning: Make every other triangle spin backwards? Or something else?