COMP 5822M: High Performance Graphics
This question paper consists
of 3 printed pages each
of which is identified by the Code COMP5822M
ý UNIVERSITY OF LEEDS
School of Computing
May 2018
COMP5822M: High Performance Graphics
Answer Four questions. Three from section A and one from section B
Time allowed: 2 hours
This exam is worth 40% of your final mark. The first three questions in section A of this paper must be answered and test core knowledge. In section B, you must choose one question to answer. In total you must answer 4 questions, each worth 10 marks. There are no additional marks for attempting more than 4 questions and marks will only be awarded for the first 4 you attempt.
Since this is a closed book exam, code examples do not need to be syntactically correct but they do need to demonstrate knowledge of the API, relevant objects, structs and workflow.
Page 1 of 3 TURN OVER
COMP 5822M: High Performance Graphics
Section A
(ANSWER ALL)
Q1. This question is about Vulkan API pipelines.
(a) This part of the question is about initialising Vulkan
(i) Explain what is meant by a Vulkan instance. Which Vulkan structs do you need to fill in to be able to package together all the information you need to create an instance?
(3 marks)
(ii) What API call do you make to actually create a Vulkan instance?
(iii) Which struct and pointers do you need to pass to this call?
(1 mark) (1 mark)
(b) Briefly, explain pipelines in Vulkan. Your answer must explain why you need to create multiple pipelines and how to create a Vulkan graphics pipeline. What types of objects and structures do you need to create a graphics pipeline?
(5 marks)
Q2. This question is about texture mapping in the Vulkan API.
(a) What steps do you need to follow to add simple texturing to a Vulkan application?
(b) This part of the question is about texture samplers
(i) What is a sampler?
(ii) Explain the basic idea behind Anisotropic filtering.
Q3. This question is about offscreen buffers in Vulkan.
(4 marks)
(1 mark) (5 marks)
(a) Explain the concept of the swapchain in Vulkan. Why is there no default framebuffer?
(b) What is a presentation surface in Vulkan?
(3 marks)
(2 marks)
(c) Explain what is meant by Deferred Shading, explain how multiple render targets are used in this technique. What are the advantages and limitations of Deferred Shading?
(5 marks) Page 2 of 3 TURN OVER
COMP 5822M: High Performance Graphics
Section B
(ANSWER 1 OF 3)
Q4. This question is about validation layers in Vulkan.
(a) Explain what validation layers in Vulkan are designed to achieve. Illustrate your answer with some examples to show both how to enable and use validation layers.
(10 marks)
Q5. This question is about Shadow Mapping and Anisotropic filtering
(a) Explain the general idea of Shadow Mapping, using diagrams to help illustrate your explanation. What problem will a very basic implementation suffer from and how can this be mitigated?
(5 marks)
(b) Show how you create and configure a texture sampler and how to query the device to check for Anisotropic filtering support.
(5 Marks)
Q6. This question is about Screen-Space Ambient Occlusion and off-screen buffers
(a) Outline in brief how Screen-Space Ambient Occlusion works and describe its limitations.
(5 marks)
(b) Outline how you would build a command buffer for rendering a scene to offscreen frame buffer attachments for a screen space ambient occlusion approach.
(5 marks)
Page 3 of 3 END