Welcome! INFOGR Lecture 2 Graphics Fundamentals Synchronize - - PowerPoint PPT Presentation

welcome
SMART_READER_LITE
LIVE PREVIEW

Welcome! INFOGR Lecture 2 Graphics Fundamentals Synchronize - - PowerPoint PPT Presentation

INFOGR Computer Graphics Jacco Bikker - April-July 2015 - Lecture 2: Graphics Fundamentals Welcome! INFOGR Lecture 2 Graphics Fundamentals Synchronize http://www.cs.uu.nl/docs/vakken/gr Todays Agenda: The Raster


slide-1
SLIDE 1

INFOGR – Computer Graphics

Jacco Bikker - April-July 2015 - Lecture 2: “Graphics Fundamentals”

Welcome!

slide-2
SLIDE 2

Synchronize

INFOGR – Lecture 2 – “Graphics Fundamentals”

http://www.cs.uu.nl/docs/vakken/gr

slide-3
SLIDE 3

Today’s Agenda:

  • The Raster Display
  • Vector Math
  • Colors
slide-4
SLIDE 4

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” Discretization

slide-5
SLIDE 5

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” Discretization Rasterization: “Converting a vector image into a raster image for output on a video display or printer or storage in a bitmap file format.” (Wikipedia)

slide-6
SLIDE 6

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” Rasterization Improving rasterization:

  • 1. Increase resolution;
slide-7
SLIDE 7

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” Rasterization Improving rasterization:

  • 1. Increase resolution;
  • 2. Anti-aliasing;
  • 3. Animation.
slide-8
SLIDE 8
slide-9
SLIDE 9
slide-10
SLIDE 10
slide-11
SLIDE 11

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” Discretization

π=4

a2+b2= 𝑏 + 𝑐

slide-12
SLIDE 12

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” CRT – Cathode Ray Tube Physical implementation – origins Electron beam zig-zagging over a fluorescent screen.

slide-13
SLIDE 13

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” CRT – Cathode Ray Tube

0,0 x y x=1 y=1 0,0 x=-1 y=-1

Physical implementation – consequences

  • Origin in the top-left corner of the screen
  • Axis system directly related to pixel count

Not the coordinate system we expected…

slide-14
SLIDE 14

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” Frame rate PAL: 25fps NTSC: 30fps (actually: 29.97) Typical laptop screen: 60Hz High-end monitors: 120-240Hz Cartoons: 12-15fps Human eye: ‘Frame-less’ Not a raster. How many fps / megapixels is ‘enough’?

slide-15
SLIDE 15

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” Frame rate Frame 1 Frame 2 Frame 3 Sim 1 Sim 2 Sim 3 Input 1 Input 2 Input 3

0 ms 20 ms 40 ms 60 ms

slide-16
SLIDE 16

Raster Displays

INFOGR – Lecture 2 – “Graphics Fundamentals” Generating images Rendering: “The process of generating an image from a 2D or 3D model by means of a computer program.”

(Wikipedia)

Two main methods:

  • 1. Ray tracing: for each pixel: what color do we assign to it?
  • 2. Rasterization: for each triangle, which pixels does it affect?
  • n a raster
slide-17
SLIDE 17

Today’s Agenda:

  • The Raster Display
  • Vector Math
  • Colors
slide-18
SLIDE 18

INFOGR – Lecture 2 – “Graphics Fundamentals” 2D space

Px=0 width-1 Py=0 height-1 x=0 1 1 y=0

Conversion: Px = x * width Py = (1-y) * height

Vector Math

slide-19
SLIDE 19

INFOGR – Lecture 2 – “Graphics Fundamentals” 2D space

x=0 1 1 y=0

z

Vector Math

slide-20
SLIDE 20

INFOGR – Lecture 2 – “Graphics Fundamentals” Vectors In ℝd, a vector can be defined as an ordered d-tuple: A vector can also be defined by its length and direction. v1 v2 ... vd 𝑤 =

5 4 𝑤1 = 5 𝑤2 = 4

The Euclidean length or magnitude of a vector is calculated using: ǁ 𝑤ǁ= 𝑤1

2 + 𝑤2 2 + ⋯ + 𝑤𝑒2

In 2D, this is similar to the Pythagorean theorem: 𝑏2 + 𝑐2 = 𝑑2

Vector Math

slide-21
SLIDE 21

INFOGR – Lecture 2 – “Graphics Fundamentals” Vectors A unit vector is a vector with length = 1: ǁ 𝑤ǁ = 1 A null vector is a vector with lenth = 0, e.g.: in ℝ3 : 𝑤 = A vector can be normalized by dividing it by its magnitude: 𝑤𝑣𝑜𝑗𝑢 = 𝑤 ǁ𝑥ǁ Can we normalize every vector?

