Revision Flashcards

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
Q

Define RenderMan

A

Software and API for network distributed rendering of ray-traced 3D views

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

Define viewport

A

A region of the screen being drawn to

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

Basic drawing component

A

Vertex/point

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

Polylines

A

Strips or loops

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

Evaluate 3D performance with…

A

Industry standard triangle: 50 pixels

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

Immediate mode problems

A

Vertex information sent to screen asap - high overhead

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

Vertex arrays

A

Process lists of vertices all at once. Sent to screen as batch

32
Q

Vertex buffer objects

A

Vertex arrays cached on GPU to save transfer time on re-use

33
Q

OpenGL meshes

A

Triangle strip, triangle fan

34
Q

Vertex shader

A

Calculates position of the vertex on the screen (gl_Position) - executed per vertex

35
Q

Fragment shader

A

Calculates colour of each pixel (gl_FragColor) - executed once per pixel position and interpolated between vertices

36
Q

Fragment shader: ‘in’ source

A

Vertex shader output

37
Q

Model matrix

A

Converts between object space and world space

38
Q

View matrix

A

Converts between world space and eye space; coordinate system of camera

39
Q

Projection matrix

A

Models the action of the camera

40
Q

MVP scalar multiplication order

A

Projection x View x Model

41
Q

Orthographic projection main feature

A

z value has no apparent effect on where things are drawn

42
Q

Define perspective projection

A

Project the world onto a plane, along lines joining every point with the centre of projection

43
Q

Synthetic camera model

A

Camera location, point to ‘look at’, vector pointing up relative to camera

44
Q

Painter’s algorithm

A

Draw furthest object first so nearer objects overwrite

45
Q

Z-Buffer algorithm

A

Draw objects sequentially
Calculate distance to each pixel on each object on camera
Only draw colour information if pixel is current nearest

46
Q

Animation

A

Use double buffers; swap when drawing complete

47
Q

Tessellation shader (v4): purpose

A

Generates objects

48
Q

Geometry shader (v3): purpose

A

Generates vertices

49
Q

Bressenham algorithm (lines)

A

Step along x-axis
Optionally step up - calculate decision variable differentially
All calculations integer

50
Q

Define convex polygon

A

Polygon with no regions inside its outer boundary

51
Q

Define convex hull

A

Curve joining all convex vertices

52
Q

Define complex polygon

A

Polygon whose lines cross when sides drawn in order specified

53
Q

Edge tracking (XY) algorithm

A

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
Q

Convex filling algorithm

A

Edge tracking (XY)

55
Q

Concave filling algorithm

A

Break into constituent triangles and fill all

56
Q

Decompose polygon into constituent triangles

A

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
Q

Define bilinear interpolation

A

Technique used to interpolate values across a polygon; uses linear approximation to calculate value at beginning and end of spans

58
Q

Homogeneous coordinates: purpose

A

Allow transformations to be implemented as matrix operations

59
Q

How to rotate P about Q

A

Translate to origin

Rotate by desired angle

Translate back to original coordinate system

60
Q

Construct parallel projection

A

Projection along the z axis. So, preserve x/y/w coordinates while setting z to 0.

Mpar =
1000
0100
0000
0001
61
Q

Define mipmap

A

Store texture map at highest resolution required and automatically downsample using Signal Processing Theory.

62
Q

Mipmap pros/cons

A

+ Works very well

- Computationally expensive

63
Q

Usage of GL_TEXTURE_MIN_FILTER

A

When the pixel being textured maps to an area larger than one texture element

64
Q

Usage of GL_NEAREST

A

Pick nearest image element

65
Q

Usage of environment map

A

Simulates reflections; picture taken from position of cube, texture with map

66
Q

Define Bezier curve

A

Two control (end) points P1 and P4, two other control points P2 and P3 which control the shape of the curve

67
Q

Importance of Bezier curves

A

Easy to convert from other types of spline; very easy to draw and manipulated; can be extended to 3D surfaces

68
Q

Number of control points on Bezier patch

A

16

69
Q

Drawing Bezier patch

A

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
Q

OpenGL 4 GPU-based splines

A

Tessellation shaders and NURBS

71
Q

Drawing Bezier curves

A

(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
Q

Cohen-Sutherland line clipping

A

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
Q

Liang-Barsky polygon clipping

A

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
Q

View matrix / lookat

A

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
Q

lookat advantages

A

Very fast; does not involve any trigonometry