Module Code: COMP 5822M
Module Title: High Performance Graphics
School of Computing Calculator instructions:
You are not allowed to use a calculator in this exam.
Dictionary instructions:
© UNIVERSITY OF LEEDS Semester Two 2018/2019
You are not allowed to use your own dictionary in this exam. A basic English dictionary is available to use: raise your hand and ask an invigilator, if you need it.
Exam information:
Answer four questions. Three from section A and one from section B
There will be 2 hours to complete this exam.
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 20 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 7 Turn the page over
Module Code: COMP 5822M
Section A (ANSWER ALL)
Question 1
This question is about implementing a basic Vulkan application.
(a) Briefly list the basic steps involved in setting up a basic Vulkan application.
(b) Why do we need command buffers in Vulkan? What is the advantage of such a mechanism?
[11 marks]
[3 marks]
(c) Outline the basic commands that should be recorded when creating a command buffer (you should consider there are vertex buffers and uniform buffers)?
[6 marks]
[Question 1 Total: 20 marks]
Page 2 of 7 Turn the page over
Module Code: COMP 5822M
Question 2
This question is concerning texture mapping in Vulkan.
(a) Briefly provide an overview of the basic steps for simple texture mapping in Vulkan.
[8 marks]
(b) Explain how to determine the value of a pixel with texture sampling in mipmapping?
[6 marks]
(c) How would you check whether a graphics card supports anisotropic filtering in Vulkan? How would you switch on anisotropic filtering in Vulkan?
[6 marks]
[Question 2 Total: 20 marks]
Page 3 of 7 Turn the page over
Module Code: COMP 5822M
Question 3
This question is concerning shadow mapping in Vulkan.
(a) Describe the necessary steps that are needed to create a depth buffer and support depth testing in Vulkan.
[7 marks]
(b) What is the general idea of the Shadow Mapping algorithm? You should also use diagrams to help illustrate your explanation.
[8 marks]
(c) Briefly give the main steps in the basic implementation of Shadow Mapping. What problem will the basic implementation cause and how can this be mitigated?
[5 marks]
[Question 3 Total: 20 marks]
Page 4 of 7 Turn the page over
Module Code: COMP 5822M
Section B
(Answer 1 of the 3 questions)
Question 4
This question is concerning synchronization in Vulkan and Shadow Mapping. (a) Explain the purposes of fences and semaphores in Vulkan.
[2 marks]
(b) Describe how the semaphores and fences are used to support the synchronization of drawing frames in Vulkan.
[10 marks]
(c) Give a general overview of the Percentage-Closer Filtering technique for shadow map filtering.
[8 marks]
[Question 4 Total: 20 marks]
Page 5 of 7 Turn the page over
Module Code: COMP 5822M
Question 5
This question is concerning Normal Mapping.
(a) What are the Tangent Space Coordinates? Explain how to compute the Tangent Space Coordinates for a vertex in a triangle mesh, with the help of texture coordinates. You should write the essential formula for clear explanation.
[10 marks]
(b) Write the pseudocode in the GLSL vertex/fragment shaders for calculating new diffuse values with the normal map. (The code does not need to be syntactically correct, but you should demonstrate the clear steps with clear variable names. The vertex position and normal/tangent/bitangent vectors are given as input in the vertex buffer, and they are represented in the object space. You can just write the parts inside the main function.)
[10 marks]
[Question 5 Total: 20 marks]
Page 6 of 7 Turn the page over
Module Code: COMP 5822M
Question 6
This question is concerning Pre-Computed Radiance Transfer and Caustic Mapping.
(a) What is the idea behind Precomputed Radiance Transfer (PRT)? What are the assumptions of PRT implementation?
(b) List the main steps for implementing Precomputed Radiance Transfer. (c) Briefly describe the key idea behind Caustic Mapping.
[8 marks]
[7 marks]
[5 marks]
Page 7 of 7 End
[Question 6 Total: 20 marks]