Vector Math

slide-22
SLIDE 22

INFOGR – Lecture 2 – “Graphics Fundamentals” Vectors A 2D vector (𝑦𝑤, 𝑧𝑤) can be seen as the point 𝑦𝑤, 𝑧𝑤 in the Cartesian plane. A 2D vector (𝑦𝑤, 𝑧𝑤) can be seen as an offset from the

  • rigin.

4 1

No Note: Positions and vectors in ℝ3 can be both represented by 3-tuples (𝑦, 𝑧, 𝑨), but they are not the same!

Vector Math

slide-23
SLIDE 23

INFOGR – Lecture 2 – “Graphics Fundamentals” Vectors The sum of two vectors in ℝd , 𝑤 = (𝑤1, 𝑤2, . . , 𝑤𝑒) and 𝑥 = (𝑥1, 𝑥2, . . , 𝑥𝑒) is defined as: 𝑤 + 𝑥 = (𝑤1 + 𝑥1, 𝑤2 + 𝑥2, … , 𝑤𝑒 + 𝑥𝑒)

4 1 1 2 5 3

Ex Example: (4,1) + (1,2) = (5,3) Vector subtraction is similarly defined. Vector addition is commutative (as can be easily seen from the geometric interpretation): (4,1) + (1,2) = (5,3) = (1,2) + (4,1).

Vector Math

slide-24
SLIDE 24

INFOGR – Lecture 2 – “Graphics Fundamentals” Vectors The scalar multiple of a d- dimensional vector 𝑤 is defined as: λ 𝑤 = (𝜇𝑤1, 𝜇𝑤2, . . , 𝜇𝑤𝑒) Scalar multiplication can change the length of a vector. It can also change the direction

  • f the vector, which is reversed

if λ < 0. Two vectors 𝑤 and 𝑥 are parallel if one is a scalar multiple of the other, i.e.: there is a λ such that 𝑤 = λ𝑥.

Vector Math

slide-25
SLIDE 25

INFOGR – Lecture 2 – “Graphics Fundamentals” Vectors Parallel vectors are called linearly dependent. If they are not parallel, vectors are linearly independent. A special case is when two vectors are perpendicular to each other; in this case, each vector is the normal vector of the other. In ℝ2, we can easily create a normal vector for (vx , vy): 𝑜 = ( −𝑤𝑧 , 𝑤𝑦 ) Question: does this also work in ℝ3 ?

Vector Math

slide-26
SLIDE 26

INFOGR – Lecture 2 – “Graphics Fundamentals” Bases We can use two linearly independent vectors to produce any vector: 𝑏 = λ1𝑣 + λ2 𝑤 This doesn’t just work for perpendicular vectors. 𝑣 𝑤 𝑏 𝑤 𝑣

Vector Math

slide-27
SLIDE 27

INFOGR – Lecture 2 – “Graphics Fundamentals” We can use two linearly independent vectors to produce any vector: 𝑏 = λ1𝑣 + λ2 𝑤 This doesn’t just work for perpendicular vectors. Any pair of linearly independent vectors form a 2D basis. This extends naturally to higher dimensions. Bases

Vector Math

slide-28
SLIDE 28

INFOGR – Lecture 2 – “Graphics Fundamentals” “Any pair of linearly independent vectors form a 2D basis”: The Cartesian coordinate system is an example of this. In this case the vectors (1,0) and (0,1) form an orthonormal basis:

  • 1. The vectors are orthogonal

to each other;

  • 2. The vectors are unit

vectors. Bases

Vector Math

slide-29
SLIDE 29

INFOGR – Lecture 2 – “Graphics Fundamentals”

x y

z

x y

z Bases A coordinate system can be left handed or right handed. Note that this only affects the interpretation of the vectors; the vectors themselves are the same in each case.

Vector Math

slide-30
SLIDE 30

INFOGR – Lecture 2 – “Graphics Fundamentals” Dot product Given vectors 𝑏, 𝑣 and 𝑤, we know that: 𝑏 = λ1𝑣 + λ2 𝑤 We can determine λ1 and λ2 using the dot product*.

*: AKA inner product or scalar product

𝑣 𝑤 𝑏 The dot product of vector 𝑤 and 𝑥 is defined as: 𝑤 ∙ 𝑥 = 𝑤1𝑥1 + 𝑤2𝑥2 + ⋯ + 𝑤𝑒𝑥𝑒

  • r

