Computer Game Development
The latest edition of this bestselling game development reference offers proven tips and techniques for the
real-time rendering of special effects and visualization data that are useful for beginners and seasoned game and
graphics programmers alike.
Exploring recent developments in the rapidly evolving eld of real-time rendering, GPU Pro 7: Advanced
Rendering Techniques assembles a high-quality collection of cutting-edge techniques for advanced graphics
processing unit (GPU) programming. It incorporates contributions from more than 30 experts who cover the latest
developments in graphics programming for games and movies.
The book covers advanced rendering techniques that run on the DirectX or OpenGL runtimes, as well as on any
other runtime with any language available. It details the specic challenges involved in creating games across the
most common consumer software platforms such as PCs, video consoles, and mobile devices.
The book includes coverage of geometry manipulation; rendering techniques, handheld devices programming,
effects in image space, lighting, 3D engine design, graphics-related tools, and environmental effects. It also
includes a dedicated section on general purpose GPU programming that covers CUDA and DirectCompute
examples.
In color throughout, GPU Pro 7 presents ready-to-use ideas and procedures that can help solve many of your daily
graphics programming challenges. Example programs with downloadable source code are also provided on the
book’s CRC Press web page.
A
d
v
a
n
c
e
d
R
e
n
d
e
r
i
n
g
T
e
c
h
n
i
q
u
e
s
s
e
u
q
i
n
h
c
e
T
g
n
i
r
e
d
n
e
R
d
e
c
n
a
v
d
A
R
e
n
d
e
r
i
A
d
v
a
n
c
e
d
n
g
T
e
c
h
n
i
q
u
e
s
K26802
ISBN 978-1-4987-4253-5
90000
ISBN: 978-1-4822-6461-6
90000
9 781498 742535
9 781482 264616
E
n
g
e
l
Edited by Wolfgang Engel
Advanced Rendering Techniques
This page intentionally left blank
This page intentionally left blank
Advanced Rendering Techniques
Edited by Wolfgang Engel
CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742
© 2016 by Taylor & Francis Group, LLC
CRC Press is an imprint of Taylor & Francis Group, an Informa business
No claim to original U.S. Government works
Version Date: 20160205
International Standard Book Number-13: 978-1-4987-4254-2 (eBook - PDF)
This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been made to publish reliable data and information, but
the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to
trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained.
If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical,
or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without
written permission from the publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://www.copyright.com/) or contact the Copyright
Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and registration for a
variety of users. For organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to
infringe.
Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com
and the CRC Press Web site at
http://www.crcpress.com
Contents
Acknowledgments
Web Materials
I Geometry Manipulation
Carsten Dachsbacher
1 Deferred Snow Deformation in Rise of the Tomb Raider
Anton Kai Michels and Peter Sikachev
1.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Snow Deformation: The Basic Approach . . . . . . . . . . . . .
1.5 Deferred Deformation . . . . . . . . . . . . . . . . . . . . . . .
1.6 Deformation Heightmap . . . . . . . . . . . . . . . . . . . . . .
1.7 Filling the Trail over Time . . . . . . . . . . . . . . . . . . . . .
1.8 Hardware Tessellation and Performance . . . . . . . . . . . . .
1.9 Future Applications
. . . . . . . . . . . . . . . . . . . . . . . .
1.10 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Catmull-Clark Subdivision Surfaces
Wade Brainerd
2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 The Call of Duty Method . . . . . . . . . . . . . . . . . . . . .
2.3 Regular Patches
. . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
Irregular Patches . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Filling Cracks . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 Going Further . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
v
xi
xiii
1
3
3
4
5
6
7
11
13
15
15
16
16
17
17
20
20
25
29
34
39
39
39
vi
II Lighting
Michal Valient
Contents
41
1 Clustered Shading: Assigning Lights Using Conservative
Rasterization in DirectX 12
Kevin ¨Ortegren and Emil Persson
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
1.2 Conservative Rasterization . . . . . . . . . . . . . . . . . . . . .
1.3
Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 Shading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5 Results and Analysis . . . . . . . . . . . . . . . . . . . . . . . .
1.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Fine Pruned Tiled Light Lists
Implementation Details
Morten S. Mikkelsen
2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Our Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
. . . . . . . . . . . . . . . . . . . . . .
2.5 Engine Integration . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Deferred Attribute Interpolation Shading
Christoph Schied and Carsten Dachsbacher
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3
Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Real-Time Volumetric Cloudscapes
43
43
44
44
55
56
67
67
69
69
69
71
73
76
78
79
80
81
83
83
84
87
94
95
96
97
Andrew Schneider
4.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Cloud Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Cloud Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Cloud Rendering . . . . . . . . . . . . . . . . . . . . . . . . . .
97
98
98
110
119
Contents
vii
4.6 Conclusion and Future Work . . . . . . . . . . . . . . . . . . .
4.7 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
III Rendering
Christopher Oat
1 Adaptive Virtual Textures
Ka Chen
1.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Procedural Virtual Textures Basics . . . . . . . . . . . . . . . .
1.3 Adaptive Virtual Textures . . . . . . . . . . . . . . . . . . . . .
1.4 Virtual Texture Best Practices
. . . . . . . . . . . . . . . . . .
1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Deferred Coarse Pixel Shading
Rahul P. Sathe and Tomasz Janczak
2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Introduction and Background . . . . . . . . . . . . . . . . . . .
2.3 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Progressive Rendering Using Multi-frame Sampling
Daniel Limberger, Karsten Tausche, Johannes Linke, and J¨urgen D¨ollner
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Multi-frame Rendering Techniques . . . . . . . . . . . . . . . .
3.4 Conclusion and Future Work . . . . . . . . . . . . . . . . . . .
3.5 Acknowledgment . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IV Mobile Devices
Marius Bjørge
1 Efficient Soft Shadows Based on Static Local Cubemap
Sylwester Bala and Roberto Lopez Mendez
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
125
126
126
129
131
131
131
131
137
143
144
145
145
145
146
151
151
153
155
155
156
160
169
170
170
173
175
175
175