Book Cover

Book Contents


Section Editors



ShaderX6 - Advanced Rendering Techniques

About the Authors

Khashayar Arman
Khashayar Arman received his Master of Science degree with Honor in 2006 from the Budapest University of Technology and Economics and is currently employed as an IT Associate at Morgan Stanley UK. In his spare time, he enjoys working on computer graphics related algorithms and techniques. His favorite research interests are real-time rendering and shader programming.

Wessam Bahnassi
Wessam has been working in computer graphics and game development for over 8 years now, concentrating on 3D engine and pipeline tools development. At In|Framez, he lead the development team for several games and real-time demos. He has many contributions and publications in graphics and programming in general, and has been a Microsoft Most Valuable Professional (MVP) for DirectX technologies for 5 years and until now. Currently, he works at Electronics Arts Montreal, doing console and PC graphics and game programming for some of EA's great titles.

Rui Bastos
Rui Bastos is a member of the GPU architecture group at NVIDIA, where he has contributed to the design of GeForce chips since 1999.  He received a Ph.D. (1999) and an M.S. (1997) in computer science from the University of North Carolina at Chapel Hill, and an M.S. in computer science (1992) and a B.S. in physics (1988) from the Federal University of Rio Grande do Sul (Brazil).

Maxime Beaudoin
Maxime Beaudoin is a 3D graphics programmer at Ubisoft Quebec studio, Canada. He started to learn real-time 3D graphics by himself in 2001 and received his B.S. degree in computer science in 2003. Since 2005, he has been working for Ubisoft during the day and developing his own next-gen game engine with some friends during his free time.

Kristof Beets
Kristof is Business Development Manager for POWERVR Graphics in the Business Development Group at Imagination Technologies. Previously, he worked as a development engineer on SDKs and tools for both PC and mobile products as a member of the POWERVR Developer Relations Team. Kristof has a first degree in electrical engineering and a master's degree in artificial intelligence, both from the University of Leuven, Belgium. Previous articles and tutorials have been published in ShaderX2 & ShaderX5, ARM IQ Magazine, and online by the Khronos Group, Beyond3D and 3Dfx Interactive.

Ken Catterall
Ken graduated from the University of Toronto in 2005 as a specialist in software engineering, where he developed an interest in computer graphics. Subsequently he has been working as a member of Imagination Technologies' Business Relations team as a Developer Engineer. Ken has worked on a wide range of 3D demos for Imagination's POWERVR Insider ecosystem program as well as supporting Imaginations network of developer partners.

Joăo Luiz Dihl Comba
Joăo Luiz Dihl Comba received a B.Sc. degree in computer science from the Federal  University of Rio Grande do Sul, Brazil, an M.Sc. degree in computer science from the Federal University of Rio de Janeiro, Brazil, and a Ph.D. degree in computer science from Stanford University. He is an associate professor of computer science at the Federal University of Rio Grande do Sul, Brazil. His main research interests are in graphics, visualization, spatial data structures, and applied computational geometry. His current projects include the development of algorithms for large-scale scientific visualization, data structures for point-based modeling and rendering, and general-purpose computing using graphics hardware. He is a member of the ACM Siggraph.

Keszegh Csaba
Csaba finished his studies at Eötvös Loránd University Faculty of Informatics. Now he works for Kishonti Informatics, as senior programmer.
His main work area includes 3D engine design, and porting the native benchmarks to different mobile platforms. He also has experience in image compression, and shader programming.

Jonathan Feldstein
Jonathan Feldstein is a graduate from the University of Waterloo. He has subsequently worked for a large Toronto studio on several computer animated television projects, the movie Silent Hill, and a variety of production tools. Jonathan has most recently made the transition over to mobile game development as a part of the AMD Imageon SDK team.

Markus Giegl
Markus holds a Master in Theoretical Physics and recently earned a Ph.D. in Computer Graphics in parallel to his work as Community Manager in an EU project. He loves anything that challenges his creativity and has, amongst others, worked as game developer, database architect, cartoon book author, designer and inventor. He lives in Austria in the world’s 3rd most livable city, together with his wife and 3 year old son. If you live in NY, feel free to drop him a line.

