Computer Graphics Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

What are the 4 high level stages of the rendering pipeline?

A
  1. Application 2. Geometry processing 3. Rasterization 4. Pixel Processing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a frustum?

A

Portion of a solid that lies between two parallel planes.

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

Draw the frustum of a perspective view volume.

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

Name as many potential responsibilities of the application stage as possible.

A
  • Collision Detection
  • Global Acceleration Algorithms (Culling)
  • Animation
  • Physics Simulation
  • User Input
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is culling?

A

Removing surfaces that are not visible to the camera from the rendering process.

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

Describe in a single sentence what the geometry processing stage does.

A

Performs transforms, projections, and other operations on a scene’s geometry to prepare it for rasterization.

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

Describe in a single sentence what the Rasterization stage does.

A

Transforms geometric primitives into 2D pixel fragments that can be processed in the next stage.

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

Describe in a single sentence what the Pixel-Processing stage does.

A

As the name suggests, performs per-pixel processing to determine the final color of each pixel as well as depth testing and some other various operations to determine visibility of each fragment.

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

Describe what a compute shader is.

A

A compute shader is a program that does generic processing unrelated to the graphics pipeline, but can be run on a GPU to exploit its high amounts of parallelism.

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

What does superscalar construction accomplish?

A

Instruction level parallelism without using separate CPUs / cores.

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

What are the four sub-stages of Geometry Processing?

A
  1. Vertex Shading
  2. Projection
  3. Clipping
  4. Screen Mapping
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Name as many potential responsibilities of the vertex shader as possible.

A
  • Compute vertex position.
  • Compute texture coordinates.
  • Compute surface normal.
  • Compute lighting data.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Describe vertex shading vs per-pixel shading.

A

Vertex shading computes the light value of a surface by storing that value in the vertex data and interpolating it across the entire surface.

Per-pixel shading computes the light value of each pixel individually, resulting in higher fidelity.

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

Describe the transformations required to take a model and display it on the screen in terms of the intermediate coordinate spaces.

A
  1. Model Space -> World Space
  2. World Space -> View Space
  3. View Space -> Clip Space
  4. Clip Space -> Normalized Device Coordinates
  5. Normalized Device Coordinates -> Screen Space
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Describe what the purpose of shading is.

A

To determine what effect a light has on a material.

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

Perspective Division transforms _____ coordinates to _____ coordinates.

A

Clip / Normalized Device

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

You use a Projection Matrix to transform _____ space into _____ space.

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

What does the Projection sub-stage of Geometry Processing do?

A

Transforms the view volume into a unit cube.

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

What are the two primary classes of projection?

A

Orthographic and Perspective

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

Describe the difference between orthographic and perspective projection.

A

Orthographic (or parallel) projection utilizes a rectangular view volume to project view space into the unit cube. Thus, distance from the camera in view space has no impact on the size or position of geometry in the projected space.

Pespective projection utilizes the frustrum of a pyramid as the view volume to project view space into the unit cube. This results in objects further from the camera to appear smaller in the projected space.

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

What are the 3 main types of optional vertex processing?

A
  1. Tesselation
  2. Geometry Shading
  3. Stream Output
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What are the two shaders that make up a tesselator?

A

Hull and Domain

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

What is a primary way in which tesselation is used?

A

To dynamically add or remove detail from geometry depending on distance from the camera.

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

What is the purpose of geometry shading?

A

Generates new vertices on the fly based on existing vertex data.

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

Name one primary use of geometry shading.

A

Particle systems.

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

What is the optional Stream Output substage of Geometry Processing?

A

A way for the programmer to halt the pipeline and output geometry data before rasterization.

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

Describe the purpose of clipping in a single sentence.

A

To get rid of any geometry that exists outside of the view volume.

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

When does clipping happen in the pipeline? (what happens right before and after?)

A

Projection -> Clipping -> Screen Mapping

29
Q

Describe what the Rasterization stage does in one sentence.

A

To figure out which pixels are covered by geometry and generate fragments of what those pixels should look like.

30
Q

Name two techniques for determining whether or not a pixel is inside some primitive.

A
  1. Point sampling
  2. Conservative rasterization
31
Q

Describe how point sampling works.

A

Point sampling takes one or more “samples” from inside a pixel and checks to see if those samples are inside of some primitive.

32
Q

How does conservative rasterization differ from point sampling?

A

It marks a pixel as “inside” if any part of it covers a primitive.

33
Q

What sort of data does a pixel fragment have?

A
  • Depth
  • Shading data
  • Color
