This question paper consists
of 2 printed pages each
of which is identified by the Code COMP5822M
© UNIVERSITY OF LEEDS
School of Computing
May 2021
COMP5822M: High Performance Graphics
Answer all questions. There are 100 marks in total.
Submit a single PDF document with your answers.
Aids: You may use any reference materials you wish, including internet searches. You may use a calculator. You may use code that you have developed yourself or been provided by the instructor, if that helps you with the answer.
Time allowed: 50 hours
Question 1: GPU Architecture & Pipelines [10 marks]
A simple graphics programme in OpenGL requires less than 100 lines of code to set up the graphics environment. The equivalent programme in Vulkan requires well over 1000 lines of code. Why? Give full details of the reasoning behind this shift, including the major advantages and disadvantages.
Question 2: GLSL Conventions & Vertex Buffers [10 marks]
For each of the following values, explain whether they should be passed as uniform or varying, and give the reasoning behind your choice:
a) Vertex Position
b) Texture Coordinates
c) Texture Image
d) View Matrix
e) Lighting Parameters
Question 3: GPU Pipeline Stages [10 marks]
For each of the following tasks, explain which stage of a typical graphics pipeline it would typically be performed in:
a) Wireframe Rendering
b) Mesh Deformation
c) Depth Test
d) Particle Generation
e) Skinning
f) Bézier Normal Generation
g) Bézier Patch Generation
h) Barycentric Interpolation
i) Clipping
j) Multi-Sample Anti-Aliasing
Question 4: Indirect Lighting [10 marks]
Blinn-Phong does a poor job of simulating indirect lighting, but is simple and efficient in practice. Recursive raytracing is much better, but is still too expensive. What techniques would you choose to improve indirect lighting for each of the following, and why?
a) Asteroids in a spacecraft simulator
b) A desert landscape in a first person shooter
c) The interior of an aircraft hangar
d) The interior of a dark cavern with flickering light sources
e) A circus funhouse full of mirrors and reflections
Question 5: Coordinate Systems [10 marks]
It is possible to pass the transformation matrices to the fragment shader and compute Phong shading directly. Equally, it is possible to perform transformations in the vertex shader (the fixed-function solution). Which approach would you recommend, and why?
Question 6: Surface Frames [10 marks]
What is a surface frame and how do we compute them in practice? Give an example of a technique which relies on the surface frame.
Question 7: Motion Blur [10 marks]
Motion blur is a technique for simulating the blurring effect as our eyes track a fast moving object. Explain how it is implemented, and how we can use the depth buffer to accelerate the computation.
Question 8: Shadows [10 marks]
What is the most common method for computing shadows in current real-time engines? Explain how it works, and which stages of the graphics pipeline are used to compute it. Also explain the principal problems with the technique, and how they are resolved in practice.
Question 9: Subsurface Rendering [10 marks]
Realistic rendering of human skin requires techniques for subsurface scattering. Why? Describe the principal methods used at present to produce realistic skin rendering.
Question 10: Deferred Rendering [10 marks]
How do we use a modern graphics pipeline for deferred rendering? Explain what shaders you would need to write, and how they are connected to each other.