𝑤 ∙ 𝑥 = 𝑤𝑗 𝑥𝑗

Σ

i=0 d

Vector Math

slide-31
SLIDE 31

INFOGR – Lecture 2 – “Graphics Fundamentals” Dot product The dot product projects one vector on another. If 𝑏 and 𝑣 are unit vectors, we can calculate the angle between them using the dot product: λ = cos ∝ = 𝑣 ∙ 𝑏

  • r, if they are not normalized:

cos ∝ = 𝑣 ∙ 𝑏 ǁ𝑣ǁ ǁ 𝑏ǁ 𝑣 𝑏 𝜇 𝑤 Projecting a vector on two linearly independent vectors yields a coordinate within the 2D basis. This works regardless

  • f the direction and scale
  • f 𝑣 and

𝑤 , and also in ℝ3.

Vector Math

α 𝜇1 𝜇2

slide-32
SLIDE 32

INFOGR – Lecture 2 – “Graphics Fundamentals” Cross product

2D Transforms

The cross product can be used to calculate a vector perpendicular to a 2D basis formed by 2 vectors. It is defined as: 𝑤2𝑥3 – 𝑤3𝑥2 𝑤 × 𝑥 = 𝑤3𝑥1 – 𝑤1𝑥3 𝑤1𝑥2 – 𝑤2𝑥1 Note: The cross product is only defined in ℝ3.

y

z

x

𝑤 𝑥 𝑤 × 𝑥

slide-33
SLIDE 33

INFOGR – Lecture 2 – “Graphics Fundamentals”

2D Transforms

slide-34
SLIDE 34

INFOGR – Lecture 2 – “Graphics Fundamentals”

2D Transforms

slide-35
SLIDE 35

INFOGR – Lecture 2 – “Graphics Fundamentals”

2D Transforms

slide-36
SLIDE 36

INFOGR – Lecture 2 – “Graphics Fundamentals”

2D Transforms

slide-37
SLIDE 37

Today’s Agenda:

  • The Raster Display
  • Vector Math
  • Colors
slide-38
SLIDE 38

Colors

INFOGR – Lecture 2 – “Graphics Fundamentals” Color representation Computer screens emit light in three colors: red, green and blue. By additively mixing these, we can produce most colors: from black (red, green and blue turned off) to white (red, green and blue at full brightness). In computer graphics, colors are stored in discrete form. This has implications for:

  • Color resolution (i.e., number of unique values per

component);

  • Maximum brightness (i.e., range of component values).
slide-39
SLIDE 39

Colors

INFOGR – Lecture 2 – “Graphics Fundamentals” Color representation The most common color representation is 32-bit ARGB, which stores red, green and blue as 8 bit values (0..255). Alternatively, we can use 16 bit for one pixel (RGB 565),

  • r a color palette. In that case, one byte is

used per pixel, but only 256 unique colors can be used for the image.

slide-40
SLIDE 40

Colors

INFOGR – Lecture 2 – “Graphics Fundamentals” Color representation

slide-41
SLIDE 41

Colors

INFOGR – Lecture 2 – “Graphics Fundamentals” Color representation

slide-42
SLIDE 42

Colors

INFOGR – Lecture 2 – “Graphics Fundamentals” Color representation

slide-43
SLIDE 43

Colors

INFOGR – Lecture 2 – “Graphics Fundamentals” Color representation Textures can typically safely be stored as palletized images. Using a smaller palette will result in smaller compressed files.

slide-44
SLIDE 44

Colors

INFOGR – Lecture 2 – “Graphics Fundamentals” Color representation Using a fixed range (0:0:0 … 255:255:255) places a cap on the maximum brightness that can be represented:

  • A white sheet of paper: (255,255,255)
  • A bright sky: (255,255,255)

The difference becomes apparent when we look at the sky and the sheet of paper through sunglasses. (or, when the sky is reflected in murky water)

slide-45
SLIDE 45

Colors

INFOGR – Lecture 2 – “Graphics Fundamentals” Color representation For realistic rendering, it is important to use an internal color representation with a much greater range than 0..255 per color component. HDR: High Dynamic Range; We store one float value per color component. Including alpha, this requires 128bit per pixel.

slide-46
SLIDE 46

Today’s Agenda:

  • The Raster Display
  • Vector Math
  • Colors
slide-47
SLIDE 47

INFOGR – Computer Graphics

Jacco Bikker - April-July 2015 - Lecture 2: “Graphics Fundamentals”

END of “Graphics Fundamentals”

next lecture: “Geometry”