Git Product home page Git Product logo

computer-graphics's Introduction

Build

Graduate Computer Graphics, CSCI-GA 2270-001 Spring 2023

Course Instructor

Daniele Panozzo

60 5th Ave, 5th Floor

[email protected]

URL: http://cs.nyu.edu/~panozzo/

Assistants

Arvi Gjoka [email protected]

Jiacheng Dai [email protected]

Office Hours (starting from February 2nd):

  • Mondays Arvi 9-10AM, Discord
  • Tuesdays Arvi 3-4PM, 60 5th Ave, 502
  • Wednesdays Jiacheng 9AM, Discord
  • Thursdays Daniele 3-4PM, 60 5th Ave, 504
  • Fridays Jiacheng 2-3PM, 60 5th Ave, 502

Lectures:

Thursdays, 4:55 PM - 6:55 PM, GCASL, Room 269

Course Description

This course provides an introduction to the field of Computer Graphics. We will cover the basic mathematical concepts, such as 2D and 3D transformations, study the interaction of light with geometry to derive shading models, and implement rendering algorithms such as ray tracing and rasterization. We will investigate how these fundamental components are integrated in current graphics processors and study the corresponding programming APIs. This course will also include a brief introduction to C++.

By the end of the course, the student must be able to:

  • Explain and apply the fundamental mathematical concepts used in image synthesis algorithms
  • Implement a basic rendering system based on ray tracing
  • Implement a basic rendering pipeline based on rasterization
  • Develop graphics programs in C++ using the Simple Directmedia Library (SDL)

Textbook: Fundamentals of Computer Graphics, 4th Edition December 18, 2015 by A K Peters/CRC Press Textbook - 734 Pages - 541 Color ISBN 9781482229394

Assignments

In this course there will be 4 mandatory coding assignments that will account for 70% of the grade. There will also be 2 optional assignments, for a total of 15% extra points.

Please use the script prepare_assignment.sh to zip the submission folder, specifying the folder to zip as the first argument and the writeup document as the second document. For example, sh prepare_assignment.sh Assignment_1 Assignment_1/writeup.pdf. This will delete an existing zip file with the same name (in the case above, any existing Assignment_1.zip will be deleted). This may not work on Windows, so in that case make sure that you zip the parent folder and either indicate or provide the writeup separately in the submission. Please archive in to a .zip file in that case.

Course Notes:

The course notes will be adjusted along the way. The order is indicative and might change.

01 - Introduction

02 - Basic Linear Algebra

03 - Introduction to C++

04 - Images

05 - Ray Tracing

06 - Spatial Data Structures

07 - Procedural Synthesis

08 - 2D Transformations

09 - Viewing Transformations

10 - Rasterization - Theory

11 - Rasterization - Implementation

12 - Perspective Projection

13 - Texture Mapping

14 - Parametrization

15 - Designing Interpolating Curves

16 - Designing Approximating Curves

17 - Designing Surfaces

18 - Mesh Deformation

19 - Mesh Data Structures

Assignments

General Instructions

Assignment 1: Introduction to C++, Geometry (Optional)

Assignment 2: Introduction to Raytracing and Shading

Assignment 3: Basic Raytracing Effects (Optional)

Assignment 4: Ray Tracing Triangle Meshes and AABB Trees

Assignment 5: Rasterization

Assignment 6: 2D Shape Editor

Assignment 6 can be replaced by a final project.

computer-graphics's People

Contributors

danielepanozzo avatar arvigj 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.