lec 3 - The rendering pipeline Flashcards

1
Q

Why have a rendering pipeline?

A

It allows the programmer to perform a number of different operations on the input data, and provides greater efficiency

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

How does the graphics card represent object?

A

As triangles

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

What is the rendering pipeline?

A
  1. Input Assembler Stage
  2. Vertex Shader
  3. Tesselation stages
  4. Geometry shader
  5. Stream Output stage
  6. Rasterizer stage
  7. Pixel shader
  8. Output merger
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What happens at the Input assembler stage?

A

data is read from buffers into a primitive format that can be used by the other stages of the pipeline. Triangle lists are mainly used.

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

What happens at the vertex shader stage?

A

Operations are preformed on individual vertices received from the Input Assembler stage.
This will typically include transformations
May also include per-vertex lighting.

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

Why are vertex shader transformations needed?

A

Objects are typically created in their local space and need to be brought into world space. This is done via transformations.

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

What happens in the tesselation stages?

A

Is an optional Stage. These stages allow us to generate additional vertices within the GPU
Can take a lower detail model and render in higher detail
Can perform level of detail scaling

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

What happens in the Geometry Shader stage?

A

Optional Stage
Operates on an entire primitive (e.g. triangle)
Can perform a number of algorithms, e.g. dynamically calculating normals, particle systems, shadow volume generation

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

What happens in the Stream Output stage?

A

Allows us to receive data (vertices or primitives) from the geometry shader or vertex shader and feed back into pipeline for processing by another set of shaders. Useful e.g. for particle systems

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

What happens in the rasterizer stage?

A

Interpolates data between vertices to produce per-pixel data
Clips primitives into view frustum
Performs culling

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

What is culling?

A

In order to avoid rendering vertices that will not be displayed in the final image ‘culling’ is preformed.
Triangles facing away from the camera will be culled and not rendered

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

What is counter-clockwise culling?

A

Triangles with vertices in a counter-clockwise order are not rendered. The order of vertices is therefore important

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

What happens in the pixel (fragment) shader stage?

A

Produces colour values for each interpolated pixel fragment
Per-pixel lighting can be performed
Can also produce depth values for depth-buffering

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

What happens at the Output merger stage?

A

Combines pixel shader output values to produce final image

May also perform depth buffering

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

What is double buffering?

A

Don’t want to draw objects directly to the screen
The screen could update before a new frame has been completely drawn
Instead, draw next frame to a buffer and swap buffers when complete.

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