Revision Flashcards

(75 cards)

1
Q

Define pixel

A

Basic element on the screen, one piece of colour information

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Define framebuffer

A

The memory used to hold the pixels that make up the display

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Define video

A

The electronic signals generated to drive a monitor or a TV; contains colour and position information

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Define raster scan

A

Back/forward

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Define window

A

A hole on the screen letting you look into another world

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Pixel-patch paradigms

A

Ray-tracing and real-time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Ray tracing concept

A

Ray leaves eye and is tracked as it bounces back to its source

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Vector manipulations to know

A

Addition/subtraction
Scalar multiplication
Dot/cross products

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

3D transformations

A
Translate
Scale
Rotate
Viewing
Perspective
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Plane equation

A

ax + by + cz + d = 0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

(P - C) . N = 0

Define vectors

A

C: fixed point on plane (i, j, k)
N: normal to plane (a, b, c)
P: arbitrary point on plane (x, y, z)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

(P - C) . N = 0

Define equations

A

(i-x, j-y, k-z) . (a, b, c) = 0

(ai, bj, ck) - (ax + by + cz) = 0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Define normal

A

Given to vectors lying on a plane V and W:
Given V not parallel to W, N = V x W
(cross product)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Define line

A

Intersection of two planes.

P = A + (B - A)t
where A and B are beginning and end of line,
0 <= 1 (P = A if t = 0 or B if t = 1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Common raytracing vectors

A

C = camera position
S = screen
u, v = pixel unit vectors

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Raytracing: equation for middle of pixel position in real world (screen)

A

(i, j) = P = S + ui + vj

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Mathematical ray definition

A

C + t(S + ui + vj - C)

Behind camera if t < 0, in front if t > 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Raytracing algorithm

A

For each pixel:

  • Compute ray equation
  • Project ray into world space
  • If hits object, take on object colour. Else taken on background colour
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Sphere equation

A

x^2 + y^2 + z^2 = 1

Vector: X . X = 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Cylinder equation

A

x^2 + y^2 = 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

GLSL shader types

A

Vertex and fragment

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Define gl_FragColor

A

The fragment shader output - the current pixel on the screen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

“Position”, “Color” in vertex shader: purpose

A

Position receives the current vertex to be rendered

Color is used to pass the vertex colour to the fragment shader

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Hidden surface problem algorithms

A

Painter’s algorithm
Raycasting
Z-buffer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Define RenderMan
Software and API for network distributed rendering of ray-traced 3D views
26
Define viewport
A region of the screen being drawn to
27
Basic drawing component
Vertex/point
28
Polylines
Strips or loops
29
Evaluate 3D performance with...
Industry standard triangle: 50 pixels
30
Immediate mode problems
Vertex information sent to screen asap - high overhead
31
Vertex arrays
Process lists of vertices all at once. Sent to screen as batch
32
Vertex buffer objects
Vertex arrays cached on GPU to save transfer time on re-use
33
OpenGL meshes
Triangle strip, triangle fan
34
Vertex shader
Calculates position of the vertex on the screen (gl_Position) - executed per vertex
35
Fragment shader
Calculates colour of each pixel (gl_FragColor) - executed once per pixel position and interpolated between vertices
36
Fragment shader: 'in' source
Vertex shader output
37
Model matrix
Converts between object space and world space
38
View matrix
Converts between world space and eye space; coordinate system of camera
39
Projection matrix
Models the action of the camera
40
MVP scalar multiplication order
Projection x View x Model
41
Orthographic projection main feature
z value has no apparent effect on where things are drawn
42
Define perspective projection
Project the world onto a plane, along lines joining every point with the centre of projection
43
Synthetic camera model
Camera location, point to 'look at', vector pointing up relative to camera
44
Painter's algorithm
Draw furthest object first so nearer objects overwrite
45
Z-Buffer algorithm
Draw objects sequentially Calculate distance to each pixel on each object on camera Only draw colour information if pixel is current nearest
46
Animation
Use double buffers; swap when drawing complete
47
Tessellation shader (v4): purpose
Generates objects
48
Geometry shader (v3): purpose
Generates vertices
49
Bressenham algorithm (lines)
Step along x-axis Optionally step up - calculate decision variable differentially All calculations integer
50
Define convex polygon
Polygon with no regions inside its outer boundary
51
Define convex hull
Curve joining all convex vertices
52
Define complex polygon
Polygon whose lines cross when sides drawn in order specified
53
Edge tracking (XY) algorithm
Each row holds 2 X values Draw each edge, adding X position to each row as follows: ``` Array empty - add the value One element - add value, sort values Two elements: - Replace lowest if current X lower - Replace highest if current X higher ```
54
Convex filling algorithm
Edge tracking (XY)
55
Concave filling algorithm
Break into constituent triangles and fill all
56
Decompose polygon into constituent triangles
Find leftmost vertex A Attempt to form triangle ABC with adjacent vertices B and C If all other polygon points outside ABC, continue with next leftmost triangle Else attempt to form new triangle by connecting original leftmost point and leftmost of inside points
57
Define bilinear interpolation
Technique used to interpolate values across a polygon; uses linear approximation to calculate value at beginning and end of spans
58
Homogeneous coordinates: purpose
Allow transformations to be implemented as matrix operations
59
How to rotate P about Q
# Translate to origin Rotate by desired angle Translate back to original coordinate system
60
Construct parallel projection
Projection along the z axis. So, preserve x/y/w coordinates while setting z to 0. ``` Mpar = 1000 0100 0000 0001 ```
61
Define mipmap
Store texture map at highest resolution required and automatically downsample using Signal Processing Theory.
62
Mipmap pros/cons
+ Works very well | - Computationally expensive
63
Usage of GL_TEXTURE_MIN_FILTER
When the pixel being textured maps to an area larger than one texture element
64
Usage of GL_NEAREST
Pick nearest image element
65
Usage of environment map
Simulates reflections; picture taken from position of cube, texture with map
66
Define Bezier curve
Two control (end) points P1 and P4, two other control points P2 and P3 which control the shape of the curve
67
Importance of Bezier curves
Easy to convert from other types of spline; very easy to draw and manipulated; can be extended to 3D surfaces
68
Number of control points on Bezier patch
16
69
Drawing Bezier patch
Split patch into quadrants. If quadrant is flat, draw as a polygon - else, keep splitting until surface is flat enough, then draw polygon based on its four control points
70
OpenGL 4 GPU-based splines
Tessellation shaders and NURBS
71
Drawing Bezier curves
(big matrix) is the blending matrix. We can convert the control points by evaluating x and y components to calculate the correct parametric form.
72
Cohen-Sutherland line clipping
For both endpoints (y = ax + b) Split 9. Four bits (top, bottom, left, right) If and'd outcodes are non-zero or the same, line doesn't intersect. If 0000, no clipping Clip: - Bit 1: y = Ymax - Bit 2: y = Ymin - Bit 3: x = Xmax - Bit 4: x = Xmin
73
Liang-Barsky polygon clipping
# Choose any vertex, walk around polygon Determine if intersects sides of window. Form new edges (going in, going out, totally in, totally out) Create new list of vertices and edges inside window (for segments the size of the window, keep track of polygon re-entering through a different side)
74
View matrix / lookat
Compute a view direction vector Use cross product to compute vector at right angles between view direction and 'up' Recompute 'up' vector Scale all three vectors to unity
75
lookat advantages
Very fast; does not involve any trigonometry