
Explore OpenGL basics and build a complete OpenGL painting app project with C++ using GLUT and VS Code; gain practical experience and beginner-friendly instruction.
Extract the provided zip, open the project folder in VS Code, and trust the authors to set up OpenGL. Verify test codes run with a C++ compiler like g++.
Create an OpenGL window with GLUT, configure a double-buffer RGB display, set a white background, implement a display function, and run the GLUT main loop.
Explore OpenGL's coordinate system, where the origin sits at the screen center and coordinates range from -1 to 1, contrasting GLUT's top-left origin; learn to specify triangle vertices accordingly.
Explore drawing shapes in OpenGL by using the display function, clearing and swapping buffers, and rendering points, lines, and polygons with glBegin/glEnd, colors, and line width.
Explore the OpenGL coordinate system and the NDC, including origin placement and axis ranges, and learn the conversion formula to map OpenGL coordinates to NDC.
Create a pencil tool in OpenGL by handling mouse input with glut callbacks, converting coordinates to ndc, and storing points in a vector of pairs while drawing.
Master vector of pairs in C++ by learning dynamic arrays, pushing back make pair entries, and accessing the first element of pairs.
Implement a real-time pencil tool in OpenGL by drawing a line strip from a vector of points, updating the display after each input.
Store drawing steps as a vector of functions, copy points and colors into temporary buffers, push them into the function vector, and render by calling each function for real-time drawing.
Implement a tool switch using a switch statement and boolean flags in an OpenGL painting app; bind keys for pencil, eraser, line, fill, and rectangle tools.
Build a real-time eraser in an OpenGL painting app by switching tools with the keyboard, recording eraser curves, and enabling undo via lambda-stored actions.
learns to implement an eraser tool by storing eraser points in a memory buffer, using a vector of functions, and enabling real-time erase with undo via push and pop operations.
Change the pencil color with keyboard shortcuts by updating the current color array to RGB values (green, red, blue, white, black, yellow) and verify by painting with the pencil.
Implement the undo feature by popping the last action from a vector and triggering a redisplay with glut post redisplay, then test with pencil drawing and erase using z.
Learn to implement the line tool by placing two points in a fixed vector, with the first at the click and second at cursor, joined by gl line strip.
Implement a real-time line tool by capturing the initial click as the first point and updating the second point during drag, drawing a two-point line and supporting color changes.
Explore the flood fill algorithm, a stack-based iterative approach filling connected pixels until a boundary color. Use a 2D visited array to color neighboring pixels with the chosen color.
Implement a stack-based flood fill tool in C++ that fills arbitrary shapes from a mouse click, using a target color and a visited 2D array to guide processing.
Learn to implement a flood fill tool in OpenGL using a stack-based flood fill algorithm, boundary checks, color arrays, and pixel reading with glReadPixels to fill connected areas.
Learn the rectangle tool theory by defining four points from the initial click to current cursor, keeping the second point’s x fixed and its y aligned with the initial point.
Implement the rectangle tool by adapting the line tool, pushing four corner points, and updating them in real time as you drag to build the paint app rectangle.
Whether it's beginners in C++ or intermediate-level developers looking to enhance their skills, This Course is for you .You will be making an entire MS Paint Clone using OPENGL GLUT and C++ .We will be using VSCode as a code editor .The features of the Paint App includes - Pencil Tool , Eraser Tool , Paint Bucket Tool , Line Tool and Rectangle Tool .We will also Add Features like Changing Colors Dynamically and Undo, enabling users to revert changes . Every Lecture has a C++ file attached so that you don't get Stuck anywhere. This Course However does not focus on UI part of the Application . You can change the Tools using Keyboard Keys .However , You will get access to full Source Code including the UI and non UI one separately. You are free to use this Source Code anywhere - No Strings Attached.
This Course is Project Based ,allowing students to apply concepts in a practical manner by creating a real-world application .The course covers well-structured and modular code, providing insights into best practices for software development .I want to assure you that I'll be actively involved in the Q&A section. Whether you have questions about the code, need clarification on a particular concept, or encounter challenges during the project, I'll be there to provide guidance and support at every step. Your understanding and progress are my top priorities, and I'm dedicated to creating a positive and interactive learning environment. Don't hesitate to ask questions or share your thoughts in the Q&A section