0% found this document useful (0 votes)
15 views50 pages

01 Introduction

The document outlines a course on computer graphics, covering its scientific and mathematical foundations, including light physics, geometry, and rendering techniques. It details course content, assignments, evaluation criteria, and policies, emphasizing programming in C/C++. The course aims to provide a comprehensive understanding of graphics without focusing on artistic skills or software usage.

Uploaded by

amansinghdalawat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views50 pages

01 Introduction

The document outlines a course on computer graphics, covering its scientific and mathematical foundations, including light physics, geometry, and rendering techniques. It details course content, assignments, evaluation criteria, and policies, emphasizing programming in C/C++. The course aims to provide a comprehensive understanding of graphics without focusing on artistic skills or software usage.

Uploaded by

amansinghdalawat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 50

COL781

Computer
Graphics
What is computer graphics?
From Software
Entertainment

Framestore

Pixar
Art, design,
architecture

Bathsheba Grossman

Sage Gateshead
Scientific visualization and training

US Navy
Intuitive Surgical
Inverse graphics

Peng et al. 2018

Mildenhall et al. 2020


light: Graphics and other areas
shape: box [-0.5,0.5] …
intensity: 10
sphere:
center: (-0.5,0.5,-0.5)
radius: 0.5 Graphics
material: mirror
sphere:
center: (0.5,0.5,0.5)
radius: 0.5
Vision
material: glass
wall:
x: -1 Image (array of pixels)
colour: rgb(0.8,0.2,0.2) Image

processing
Actually, computer graphics is omnipresent in how all of us interact
with computers today!

…Wait, how?
Graphical user interfaces, typography

Fontographer
Computing without graphics

Punched card from a


Fortran program
ENIAC (1945)
Computing without graphics
What this course is about
Scienti c and mathematical foundations of graphics

• Physics of light and colour, materials, dynamics for animation, …


• Mathematics of curves and surfaces, perspective projection, sampling, …
Representations, algorithms, and systems

• Modelling geometry, images, transformations, …


• Mesh subdivision, ray tracing, time integration, …
• GPUs, hardware rendering pipeline, …
fi
What this course is not about

• How to use 3D software


• How to be a graphics artist
• How to make a game
Course content

Physically Based
Rendering book cover

Modelling Rendering Animation


Modelling
How to work with geometry?

• Representation
• Manipulation and editing
• Geometric queries
Rendering
• Quantifying light and materials
• Computing light transport in a scene
• Real-time approximations
Animation

Thürey et al. 2010


• Character animation
• Physics-based animation

Feng et al. 2022


Assignments
4 assignments:

• Foundations (rasterization)
• Modelling (mesh editing)
• Rendering (path tracing)
• Animation (mocap & simulation)
Assignment policies
This will be a very programming-heavy course!

All assignments are to be done in C/C++. Some starter code will be provided

Groups of 2

Try to produce some creative, artistic output as well! I may show it off in class 😁

Late policy: 4 free late days over whole semester, then 25% penalty per extra late day
Highlights from last year: Assignment 1

Rahul Jassal & Rishabh Dhiman Salil Gokhale & Aniruddha Deb Vipul Garg & Thakre Ishita
Highlights from last year: Assignment 3

Aniruddha Deb & Salil Gokhale Shamoon Rashid & Nischay Diwan Rajeev Gupta & Prashant Mishra
Highlights from last year: Assignment 4

Shamoon Rashid & Nischay Diwan


Assignment policies
Academic honesty: No copying of code or speci c implementation details.

I don’t want to prevent you from discussing concepts, algorithms, and methods. But it
must not be at such a detailed level that your code ends up being the same!

If two groups have “highly similar” code, both will receive the exact same penalty. It
doesn’t matter who copied from who.

• Submitted code will be checked for similarity with all submissions from this year and
from last year

fi
Other logistics
Course webpage: https://www.cse.iitd.ac.in/~narain/, Ctrl+F 781 :)

Piazza: Link on course webpage, access code: col781

• All announcements will be on Piazza only. Please sign up immediately after class
• Ask questions on Piazza only! Do not ask by email
Other important sites:

• Moodle for assignment submissions


