Giter Site home page Giter Site logo

computer-graphics-csc418's Introduction

Computer Graphics CSC418/CSC2504 Fall 2018

image courtesy Tim Jeruzalski

Sections

LEC0101 Wednesdays 15:00-17:00 in GB 244
Prof. Alec Jacobson
[email protected]
+1 416-946-8630
Office hours Wednesdays 17:00-18:00 in BA 5266

LEC0201 Tuesdays 15:00-17:00 in SF 3202
Prof. Karan Singh
[email protected]
+1 416-978-7201
Office hours Tuesdays 14:00-15:00 in BA 5258

Tutorial for both sections will be held together on Mondays 15:00-16:00 in SF 3202.

Links

Course Overview

This course introduces the basic concepts and algorithms of computer graphics. It covers the basic methods needed to model and render 3D objects, including much of the following: graphics displays, basic optics, line drawing, affine and perspective transformations, windows and viewports, clipping, visibility, illumination and reflectance models, radiometry, energy transfer models, parametric representations, curves and surfaces, texture mapping, graphics hardware, ray tracing, graphics toolkits, animation systems.

Prerequisites: C/C++ Programming, Linear Algebra, Calculus, Numerical Methods (course codes).

The student is expected to read background material on the hardware and local software, and should be comfortable with elementary linear algebra, geometry, and vector calculus. It is also assumed that the student is comfortable programming in basic C++.

(Strongly) Recommended preparation: Multivariable Calculus

Required Textbook

The Book.

This class involves required reading from:

Fundamentals of Computer Graphics, Fourth Edition, Steve Marschner, Peter Shirley, et al. 2015.

Digital e-book are available at CRC Press.

Lecture Schedule

Week Topic / Event
1 Introduction, Demos of Solutions Assignment 1 (Raster Images) due 21/09, Lecture1
2 Assignment 2 (Ray Casting) due 28/09, Lecture2
3 Assignment 3 (Ray Tracing) due 05/10, Lecture3
4 Assignment 4 (Boundary Volume Hierarchy) due 14/10, Lecture4
5 Assignment 5 (Meshes) due 19/10, Lecture5
6 Work on Assignment 5 , Lecture6
7 Study for exam next week.
Monday, October 29 In-tutorial Exam (20% of grade)
8 Assignment 6 (Shader Pipeline) due 1415/11, Lecture7
Monday, November 5 Drop date (consider if grade so far is <50%)
9 Assignment 7 (Kinematics) due 21/11, Lecture8
10 Final Image/Animation/Game Competition due 03/12, Lecture9
11 Study for exam next week.
Monday, November 26 In-tutorial Exam (10% of grade)
12 ๐Ÿ† Showcase ๐Ÿ†

Academic Honesty (required reading)

image courtesy Gavin Barill (class of 2017)

Grading

% Item
70%* Assignments
20% Monday, October 29, in-tutorial exam
10% Monday, November 26, in-tutorial exam

There will be roughly seven programming assignments in total (~10% each).

*The final assignment is pass/fail + bonus marks. A minimally passing submission will receive a mark equal to the student's average marks on HW1-7 (i.e., will not change her overall Assignment Marks). Additional marks are awarded up to 100% on the assignment (i.e., an amazing submission will increase her marks as if scoring 100% on an 8th assignment). Failing the assignment (e.g., very poor/no submission) will receive 0 marks (i.e., as if receiving 0% on an 8th assignment). Lateness policy applies as usual, but get your submission in on time to qualify for the competition.

Lateness Policy

Assignments are due by 11:59pm on the due date.

0.007% off for every minute late.

Academic Honesty

Academic honesty is a very serious matter and can result in very serious consequences. Note that academic offences may be discovered and handled retroactively, even after the semester in which the course was taken for credit. This is a challenging class aimed at teaching you the fundamentals of computer graphics. You wont learn much if you cheat but you might get a good grade if you get away with it. If all you want is a good grade take an easier class where you wont have to cheat!

For purposes of this class, academic dishonesty is defined as:

  • Any attempt to pass off work on a test that didn't come straight out of your own head.
  • Any collaboration on written or programming assignments (its ok to share ideas on programming assignments but the code MUST be your own) in which the collaborating parties don't clearly and prominently explain exactly who did what, at turn-in time.
  • Any activity that has the effect of significantly impairing the ability of another student to learn. Examples here might include destroying the work of others, interfering with their access to resources (e.g., digital cameras), or deliberately providing them with misleading information.

Email & Bulletin Board Traffic

  • Please do not send email directly to the TAs. They will not be replied.
  • Main forum for answering questions about class or about the assignments is the class bulletin board. The TAs will be monitoring the board.
  • Appropriate use of the board: clarifications on assignment, on lecture material, general concerns about the course, or other remarks that are appropriate for all students to see/participate in.
  • Do NOT broadcast pieces of your code or answers to written assignments to the bulletin board. Specific or general implementation questions whose answer would benefit all students in the class are appropriate. However: the bulletin board is NO replacement for the tutorial hour. That should be the main forum for asking/answering questions of this sort.
  • Questions of the form "I cannot find the problem with my code; here it is, can you help me" are unlikely to be replied, so don't count on it. If you have a question with code, take it to the TA office hours or to the tutorials.

computer-graphics-csc418's People

Contributors

alecjacobson avatar karansher avatar psarahdactyl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.