Required Skills and Goal § Programming Skills C++ OpenGL Note: programming requires (much) practice Data Structures: Linked-List (Vector), Stack, Trees* § Goal You have to be able to understand the theory (midterm, final) and implement the theory in practice (projects).
Textbook § Tomas Akenine-Moller and Eric Haines. Real-Time Rendering (3rd Edition). AK Peters, Ltd. § D. Hearn and M. P. Baker. Computer Graphics with OpenGL (3rd Edition). Prentice Hall. § J. Neider, T. Davis, M. Woo, The OpenGL Programming Guide, Addison-Wesley
Slides § The slides will be available on blackboard and are intended for your personal studies § You are not allowed to distribute the slides § You are still required to read the book for a better and more complete understanding of the topics in this class
Projects § Four projects are the core of the course § It is important that you are able to implement computer graphics algorithms § The projects will have a clear specification § Approximately, 10 hours of work outside of class per week. If you miss the class you will need more time.
Ethics § Violations of academic integrity include (but are not limited to) cheating, fabrication, tampering, plagiarism or facilitating such activities. § it is unethical to bring to your instructor's attention the possible impact of your course grade on your future plans, including graduation, scholarships, jobs, etc.
Attendance § Attendance is required § Announcements are made in class § I will try to post all important information on Blackboard § If you come to class you are expected to participate
Design an Algorithm § You have a screen, size 100 x 100. lower left corner (0,0) upper right is (100, 100). § The function PutPixel(x, y) will draw a pixel on location (x,y). § Give a pseudo-code algorithm to draw a circle with center (50,50) and radius 10.
Proposed Algorithm clearScreen(); i = 0; while (i < 360) PutPixel( 50 + 10*sin(i), 50 + 10*cos(i) ) i = i + 1 § Is this a good algorithm? § What are some of the problems? § How could the algorithm be improved
Geometry § Given a line 7x + 3y = 0 § How can you test if a point is on the left or right side of the line? § Can you draw the line on a piece of paper?
Programming § How to create a project in Visual Studio § How to copy a project from one computer to other § Debugging § What about Object-Oriented Programming? Yes, classes, objects, inheritance, and so on...