GLSL Essentials
Enrich your 3D scenes with the power of GLSL!
Jacobo Rodríguez
BIRMINGHAM - MUMBAI
GLSL Essentials
Copyright © 2013 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval
system, or transmitted in any form or by any means, without the prior written
permission of the publisher, except in the case of brief quotations embedded in
critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy
of the information presented. However, the information contained in this book is
sold without warranty, either express or implied. Neither the author, nor Packt
Publishing, and its dealers and distributors will be held liable for any damages
caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.
First published: December 2013
Production Reference: 1181213
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-84969-800-9
www.packtpub.com
Cover Image by Jacobo Rodríguez Villar (jrodriguez@parallel-games.com)
Credits
Author
Jacobo Rodríguez
Project Coordinator
Amey Sawant
Reviewers
Dimitrios Christopoulos
Toni Ascó González
Oscar Ripolles
Acquisition Editors
Antony Lowe
Rebecca Pedley
Commissioning Editors
Subho Gupta
Priyanka Shah
Sharvari Tawde
Technical Editors
Venu Manthena
Gaurav Thingalaya
Proofreaders
Maria Gould
Paul Hindle
Indexer
Priya Subramani
Graphics
Ronak Dhruv
Production Coordinator
Shantanu Zagade
Cover Work
Shantanu Zagade
About the Author
Jacobo Rodríguez is a real-time computer graphics programmer living in
the north of Spain. He has working experience with computer graphics, digital
photogrammetry, computer vision, and video game development. Jacobo has
worked for cutting-edge technology companies such as Metria Digital and Blit
Software, and has also worked as an entrepreneur and freelancer for a variety of
clients of platforms such as PC, iOS, PlayStation 3, PlayStation Vita, and PlayStation
Portable. Jacobo has been working and learning at the same time for the last 20
years in the computer graphics field in roles ranging from junior programmer to
project manager, passing through R&D director as well. Jacobo has always been
very committed to the computer graphics community, having released for free the
OpenGL Shader Designer: the first application in the world (even before NVIDIA
with FX Composer or ATI with RenderMonkey) designed to visually develop and
program GLSL shaders, as well as some OpenGL programming tutorials, all forming
part of the Official OpenGL SDK.
I would like to thank my family for supporting me in those late
nights and weekend writing sessions. I would also like to thank Toni
Ascó Emilio, José Dominguez, and Iñaki Griego, for their invaluable
support and resources during the production of this book.
About the Reviewers
Dimitrios Christopoulos studied Computer Engineering and Informatics and
holds a Master of Science degree in Virtual Reality and Computer Graphics. He
has 16+ years of experience in 3D computer graphics with a strong specialty in
C/C++/OpenGL and Linux. Dimi has worked for European Union research projects,
Indie game productions, and museums producing games, educational applications,
and cultural heritage productions for desktops and virtual reality installations such
as Domes, Caves, Reality Centers, and Powerwalls. His research interests include
virtual reality, human computer interaction, computer graphics, and games, with
numerous publications in relevant conferences and journals. Dimitrios has been
an author of the book More OpenGL Programming, Course Technology PTR, and has
contributed to OpenGL Programming, Prima Tech, and has been a reviewer for
OpenGL Development Cookbook, Packt Publishing.
I would like to thank my wife Giota for being supportive during my
late night reviewing sessions.
Toni Ascó González holds a Master's degree in Computer Science specializing
in real-time graphics and OpenGL. For the past 16 years, he has been programming
graphics applications from virtual reality to video games. He founded a virtual
reality company in Barcelona, and dedicated eight years to develop a state-of-the-art,
real-time software for architectural visualization. After that experience, he moved
to Bravo Game Studios and developed video games for mobile platforms and
portable consoles. Currently, he applies his experience in 3D and real-time
graphics in the virtual gambling field.
I would like to thank my other half, Chu, for her patience, love,
and care. Life would be uninteresting and void without you at my
side. Of course, thanks to my mother and my brother for being my
foundation and supporting my love for computers since I was nine.
I would also like to thank all of the mentors and colleagues who
have been with me over all these years. Bernat Muñoz, Alex
Novell, and Marc Martí from Insideo for all those wonderful years
experimenting with new techniques. Also, Alberto García-Baquero,
Benjamín de la Fuente, and Miguel Guillén, who have shown
me new and amazing ways of doing things, and given me new
perspectives on product development. Finally, a special mention to
Jacobo Rodriguez Villar; without him, I wouldn't be where I am.
Oscar Ripolles received his degree in Computer Engineering in 2004 and his
Ph.D. in 2009 at the Universitat Jaume I in Castellon (Spain). He has also been a
researcher at the Université de Limoges (France) and at the Universidad Politecnica
de Valencia (Spain). He is currently woking in neuroimaging at Neuroelectrics in
Barcelona (Spain). His research interests include multiresolution modeling, geometry
optimization, hardware programming, and medical imaging.
www.PacktPub.com
Support files, eBooks, discount offers and more
You might want to visit www.PacktPub.com for support files and downloads related
to your book.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub
files available? You can upgrade to the eBook version at www.PacktPub.com and as a print
book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
service@packtpub.com for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a
range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
TM
http://PacktLib.PacktPub.com
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book
library. Here, you can access, read and search across Packt's entire library of books.
Why Subscribe?
• Fully searchable across every book published by Packt
• Copy and paste, print and bookmark content
• On demand and accessible via web browser
Free Access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can use this to access
PacktLib today and view nine entirely free books. Simply use your login credentials for
immediate access.