infogr computer graphics - universiteit utrecht - rasters, colors... · dot product, cross product...
TRANSCRIPT
![Page 1: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/1.jpg)
INFOGR – Computer GraphicsJacco Bikker & Debabrata Panja - April-July 2019
Lecture 5: “Graphics Fundamentals”
Welcome!
![Page 2: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/2.jpg)
Today’s Agenda:
▪ Rasters
▪ Colors
▪ Ray Tracing
▪ Assignment P2
![Page 3: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/3.jpg)
Raster Displays
Discretization
INFOGR – Lecture 5 – “Graphics Fundamentals” 3
![Page 4: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/4.jpg)
Raster Displays
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)
INFOGR – Lecture 5 – “Graphics Fundamentals” 4
![Page 5: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/5.jpg)
Raster Displays
Rasterization
Improving rasterization:
1. Increase resolution;
INFOGR – Lecture 5 – “Graphics Fundamentals” 5
![Page 6: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/6.jpg)
Raster Displays
Rasterization
Improving rasterization:
1. Increase resolution;2. Anti-aliasing;3. Animation.
INFOGR – Lecture 5 – “Graphics Fundamentals” 6
![Page 7: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/7.jpg)
![Page 8: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/8.jpg)
![Page 9: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/9.jpg)
![Page 10: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/10.jpg)
Raster Displays
Discretization
π=4a2+b2=𝑐2
a1+b1=𝑐1
INFOGR – Lecture 5 – “Graphics Fundamentals” 10
![Page 11: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/11.jpg)
Raster Displays
CRT – Cathode Ray Tube
Physical implementation – origins
Electron beam zig-zagging over a fluorescent screen.
INFOGR – Lecture 5 – “Graphics Fundamentals” 11
![Page 12: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/12.jpg)
Raster Displays
CRT – Cathode Ray Tube
0,0 x
y
Physical implementation – consequences
▪ Origin in the top-left corner of the screen▪ Axis system directly related to pixel count
INFOGR – Lecture 5 – “Graphics Fundamentals” 12
![Page 13: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/13.jpg)
Raster Displays
CRT – Cathode Ray Tube
x=1
y=1
0,0x=-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…
INFOGR – Lecture 5 – “Graphics Fundamentals” 13
![Page 14: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/14.jpg)
Raster Displays
CRT – Cathode Ray Tube
0,0 x
y
x=1
y=1
0,0x=-1
y=-1
Proper screen coordinates
▪ Pixel coordinates are only relevant for the final step: plotting pixels
▪ Decouple the 2D screen coordinates in your game / app from the physical mapping.
INFOGR – Lecture 5 – “Graphics Fundamentals” 14
![Page 15: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/15.jpg)
Raster Displays
Frame rate
PAL: 25fpsNTSC: 30fps (actually: 29.97)Typical laptop screen: 60HzHigh-end monitors: 120-240HzCartoons: 12-15fps
Human eye:‘Frame-less’Not a raster.
How many fps / megapixels is ‘enough’?
INFOGR – Lecture 5 – “Graphics Fundamentals” 15
![Page 16: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/16.jpg)
Raster Displays
Frame rate
Even 100 frames per second may result in a noticeable delay of 30ms.
A very high frame rate minimizes the response time of the simulation.
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
INFOGR – Lecture 5 – “Graphics Fundamentals” 16
![Page 17: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/17.jpg)
Raster Displays
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?
on a raster
INFOGR – Lecture 5 – “Graphics Fundamentals” 17
![Page 18: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/18.jpg)
Today’s Agenda:
▪ Rasters
▪ Colors
▪ Ray Tracing
▪ Assignment P2
![Page 19: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/19.jpg)
Colors
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).
INFOGR – Lecture 5 – “Graphics Fundamentals” 19
![Page 20: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/20.jpg)
Colors
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),
or a color palette. In that case, one byte is used per pixel, but only 256 unique colors can be used for the image.
INFOGR – Lecture 5 – “Graphics Fundamentals” 20
![Page 21: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/21.jpg)
Colors
Color representation
INFOGR – Lecture 5 – “Graphics Fundamentals” 21
![Page 22: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/22.jpg)
Colors
Color representation
INFOGR – Lecture 5 – “Graphics Fundamentals” 22
![Page 23: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/23.jpg)
Colors
Color representation
INFOGR – Lecture 5 – “Graphics Fundamentals” 23
![Page 24: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/24.jpg)
Colors
Color representation
Textures can typically safely be stored as palletized images.
Using a smaller palette will result in smaller compressed files.
INFOGR – Lecture 5 – “Graphics Fundamentals” 24
![Page 25: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/25.jpg)
Colors
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)
INFOGR – Lecture 5 – “Graphics Fundamentals” 25
![Page 26: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/26.jpg)
Colors
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.
INFOGR – Lecture 5 – “Graphics Fundamentals” 26
![Page 27: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/27.jpg)
Colors
Color representation
Like pixel coordinates, pixel colors on the physical screen are only useful for final pixel plotting:
Do not use integer colors clamped to [0..255] internally, unless you have a good reason for this.
INFOGR – Lecture 5 – “Graphics Fundamentals” 27
![Page 28: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/28.jpg)
Today’s Agenda:
▪ Rasters
▪ Colors
▪ Ray Tracing
▪ Assignment P2
![Page 29: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/29.jpg)
PART 1: Introduction & shading (today, Thursday)
PART 2: Reflections, refraction, absorption (next week)
PART 3: Path Tracing (later)
INFOGR – Lecture 5 – “Graphics Fundamentals” 29
Ray Tracing
![Page 30: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/30.jpg)
Ray Tracing:
World space
▪ Geometry▪ Eye▪ Screen plane▪ Screen pixels▪ Primary rays▪ Intersections▪ Point light▪ Shadow rays
Light transport
▪ Extension rays
Light transport
INFOGR – Lecture 5 – “Graphics Fundamentals” 30
Ray Tracing
![Page 31: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/31.jpg)
Ray Tracing:
World space
▪ Geometry▪ Eye▪ Screen plane▪ Screen pixels▪ Primary rays▪ Intersections▪ Point light▪ Shadow rays
Light transport
▪ Extension rays
Light transport
INFOGR – Lecture 5 – “Graphics Fundamentals” 31
Ray Tracing
![Page 32: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/32.jpg)
Ray Tracing
INFOGR – Lecture 8 – “Ray Tracing”
![Page 33: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/33.jpg)
Ray Tracing:
World space
▪ Geometry▪ Eye▪ Screen plane▪ Screen pixels▪ Primary rays▪ Intersections▪ Point light▪ Shadow rays
Light transport
▪ Extension rays
Light transport
Note:
We are calculating light transport backwards.
INFOGR – Lecture 5 – “Graphics Fundamentals” 33
Ray Tracing
![Page 34: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/34.jpg)
Ray Tracing
INFOGR – Lecture 8 – “Ray Tracing”
![Page 35: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/35.jpg)
INFOGR – Lecture 5 – “Graphics Fundamentals” 35
Ray Tracing
![Page 36: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/36.jpg)
INFOGR – Lecture 5 – “Graphics Fundamentals” 36
Ray Tracing
![Page 37: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/37.jpg)
Physical basis
Ray tracing uses ray optics to simulate the behavior of light in a virtual environment.
It does so by finding light transport paths:
▪ From the ‘eye’▪ Through a pixel▪ Via scene surfaces▪ To one or more light sources.
At each surface, the light is modulated.The final value is deposited at the pixel (simulating reception by a sensor).
T. Whitted, “An Improved Illumination Model for Shaded Display”, ACM, 1980.
INFOGR – Lecture 5 – “Graphics Fundamentals” 37
Ray Tracing
![Page 38: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/38.jpg)
Intersections
Ray definition
A ray is an infinite line with a start point:
𝑝(𝑡) = 𝑂 + 𝑡𝐷, where 𝑡 > 0.
struct Ray{
float3 O; // ray originfloat3 D; // ray directionfloat t; // distance
};
The ray direction is generally normalized.
INFOGR – Lecture 5 – “Graphics Fundamentals” 38
![Page 39: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/39.jpg)
Ray setup
A ray is initially shot through a pixel on the screen plane. The screen plane is defined in world space:
Camera position: E = (0,0,0)
View direction: 𝑉
Screen center: C = 𝐸 + 𝑑𝑉Screen corners: p0 = 𝐶 + −1,1,0 , 𝑝1 = 𝐶 + 1,1,0 , 𝑝2 = 𝐶 + (−1, −1,0)
From here:
▪ Change FOV by altering 𝑑;▪ Transform camera by multiplying E, 𝑝0, 𝑝1, 𝑝2 with the camera matrix.
INFOGR – Lecture 5 – “Graphics Fundamentals” 39
Intersect
Only if 𝑉 = (0,0,1) of course.
![Page 40: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/40.jpg)
Ray setup
Point on the screen:
𝑝 𝑢, 𝑣 = 𝑝0 + 𝑢 𝑝1 − 𝑝0 + 𝑣(𝑝2 − 𝑝0), 𝑢, 𝑣 ∈ [0,1)
Ray direction (before normalization):
𝐷 = 𝑝 𝑢, 𝑣 − 𝐸
Ray origin:
𝑂 = 𝐸
𝑝1
𝑝0
𝑝2
𝐸
INFOGR – Lecture 5 – “Graphics Fundamentals” 40
Intersect
𝑝2
−𝑝
0
![Page 41: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/41.jpg)
Ray intersection
Given a ray 𝑝(𝑡) = 𝑂 + 𝑡𝐷, we determine the smallest intersection distance 𝑡 by intersecting the ray with each of the primitives in the scene.
Ray / plane intersection:
Plane: p ∙ 𝑁 + 𝑑 = 0
Ray: 𝑝(𝑡) = 𝑂 + 𝑡𝐷
Substituting for 𝑝(𝑡), we get
𝑂 + 𝑡𝐷 ∙ 𝑁 + 𝑑 = 0
𝑡 = −(𝑂 ∙ 𝑁 + 𝑑)/(𝐷 ∙ 𝑁)
𝑃 = 𝑂 + 𝑡𝐷
𝑝1
𝑝0
𝐸
INFOGR – Lecture 5 – “Graphics Fundamentals” 41
Intersect
𝑝2
![Page 42: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/42.jpg)
Intersect
Ray intersection
Ray / sphere intersection:
Sphere: 𝑝 − 𝐶 ∙ 𝑝 − 𝐶 − 𝑟2 = 0
Ray: 𝑝(𝑡) = 𝑂 + 𝑡𝐷
Substituting for 𝑝(𝑡), we get
𝑂 + 𝑡𝐷 − 𝐶 ∙ 𝑂 + 𝑡𝐷 − 𝐶 − 𝑟2 = 0
𝐷 ∙ 𝐷 𝑡2 + 2𝐷 ∙ 𝑂 − 𝐶 𝑡 + (𝑂 − 𝐶)2−𝑟2 = 0
𝑎𝑥2 + 𝑏𝑥 + 𝑐 = 0 → 𝑥 =−𝑏 ± 𝑏2 − 4𝑎𝑐
2𝑎
𝑎 = 𝐷 ∙ 𝐷
𝑏 = 2𝐷 ∙ (𝑂 − 𝐶)𝑐 = 𝑂 − 𝐶 ∙ 𝑂 − 𝐶 − 𝑟2
𝐸
Negative: no intersections
INFOGR – Lecture 5 – “Graphics Fundamentals” 42
𝑝1
𝑝0
𝑝2
![Page 43: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/43.jpg)
Ray Intersection
Efficient ray / sphere intersection:
void Sphere::IntersectSphere( Ray ray ){
vec3 c = this.pos - ray.O;float t = dot( c, ray.D );vec3 q = c - t * ray.D;float p2 = dot( q, q );if (p2 > sphere.r2) return; t -= sqrt( sphere.r2 – p2 );if ((t < ray.t) && (t > 0)) ray.t = t;// or: ray.t = min( ray.t, max( 0, t ) );
}
Note:
This only works for rays that start outside the sphere.
O
𝐷
Ԧ𝑐
t
Ԧ𝑞
𝑝2
Intersect
INFOGR – Lecture 5 – “Graphics Fundamentals” 43
![Page 44: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/44.jpg)
Today’s Agenda:
▪ Rasters
▪ Colors
▪ Ray Tracing
▪ Assignment P2
![Page 45: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/45.jpg)
Checkpoint
INFOGR – Lecture 5 – “Graphics Fundamentals” 45
Math Basics
▪ vector != point▪ planes, normals▪ spheres▪ dot product, cross product
Assignment P1
▪ template▪ rgb colors in 32-bit▪ coordinate systems in practice▪ OpenGL in C#▪ vertex buffers & shaders
Checkpoint 1: MIDTERM on May 16nd
Checkpoint 2: P2 on May 28th
![Page 46: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/46.jpg)
Assignment 2: ”Write a 2D ray tracer.”
▪ Using the template▪ Floating point pixels▪ Pretty easy minimal specs▪ Tons of extra challenges
Assignment 2
INFOGR – Lecture 5 – “Graphics Fundamentals” 46
https://ncase.me/sight-and-light
![Page 47: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/47.jpg)
Assignment 2: ”Write a 2D ray tracer.”
▪ Work in C#, C++, Java, ...▪ Work alone or in pairs
▪ Special challenges
▪ Fastest ray tracer▪ Smallest ray tracer
Assignment 2
INFOGR – Lecture 5 – “Graphics Fundamentals” 47
![Page 48: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/48.jpg)
Assignment 2
INFOGR – Lecture 5 – “Graphics Fundamentals” 48
www.youtube.com/watch?time_continue=37&v=iIIu7kPCN-8medium.com/@jerry.ylilammi/making-of-newton-protocol-e9ccde41af30
![Page 49: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/49.jpg)
Assignment 2: ”Write a 2D ray tracer.”
▪ Assignment now online▪ Deadline: May 28.
Assignment 2
INFOGR – Lecture 5 – “Graphics Fundamentals” 49
![Page 50: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/50.jpg)
Today’s Agenda:
▪ Rasters
▪ Colors
▪ Ray Tracing
▪ Assignment P2
![Page 51: INFOGR Computer Graphics - Universiteit Utrecht - rasters, colors... · dot product, cross product Assignment P1 template rgb colors in 32-bit coordinate systems in practice OpenGL](https://reader033.vdocuments.site/reader033/viewer/2022042712/5f9cd0aee780cb13b96023cc/html5/thumbnails/51.jpg)
INFOGR – Computer GraphicsJacco Bikker & Debabrata Panja - April-July 2019
END OF lecture 5: “Graphics Fundamentals”
Next lecture: “More on Ray Tracing”