Lecture 3 (Rendering Pipeline) Flashcards
What is the Direct3D 11 pipeline?
- ** Refer to a diagram please :)
- Input assembler
- Vertex Shaders
- Tesselation stages (optional)
- Geometry Shader (optional)
- Stream output (optional)
- Rasteriser (culling)
- Pixel Shader
- Output-merger
WTF is ‘Shaders’?
Vertex shader -> Shades a polygon based off the properties of its vertices e.g. colour
How does ‘Culling’ work? Which direction does that?
Clockwise = Render Anti-Clockwise = Don't render
What is ‘Double Buffering’? Why is it useful?
Images should be completely drawn before showing on the screen.
- Helps to reduce tearing.
WTF is a ‘Framerate’?
Number of times data is sent through the pipeline
e.g. 30 fps = data sent through the pipeline 30 times in a second
A higher framerate will result in smoother animations
WTF is ‘HLSL’?
High Level Shader Language in Unity
WTF is ‘Culling’?
Only rendering the side of the object which is visible to the viewer. The backside doesn’t get rendered therefore improves performance.
What is the ‘Input Assembler Stage’ (Direct3D 11 Pipeline)?
Building block stage
- Reads data from our buffers into a primitive format that can be used by the other stages of the pipeline
- Mainly use Triangle Lists (Refer to notes)
- This stage feeds into the Vertex Shader Stage of the Pipeline
What is the ‘Vertex Shader Stage’ (Direct3D 11 Pipeline)?
Performs operations on individual vertices received from the Input Assembler Stage
- This will typically include transformations
- May also include per-vertex lighting
- This stage feeds into the Tessellation Stages of the Pipeline
What are the ‘Tessellation Stages’? (Direct3D 11 Pipeline)
Adding additional polygons for more detail
- Optional stages (introduced with Direct3D 11)
- Enables generations of additional vertices within the GPU
- Can take a lower detail model and render it in higher detail
- Can perform level of detail scaling
- This stage feeds into the Geometry Shader Stage of the Pipeline
What is the ‘Geometry Shader Stage’ (Direct3D 11 Pipeline)?
Operations on an entire primitive (e.g. triangles) (as opposed to the Vertex Shader Stage which is performs operations on individual vertices)
- Optional stage (introduced with Direct3D 10)
- Can perform a number of algorithms:
- Dynamically calculating normals
- Particle systems
- Shadow volume generation
- This stage feeds into the Stream Output Stage (loop)/Rasterizer Stage of the Pipeline
What is the ‘Stream Output Stage’ (Direct3D 11 Pipeline)?
Receives data (vertices or primitives) from the geometry shader and feeds back into the pipeline for processing by another set of shaders
- Used to have the GPU do processing instead of the CPU
- Useful for particle systems update e.g. waves, ripples
- This stage feeds into Memory Resources then loops back up to any of the above stages
What is the ‘Rasterizer Stage’ (Direct3D 11 Pipeline)?
Converts vector information into a raster image (composed of pixels) for the purpose of displaying real-time 3D graphics
- Performs culling*
- This stage feeds into the Pixel Shader Stage of the Pipeline
What is the ‘Pixel (Fragment) Shader’ (Direct3D 11 Pipeline)?
Produces colour values for each interpolated pixel fragment
- Per-pixel lighting can be performed
- Can also produce depth values for depth-buffering
- This stage feeds into the Output-Merger Stage of the Pipeline
What is ‘Output-Merger Stage’ (Direct3D 11 Pipeline)?
Combines pixel shader output values to produce final image
- May also perform depth buffering