Emerging Technologies for Games Review & Revision Strategy CO3303
Exam Overview Third year exams have a different focus than second year exams: 2nd year: Explain process X; Describe concept Y 3rd year, some of the above, but also: Evaluate process X for use in situation Y; Compare techniques A & B Some marks for explaining module content But many marks for being able to evaluate what you have learnt Discussing topics rather than repeating them Applies to a greater or lesser extent to all exams
Exam Structure Structure of this module’s exam: Answer four questions out of six 25% each question Three hour exam Some questions might have many parts Still may require some lengthy answers Questions with few parts require considerable depth of discussion In any case, each mark is awarded for making a distinct point Rarely useful to repeat yourself
Topics: Quaternions / Animation Comparison of methods to store rotations Euler angles, Matrices, Angle-axis form & Quaternions Form of a quaternion with formulae Using quaternions (formulae in grey): Conversions, addition & scaling Combining quaternions, rotating vectors Linear interpolation of transforms Position / scaling; problems with rotation
Quaternions / Animation 2 Normalised linear interpolation (nlerp) Spherical linear interpolation (slerp) Discussion of basic and derived formulae Animation: Storage issues Transformation decomposition Keyframes Use of interpolation for in-between frames Multiway blending Bone masks Motion extraction
Optimisation Rationale for optimisation in games How and when to apply optimisation And when not to optimise Types of optimisation Speed, memory, bandwidth etc Optimisation techniques Loop unrolling, removing constant calculations etc. Applied techniques - may be given code to optimise Data structure and algorithm choice Memory / Cache Optimisation
Batching & Instancing State changes; impact on render performance Improving rendering process wrt state changes Batch size; impact on render performance Examples Instancing As a technique to render multiple models As a method to reduce batch sizes & state changes Use of geometry shader for camera-facing particles
Spatial Partitioning Rationale and uses for partitioning PVS for general partition schemes Generation, use & limitations Portal based partitions Usage, refinements, pros & cons BSP trees Construction, point location, use, pros & cons Quadtrees / Octrees Creation, location, usage, loose quadtrees Diagrams common in partitioning questions
Post Processing Front / back buffer usage, swap chains, VSync Render targets, post-processing, multiple render passes Post processing techniques: Colour filters, blur, bloom, distortion, depth of field, feedback Explanation of algorithms used for the above Full screen / Area / Polygon processing Adjustments required for each Diagrams essential in this topic
DirectX 10 Overview of changes for DX10 Geometry Shader How it fits in the rendering pipeline Basic purpose / usage Simple geometry shader techniques Stream Output Stage Purpose / Usage Location in pipeline Example of use (e.g. GPU particles)
Linear Dynamics / Particle Physics Initial value methods: Definition of and need for Euler’s method, Mid-point method, Verlets Relative benefits/drawbacks Equations for each Do not need to derive equations though Connected particle systems: Spring formula (Hooke’s law) Other connector types Solving constraints Application to skinning
Miscellaneous Techniques Covered very specific techniques for: Deferred Rendering Tessellation Water Rendering Soft particles & sorting blended polygons Questions may cover theory and practice of these methods
Example Questions i) Explain how full-screen post-processing effects are performed in general. Illustrate your answer with a diagram ii) Describe a process to produce a depth of field effect using post-processing i) Explain the terms lerp, nlerp and slerp. Provide the formulae relevant to your answer. ii) Discuss the advantages and disadvantages of nlerp & slerp for animation of rotations Further examples provided on past paper and worksheet