260 likes | 414 Views
Lecture 01: Introduction. COMP 175: Computer Graphics January 16, 2014. People. TA: Paul Nixon Paul.Nixon@Tufts.edu Office: ?? Hours: ??. Instructor: Remco Chang remco@cs.tufts.edu Office: Halligan 221 Hours: Tue 4-5pm. Head TA: Mike Shah mshah08@cs.tufts.edu Office: ??
E N D
Lecture 01:Introduction COMP 175: Computer Graphics January 16, 2014
People TA: Paul Nixon Paul.Nixon@Tufts.edu Office: ?? Hours: ?? Instructor: Remco Chang remco@cs.tufts.edu Office: Halligan 221 Hours: Tue 4-5pm Head TA: Mike Shah mshah08@cs.tufts.edu Office: ?? Hours: ?? TA: Sophia PanuthosSophia.Panuthos@Tufts.edu Office: ?? Hours: ??
Clarification! • Meeting Time: • Tuesday, Thursday from 1:30-2:45 • H+ Block • Quick Poll: • Laptops? • Operating Systems? • C++ proficiency? • People who took 150VIZ?
Clarification! • Prerequisites • COMP 40 • Machine Structure and Assembly-Language Programming • Implies: COMP 15 (Data Structures) • Implies: proficiency with C++ and memory management • Linear Algebra • Vector and Matrix math
Clarification • Questions? • Conflicts with schedule? • Don’t have the prereqs? • Schedule a time and come talk to me…
What is Graphics? • 3D world map to 2D • How to do it? • Geometry transform • Per-pixel operation
What is Graphics? • 3D world map to 2D • How to do it?
What is Graphics? • Geometry • View • Complex scene • Putting pixels on a 2D canvas • Putting (pretty) pixels on a 2D canvas
What is Graphics? • 3D world map to 2D • How to do it? • Fixed pipeline • Programmable pipeline • Going from fix pipeline into programmable pipeline
What Does your Graphics Card Do? • Why expensive graphics cards? • Why are they fast (at graphics)? • Are they good at anything else? • Example for parallelizable vs. serial-only algorithms • Let’s try sorting…
Spirit of this class • Creativity, Creativity, Creativity • We will teach you the tools, the rest is up to you! • Example: what is the most popular PC game of all time? • There are 3 ways to impress me: • Do something cool in your (visual/graphics) design • Do something cool in your (code) design • Do something cool in your (optimization) design • Math is cool, but…
General Information • Course website: • http://www.cs.tufts.edu/comp/175 • Assignments • Labs • Syllabus • Support Code • Textbooks • Grading • Accommodation
Grading • Assignments (3% + 10% each): • 1. Shapes 13% • 2. Camera 13% • 3. SceneView 13% • 4. Modeler 13% • 5. Ray Tracer 13% • Final Project 15% • Labs 20% (2% each) • Total 100%
Teams and Outside Help • Paired Programming • Work in a team of two • We don’t recommend switching partners... • Online Resources • There are lots of resources online • Use them for understanding, but again, you must turn in your own work!
Let’s Pick Teams • Form teams of 2
In Class Labs • 10 Labs total • Should be doable within a couple of hours… • If not, you have 1 week to complete it
Take-Home Assignments • There are 5 Assignments • You have 2 weeks to complete each one • Except for the Spring Break week • An algorithm sheet needs to be submitted after 1 week
Assignment 1: Shapes • Creating 3-dimensional objects using triangles • Write code to break up common geometric shapes into triangles (tessellation) • Rectangles, spheres, cylinders, and cones • Data structure of points, lines, polygons, shapes
Assignment 2: Camera • Write a (software) perspective camera • Maintain transform matrices, from world to screen and inversely from screen to world • Implement pan, zoom, rotate, etc. for the camera • Become comfortable with matrix manipulation
Assignment 3: SceneView • Maintain and render a hierarchical scene • Uses the primitives created in Shapes, and the view transform from Camera • Apply hierarchical transform of rotation, translation, and scaling to render a 3D scene • Management of hierarchical data structure
Assignment 4: Modeler / Intersect • Cast rays to intersect with a 3D scene • Add user interactivity to move the objects using a mouse • Output 3D scene files • Become comfortable with going from 2D to 3D and 3D to 2D
Assignment 5: Recursive Ray Tracer • Using rays from Modeler, recursively bounce to rays to create a fully ray-traced 3D scene • Implement Phong Shading • Implement texture-mapping • Highly parallel, recursive algorithm
Final Project • Demo during the final period • Not suck • Ideas can come from: • Labs • Assignments • Something cool you saw on Youtube • An idea for a game • A research paper you read • : • :
Other Issues • Using Piazza • Do NOT post code!! • Using GLUT, GLUI • Cross platform • Linux / Unix • Mac • Windows • Support code “cleanliness” and stability…
Late Policy • Assignments that are turned in late will receive a 0. • Assignments will be submitted using “provide” • Each team will be required to demo their assignment to me in person. • Time and location of the demos -- ?? • Note: you are allowed 1 extension for the semester. • With an extension, you will be granted an extra 3 days. • Labs are checked one week later. • You will demo this in class to myself or the TA • If you have an extraordinary circumstance, you must contact the instructor or the TA as soon as possible and obtain written approval. • NO LATE POLICY for the Final Project!!