34
Q

What are the two subtages of Pixel Processing?

A
  1. Pixel Shading
  2. Merging
35
Q

What is the programmable section of Geometry Processing?

A

Vertex Shader

36
Q

What is the programmable part of the Pixel Processing stage?

A

Pixel (or Fragment) shader.

37
Q

Texturing is primarily performed during ______.

A

Pixel Shading

38
Q

Describe how the pixel processing stage figures out which pixels should be displayed, and which should be discarded based on visibility.

A

For each pixel, it has a corresponding entry in something called the z-buffer. For each pixel fragment, we check the value currently in the z-buffer. If this fragment is closer to the camera than the value currently in the z-buffer, we will draw this fragment. If not, it is discarded.

39
Q

What do we call the buffer that holds the color values for all the pixels?

A

Framebuffer.

40
Q

Describe how double-buffered rendering works.

A

The framebuffer that exists for the pixels currently displayed on the screen is referred to as a “front buffer”. When we are drawing pixels for a new frame, we render them to what is called the “back buffer”. Once all pixels are drawn for a given frame, we then do a swap of the front and back buffers, so that we are never drawing partially rendered frames.

41
Q

Describe the limitations of the z-buffer method of resolving depth in regard to transparency.

A

Since transparent pixels rely on knowing what pixels exist behind it in order to determine their color value, we must process all transparent pixel fragments in back to front order after all oblique pixel fragments are processed using the z-buffer method.

42
Q

What do we call it when we process pixel fragments in back to front order?

A

The Painter’s Algorithm.

43
Q

How does the stencil buffer control rendering?

A

A stencil buffer can control which pixels can actually be rendered.

44
Q
A
45
Q

What do we call the isolated processors on the GPU?

A

Shader Cores

46
Q

What does it mean to say that the GPU is a “stream processor”?

A
47
Q

What is a GPU thread?

A

An instance of a running shader.

48
Q

What is a warp or wavefront?

A

A group of threads that are instances of the same shader program. Grouped together for GPU scheduling.

49
Q

How are all the threads in a warp executed?

A

In lockstep.

50
Q

Under what situation(s) is a warp swapped out?

A

Generally when a long running operation that would otherwise stall the GPU is called, like reading a texture from memory.

51
Q

Why do we want to keep register use in threads low?

A

So we can have more threads, which gives us a greater ability to hide latency.

52
Q

What is thread divergence?

A

When threads in the same warp take seperate paths when reaching some sort of branch in the code.

Occurs because of conditions that are based on data that is different across threads.

53
Q

What is a Unified Shader Design?

A

A programming model that is shared by all types of shaders for a GPU (vertex, pixel, geometry, etc)

54
Q

Shading Language for DirectX - ____
Shading Language for OpenGL - ____

A
  1. HLSL (High Level Shading Language)
  2. GLSL (OpenGL Shading Language)
55
Q

What are the two types of shader input?

A

Uniform - constant across threads.

Varying - differs from thread to thread.

56
Q

What are the two types of flow control in shaders?

A

Static Flow Control - branching based on uniform inputs.

Dynamic Flow Control - branching based on varying inputs.

57
Q

What do we call the stage right before Vertex Shading?

A

Input Assembly

58
Q

What are the two types of shaders in the Tesselation stage?

A

Hull shader and Domain shader

59
Q

Describe what a hull shader does.

A

A hull shader takes in a patch, and figures out how many triangles need to be rendered for it and does some processing on the control points.

60
Q

What is a patch? (Tesselation)

A

It is a primitive that can represent a number of different types of geometry. It consists of control points, which help define the shape of the geometry.

61
Q

Describe what the tesselator does.

A

Takes in data and tesselation factors from the hull shader and creates new vertices based on that data.

The tesselator is non-programmable.

62
Q

What are tesselation factors?

A

Values that determine how much detail is used when geometry is created by the tesselator.

63
Q

Describe the two types of tesselation factors.

A

Inner - defines the amount of tesselation used inside a primitive.

Outer - defines the amount of tesselation used on the edges of a primitive.

64
Q

What is a common way for the hull shader to indicate to the tesselator that a primitive should be discarded?

A

Send 0 or NaN as outer TF.

65
Q

Describe what the domain shader does.

A

Determines the final vertex location for vertices generated by the tesselator.

66
Q

What is an Unordered Access View (UAV) and what does it allow us to do?

A

It is a buffer that allows pixel shaders to write to arbitrary pixel locations instead of just the location of the current fragment that is being processed.

67
Q
A
68
Q
A