Holger Gruen
Holger ventured into 3D real-time graphics writing fast software rasterizers. Since then he has held research and development positions in the games and the simulation industry. He got into developer relations pretty recently and now works for AMD’s graphics products group. Holger, his wife, and his four kids live close to Munich near the Alps.

Tze-Yui Ho
Tze-Yui Ho received the Master degree in electronic engineering from City University of Hong Kong in 2007. He is currently a PhD student in the Department of Electronic Engineering, City University of Hong Kong. His research interests include global illumination algorithms and GPU programming. He has several years GPU programming experience.

Szabolcs Horváth
Szabolcs is a member of the GLBenchmark group working for Kishonti Informatics. He implements graphics effects and his area of specialty is shader programming. During his graduation at Eötvös Loránd University Faculty of Informatics he researched digital image processing and got experienced in geographic information systems.

Laszlo Kishonti
Laszlo is founder and CEO of Kishonti Informatics, the leading mobile benchmarking company based in Budapest, Hungary. Hi is involved in performance analytics and optimizations of 3D benchmarks and data compression for mobile devices. Before launching his company, Laszlo worked several years in the securities industry, pricing, investing and benchmarking fixed income and derivative instruments.

Jerome Ko
Jerome Ko completed his undergraduate studies at the University of California, San Diego in 2007 with a degree in Mathematics - Computer Science. He is now currently working as a software engineer at Bunkspeed, focusing mostly on computer graphics. His current interests include realistic and real-time rendering.

Manny Ko
Manny Ko got his undergraduate and graduate education at Stanford University. He is at Naughty Dog doing mostly global illumination related work for the PS3. Previously he worked for Adobe, Multigen and Pixar.

Jesse Laeuchli
Jesse is a software developer at ESRI in Redlands, California, working on 3D GIS software.  His articles have appeared in Game Programming Gems 2, Graphics Programming Methods, ShaderX2, ShaderX3, and More OpenGL Game Programming. He graduated from The University of Notre Dame, and has lived overseas for much of his life in countries such as the Central African Republic, Hungary, China, Saudi Arabia, and Taiwan.

Chi-Sing Leung
Chi Sing Leung is currently an Associate Professor in the Department of Electronic Engineering, City University of Hong Kong.   His research interests include neural computing, global illumination algorithms and GPU programming.  He has published over 60 international journal papers.  In 2005, he received the 2005 IEEE Transactions on Multimedia Prize Paper Award for his paper titled, “The Plenoptic Illumination Function'” published in 2002. His research interests include global illumination algorithms and GPU programming. 

