GLSL Essentials


GLSL Essentials
eBook: $20.99
Formats: PDF, PacktLib, ePub and Mobi formats
$17.84
save 15%!
Print + free eBook + free PacktLib access to the book: $55.98    Print cover: $34.99
$34.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Support
Sample Chapters
  • Learn about shaders in a step-by-step, interactive manner
  • Create stunning visual effects using vertex and fragment shaders
  • Simplify your CPU code and improve your overall performance with instanced drawing through the use of geometry shaders

Book Details

Language : English
Paperback : 116 pages [ 235mm x 191mm ]
Release Date : December 2013
ISBN : 1849698007
ISBN 13 : 9781849698009
Author(s) : Jacobo Rodríguez
Topics and Technologies : All Books, Other

Table of Contents

Preface
Chapter 1: The Graphics Rendering Pipeline
Chapter 2: GLSL Basics
Chapter 3: Vertex Shaders
Chapter 4: Fragment Shaders
Chapter 5: Geometry Shaders
Chapter 6: Compute Shaders
Index
  • 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 and 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
              • A crowd of butterflies
            • Summary

              Jacobo Rodríguez

              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.

              Sorry, we don't have any reviews for this title yet.

              Submit Errata

              Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.

              Sample chapters

              You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

              Frequently bought together

              GLSL Essentials +    Mastering Clojure Data Analysis =
              50% Off
              the second eBook
              Price for both: $41.10

              Buy both these recommended eBooks together and get 50% off the cheapest eBook.

              What you will learn from this book

              • Use vertex shaders to dynamically displace or deform a mesh on the fly
              • Colorize your pixels unleashing the power of fragment shaders
              • Learn the basics of the Phong Illumination model to add emphasis to your scenes
              • Combine textures to make your scene more realistic
              • Save CPU and GPU cycles by performing instanced drawing
              • Save bandwidth by generating geometry on the fly
              • Learn about GPU Generic programming concepts
              • Convert algorithms from CPU to GPU to increase performance

              In Detail

              Shader programming has been the largest revolution in graphics programming. OpenGL Shading Language (abbreviated: GLSL or GLslang), is a high-level shading language based on the syntax of the C programming language.With GLSL you can execute code on your GPU (aka graphics card). More sophisticated effects can be achieved with this technique.
              Therefore, knowing how OpenGL works and how each shader type interacts with each other, as well as how they are integrated into the system, is imperative for graphic programmers. This knowledge is crucial in order to be familiar with the mechanisms for rendering 3D objects.

              GLSL Essentials is the only book on the market that teaches you about shaders from the very beginning. It shows you how graphics programming has evolved, in order to understand why you need each stage in the Graphics Rendering Pipeline, and how to manage it in a simple but concise way. This book explains how shaders work in a step-by-step manner, with an explanation of how they interact with the application assets at each stage.

              This book will take you through the graphics pipeline and will describe each section in an interactive and clear way. You will learn how the OpenGL state machine works and all its relevant stages. Vertex shaders, fragment shaders, and geometry shaders will be covered, as well some use cases and an introduction to the math needed for lighting algorithms or transforms. Generic GPU programming (GPGPU) will also be covered.

              After reading GLSL Essentials you will be ready to generate any rendering effect you need.

              Approach

              This book is a practical guide to the OpenGL Shading Language, which contains several real-world examples that will allow you to grasp the core concepts easily and the use of the GLSL for graphics rendering applications.

              Who this book is for

              If you want upgrade your skills, or are new to shader programming and want to learn about graphic programming, this book is for you. If you want a clearer idea of shader programming, or simply want to upgrade from fixed pipeline systems to state-of-the-art shader programming and are familiar with any C-based language, then this book will show you what you need to know.

              Code Download and Errata
              Packt Anytime, Anywhere
              Register Books
              Print Upgrades
              eBook Downloads
              Video Support
              Contact Us
              Awards Voting Nominations Previous Winners
              Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
              Resources
              Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software