• Gradescope for quiz / exam grading
Textbooks
No required text, but the following are highly recommended for reference:

• Hughes et al., Computer Graphics: Principles and Practice, 3rd Ed.


• Marschner and Shirley, Fundamentals of Computer Graphics, 4th or 5th Ed.
Other useful online references are linked on the course webpage
Interacting with us
Instructor: Rahul Narain (narain@cse)

TA: Nischay Diwan (cs5200433@cse)

• May be remote from Feb onwards


Of ce hours: by appointment
fi
Evaluation
• Assignments: 40% (4 × 10%)
• Exams:
• Minor: 20%
• Major: 35%
• Participation (in-class quizzes, Moodle, Piazza): 5%
Evaluation policies
Grading: Minimum 80% marks for A grade, minimum 30% marks for D.
These cutoffs may be raised based on my discretion

Audit pass: At least 40% in course total, and at least 20% in each assignment and each
exam

Attendance policy: Attendance lower than 75% may result in a one-grade penalty (e.g. A
to A–, or A– to B)
Participation
I want the course to be as interactive as possible!

During the lecture: After each lecture, I will make a Q&A


thread with the slides on Piazza
• Ask questions at any time
• Ask questions
• Participate in discussions
• Answer others’ questions if you know
the answer

• Share links to other explanations of the


topic
Rasterization
Graphics in a nutshell

Scene data (geometry,


Image (array of pixels)
materials, illumination, …)

But why an array of pixels, speci cally?


fi
Raster displays

Cathode ray tubes (CRTs)


A rastrum
Raster displays

Liquid crystal displays (LCDs)


Raster displays

Light-emitting diodes (LEDs)


Raster images

Raster displays provide a grid of pixels (picture


elements) whose intensity / colour can be individually
controlled

A raster image (or bitmap image, or just image) is a


2D array of pixel values, and can easily be displayed
on a raster device.
Vector graphics
Users usually don’t want to draw things by setting individual pixels!

One wants to provide a high-level description:

<svg version="1.1"
width="300" height="200"
xmlns="http://www.w3.org/2000/svg">
<rect width="100%" height="100%" fill="red" />
<circle cx="150" cy="100" r="80" fill="green" />
<text x="150" y="125" font-size="60"
text-anchor="middle" fill="white">SVG</text>
</svg>
Vector graphics
Li et al. 2020

Raster image Vector drawing


Similarly, 3D graphics models are almost
always represented in a high-level form:

VERTICES
A:( 1, 1, 1) E:( 1, 1,-1)
B:(-1, 1, 1) F:(-1, 1,-1)
C:( 1,-1, 1) G:( 1,-1,-1)
D:(-1,-1, 1) H:(-1,-1,-1)

TRIANGLES
EHF, GFH, FGB, CBG,
GHC, DCH, ABD, CDB,
HED, ADE, EFA, BAF

Though in 3D we don’t refer to this as


“vector graphics”!
Puzzle:
What would be the 3D analogue of a raster image?

Can you think of a graphics application where it is / could be used?


Voxel data

Andreas Jakl

SideFX
Rasterization
To display any 2D or 3D shape on a raster display, it needs to be rasterized!

Input: Geometrical “primitives” (usually triangles) with attributes (e.g. colour)

Output: Raster image approx-


imating the given shape

Usually this is performed by the


graphics processing unit (GPU)
Preview: The (real-time)
graphics pipeline
Even for 3D graphics,

1. rst we project the vertices of each 3D triangle to


their 2D locations on the screen

2. then we rasterize the 2D triangle!

So it makes sense to study rasterization of 2D graphics


rst.
fi
fi
Aside: Vector displays

@[email protected]

Oscilloscopes Plotters Laser light shows


How to draw an arbitrary triangle on a pixel grid?

For now, let’s pick a sample point at the center of each pixel, and colour the pixel if the
sample point lies inside the triangle.

How to check whether a point is inside a triangle?


Warm-up: How to draw a 1-pixel thick line given two endpoints (x0, y0) and (x1, y1)?
Things to do before next class
• Sign up on Piazza
• Look for a copy of the textbooks (Marschner & Shirley or Hughes et al.)

You might also like