Sylvain Lefebvre
Sylvain completed his PhD in 2004 at INRIA Rhône-Alpes (France), under the supervision of Fabrice Neyret. He then joined Microsoft Research as a postdoc and worked with Hugues Hoppe on real-time texture synthesis and texturing. In 2006 he joined INRIA Sophia-Antipolis (France) as a full-time researcher. His main interests are in automated content creation and compact data structures for interactive applications. In his spare time, Sylvain enjoys developing small pointless games (

Jörn Loviscach
Jörn Loviscach is a professor of computer graphics, animation, and simulation at Hochschule Bremen, a University of Applied Sciences. He has authored and co-authored numerous academic and not-so-academic publications on computer graphics and on techniques for human-computer interaction.

Jonathan Maďm
Jonathan Maďm is a Ph.D student at VRlab at the Swiss Federal Institute of Technology in Lausanne (EPFL). In April 2005, he receives a Master Degree in Computer Science from EPFL after achieving his Master Project at the University of Montreal. His research efforts are concentrated on real-time crowd rendering, animation, and system architecture.

Morgan McGuire
Morgan McGuire is an Assistant Professor of Computer Science at Williams College and games industry consultant on titles including Titan Quest (2006), ROBLOX (2005), and Zen of Sudoku (2006).  His research interests are game design and techniques that merge real-time computer vision and 3D rendering.

Frank Nielsen
Frank Nielsen is a researcher of  Sony Computer Science Laboratories and Professor at Ecole Polytechnique (LIX).  He prepared and received  his Ph. D. in computational geometry at INRIA /University of Nice (France) in 1996. His research interests include computational information geometry, vision, graphics, optimization and learning. Frank wrote numerous scientific journal and conference papers, and blogs  at

Anders Nivfors
Anders Nivfors received a BSc degree in computer science from Kalmar University, Sweden and a MSc in computer science from Uppsala University, Sweden. He works now at EA DICE as a tools programmer.

Christopher Oat
Christopher Oat is a member of AMD's Game Computing Applications Group where he is the technical lead for the group's demo team. In this role, he focuses on the development of cutting-edge rendering techniques for the latest graphics platforms. Christopher has published several articles in the ShaderX and Game Programming Gems series and has presented his work at graphics and game developer conferences around the world.

Damyan Pepper
Damyan Pepper has worked at Black Rock Studio since 2000 as a programmer on the MotoGP series.  He's been involved in developing Black Rock's proprietary modelling and texturing package, Tomcat.  He's currently the lead engine programmer on Black Rock's first release since becoming part of Disney Interactive Studios.

Emil Persson
Emil is a game developer working for Avalanche Studios. Previously Emil spent three years at ATI working as an ISV Engineer assisting the world's top game developers with optimizations and taking advantage of the latest hardware features. Emil also had a pivotal role in providing sample applications and technical papers for the ATI Radeon SDK. As a side project Emil writes demo applications for his site showing interesting techniques, tricks or just plain eye-candy.

Maurice Ribble
Maurice Ribble is a software engineer on the handheld 3D group at AMD where he works on OpenGL ES 2.0 drivers for handheld GPUs.  Over the past six years Maurice had worked on the desktop OpenGL driver team and the applications research group at AMD.  He received a BS in Computer Engineering at Milwaukee School of Engineering in 2001.

Pawel Rohleder
Pawel is interested in computer graphics and game programming since he was born :). He started programming games professionally in 2002, received a master's degree in computer science at Wroclaw University of Technology in 2004 and works since 2006 as a 3D graphics programmer at Techland. He is a PhD student in computer graphics (at Wroclaw University of Technology, since 2004).

Vlad Stamate
Vlad Stamate works in the R&D department of SCEA, leading the GPU performance analysis software team for the PLAYSTATION 3 console. Previous to that he worked as an engineer for Imagination Technologies taking part in developing OpenGL Linux drivers. He graduated Summa Cum Laudae from the Richmond University London in 2001. He spends most of his time researching graphics algorithms that apply to modern graphics and central processing hardware ranging from PCs to Next Generation consoles. He is also known to spend thinking cycles on game search algorithms like Chess. Vlad has published articles in the Shader X series of books (specifically in ShaderX3 and ShaderX 4) and presented at Game Developers Conference in 2007 (as part of a full-day tutorial).

László Szécsi
László Szécsi is an assistant professor at the Budapest University of Technology and Economics. He is lecturing on computer graphics, game development, GPU programming and object-oriented programming. His research interests include interactive global illumination rendering and procedural geometry modelling.

László Szirmay-Kalos
László Szirmay-Kalos is the head of Department of Control Engineering and Information Technology at the Budapest University of Technology and Economics in Hungary.
His research interests include Monte Carlo global illumination algorithms and GPU based photorealistic image synthesis. He is the author of several books and more than a hundred papers in this field. He has been responsible for illumination methods in the GameTools project and leads distributed GPU based visualization research in cooperation with HP.

Daniel Thalmann
Daniel Thalmann is Professor and Director of The Virtual Reality Lab (VRlab) at EPFL, Switzerland. He is a pioneer in research on Virtual Humans. He is coeditor-in-chief of the Journal of Computer Animation and Virtual Worlds, and member of the editorial board of 5 other journals. Daniel Thalmann has published numerous scientific papers. He is coauthor of several books including "Crowd Simulation", published by Springer in October 2007. He received an Honorary Doctorate from University Paul-Sabatier in Toulouse, France, in 2003.

