logo资料库

GLSL Essentials.pdf

第1页 / 共116页
第2页 / 共116页
第3页 / 共116页
第4页 / 共116页
第5页 / 共116页
第6页 / 共116页
第7页 / 共116页
第8页 / 共116页
资料共116页,剩余部分请下载后查看
Cover
Copyright
Credits
About the Author
About the Reviewers
www.PacktPub.com
Table of Contents
Preface
Chapter 1: The Graphics Rendering Pipeline
A brief history of graphics hardware
The Graphics Rendering Pipeline
Geometry stages (per-vertex operations)
Fragment stages (per-fragment operations)
External stages
Differences between fixed and programmable designs
Types of shaders
Vertex shaders
Fragment shaders
Geometry shaders
Compute shaders
GPU, a vectorial and parallel architecture
The shader environment
Summary
Chapter 2 : GLSL Basics
The Language
Language basics
Instructions
Basic types
Variable initializers
Vector and matrix operations
Castings and conversions
Code comments
Flow control
Loops
Structures
Arrays
Functions
Preprocessor
Shader input/output variables
Uniform variables
Other input variables
Shader output variables
Summary
Chapter 3 : Vertex Shaders
Vertex shader inputs
Vertex attributes
Uniform variables
Vertex shader outputs
Drawing a simple geometry sample
Distorting a geometry sample
Using interpolators
Simple lighting
Basic lighting theory
Lighting example code
Summary
Chapter 4 : Fragment Shaders
Execution model
Terminating a fragment shader
Inputs and outputs
Examples
Solid color mesh
Interpolated colored mesh
Using interpolators to compute the texture coordinates
Phong lighting
Summary
Chapter 5 : Geometry Shaders
Geometry shaders versus vertex shaders
Inputs and outputs
Interface blocks
Example – pass-thru shader
Example – using attributes in the interface blocks
Crowd of butterflies
Summary
Chapter 6 : Compute Shaders
Execution model
Render to texture example
Raw data computations
Summary
Index
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.
分享到:
收藏