Nicolas Thibieroz
Nicolas Thibieroz is part of the European Developer Relations team at ATI Technologies. As a kid he started programming on Commodore 64 and Amstrad CPC before moving on to the PC world, where he realised the potential of real-time 3D graphics while playing Ultima Underworld. After obtaining a BEng of Electronic Engineering in 1996 he joined PowerVR Technologies where he occupied the role of Developer Relations Manager, supporting game developers on a variety of platforms and contributing to SDK content. His current position at ATI involves helping developers optimize the performance of their games and educating them about the advanced features found in cutting-edge graphic hardware.

Rafael P. Torchelsen
Rafael P. Torchelsen is a Ph.D. student at the Federal University of Rio Grande do Sul (UFRGS), Brazil, has a B.S in computer science from Catholic University of Pelotas and a M.S. in computer graphics from University of Vale do Rio dos Sinos (UNISINOS). He worked in game engine development in several games in the Southlogic company. Research interests include geometric algorithms, GPUs and game programming.

Michal Valient
Michal Valient works as a senior technology programmer at Guerrilla where he works on many aspects of the Killzone 2 rendering engine. Prior to joining the team in Amsterdam he worked as a senior programmer and lead and developed shader based real-time rendering engine for Caligari trueSpace7. His interests include almost any aspect of light transfer, shadows and parallel processing and he wrote several graphics papers published in ShaderX books and conference journals during his PhD studies in Slovakia.

Liang Wan
Liang Wan received her Ph.D. in computer science from the Chinese University of Hong Kong. She is currently a Research Fellow at the City University of Hong Kong. Liang created the example programs for all her research projects, including graphics and computer vision-related topics. She spoke at GDC2007 and wrote the article “Real-time environment mapping with equal solid-angle spherical quad-map” published in ShaderX4.

 Mikey Wetzel
Mikey has a long history with graphics APIs and sample code, starting back 12 years ago. Originally hired by Microsoft to work on the Talisman™ project, he soon became the “samples” guy writing most of the old school Direct3D™ samples, training polygonal dolphins to swim in endless circles on computer monitors everywhere. After shipping DXSDK™ versions 6, 7, and 8, Mikey moved onto the Xbox™ and Xbox 360™ teams where he still wrote samples and became somewhat of a globe-trotting expert on graphics and shader performance optimization. In his latest role, he now works for AMD on the team bringing a mobile derivative of the Xbox 360 graphics core to a cell phone near you.

 Tien-Tsin Wong
Tien-Tsin Wong is a professor in the Department of Computer Science & Engineering in the Chinese University of Hong Kong (CUHK). He has been programming for the last 19 years, including writing publicly available codes/libraries/demos/toolkit (check his homepage) and codes for all his graphics research. He works on GPU techniques, rendering, image-based relighting, natural phenomenon modeling, computerized manga, and multimedia data compression. He is a SIGGRAPH author. He received the "IEEE Transaction on Multimedia Prize Paper Award 2005" and "CUHK Young Researcher Award 2004".

Jonathan Zarge
Jonathan is a member of AMD's 3D Graphics Products Group and is currently leading the developer performance tools effort. Jonathan's extensive background ranges from computer vision to graphics research to 3D data visualization; his work on polygon decimation has been published in the proceedings of ACM SIGGRAPH and he has presented at Game Developers Conferences all around the world. He has an engineering degree from the University of Pennsylvania and a Masters of Engineering degree from Rensselaer Polytechnic Institute.

Jason Zink
Jason Zink is an electrical engineer currently working in the automotive industry. He is working towards a M.S. in Computer Science, and has a received a B.S. in Electrical Engineering. He has been writing software for about 8 years in various fields such as industrial controls, embedded computing, business applications, automotive communication systems, and most recently game development with a great interest in graphics programming.  He spends his spare time improving his multimedia engine and looking for ways to use it to make other applications more useful and interesting.

Matthias Zwicker
Matthias Zwicker is an Assistant Professor in Computer Science and Engineering at the University of California, San Diego. He earned his Ph.D. in computer science from the Federal Institute of Technology (ETH) in Zurich, Switzerland, in 2003. Prior to joining UCSD he was a post-doctoral associate at the the Massachusetts Institute of Technology.