万本电子书0元读

万本电子书0元读

顶部广告

OpenGL 4.0 Shading Language Cookbook电子书

售       价:¥

35人正在读 | 0人评论 6.2

作       者:David Wolff

出  版  社:Packt Publishing

出版时间:2011-07-26

字       数:282.3万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
This hands-on guide cuts short the preamble and gets straight to the point – actually creating graphics, instead of just theoretical learning. Each recipe is specifically tailored to satisfy your appetite for producing real-time 3-D graphics using GLSL 4.0. If you are an OpenGL programmer looking to use the modern features of GLSL 4.0 to create real-time, three-dimensional graphics, then this book is for you. Familiarity with OpenGL programming, along with the typical 3D coordinate systems, projections, and transformations is assumed. It can also be useful for experienced GLSL programmers who are looking to implement the techniques that are presented here.
目录展开

OpenGL 4.0 Shading Language Cookbook

Table of Contents

OpenGL 4.0 Shading Language Cookbook

Credits

About the Author

About the Reviewers

www.PacktPub.com

Support files, eBooks, discount offers and more

Why subscribe?

Free access for Packt account holders

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code for this book

Errata

Piracy

Questions

1. Getting Started with GLSL 4.0

Introduction

The OpenGL Shading Language

Profiles: Core vs. Compatibility

Using the GLEW Library to access the latest OpenGL functionality

Getting ready

How to do it...

How it works...

There's more...

GLEW visualinfo

GLEW glewinfo

Checking for extension availability at runtime

See also

Using the GLM library for mathematics

Getting ready

How to do it...

How it works...

There's more...

Using the GLM types as input to OpenGL

See also

Determining the GLSL and OpenGL version

How to do it...

How it works...

There's more...

See also

Compiling a shader

Getting ready

How to do it...

How it works...

There's more...

Deleting a shader object

See also

Linking a shader program

Getting ready

How to do it...

How it works...

There's more...

Deleting a shader program

See also

Sending data to a shader using per-vertex attributes and vertex buffer objects

Getting ready

How to do it...

How it works...

There's more...

Using layout qualifiers

Using element arrays

Interleaved arrays

See also

Getting a list of active vertex input attributes and indices

Getting ready

How to do it...

How it works...

There's more...

See also

Sending data to a shader using uniform variables

Getting ready

How to do it...

How it works...

There's more...

See also

Getting a list of active uniform variables

Getting ready

How to do it...

How it works...

There's more...

See also

Using uniform blocks and uniform buffer objects

Getting ready

How to do it...

How it works...

There's more...

Using an instance name with a uniform block

Using layout qualifiers with uniform blocks

See also

Building a C++ shader program class

Getting ready

How to do it...

How it works...

See also

2. The Basics of GLSL Shaders

Introduction

Vertex and fragment shaders

Replicating the old fixed functionality

Implementing diffuse, per-vertex shading with a single point light source

Getting ready

How to do it...

How it works...

There's more...

See also

Implementing per-vertex ambient, diffuse, and specular (ADS) shading

Getting ready

How to do it...

How it works...

There's more...

Using a non-local viewer

Per-vertex vs. Per-fragment

Directional lights

Light attenuation with distance

See also

Using functions in shaders

Getting ready

How to do it...

How it works...

There's more...

The const qualifier

Function overloading

Passing arrays or structures to a function

See also

Implementing two-sided shading

Getting ready

How to do it...

How it works...

There's more...

Using two-sided rendering for debugging

See also

Implementing flat shading

How to do it...

How it works...

See also

Using subroutines to select shader functionality

Getting ready

How to do it...

How it works...

There's more...

See also

Discarding fragments to create a perforated look

Getting ready

How to do it...

How it works...

See also

3. Lighting, Shading Effects, and Optimizations

Introduction

Shading with multiple positional lights

Getting ready

How to do it...

How it works...

See also

Shading with a directional light source

Getting ready

How to do it...

How it works...

There's more...

See also

Using per-fragment shading for improved realism

Getting ready

How to do it...

How it works...

There's more...

See also

Using the halfway vector for improved performance

Getting ready

How to do it...

How it works...

There's more...

See also

Simulating a spotlight

Getting ready

How to do it...

How it works...

See also

Creating a cartoon shading effect

Getting ready

How to do it...

How it works...

There's more...

See also

Simulating fog

Getting ready

How to do it...

How it works...

There's more...

Computing distance from the eye

See also

4. Using Textures

Introduction

Applying a 2D texture

Getting ready

How to do it...

How it works...

There's more...

See also

Applying multiple textures

Getting ready

How to do it...

How it works...

There's more...

See also

Using alpha maps to discard pixels

Getting ready

How to do it...

How it works...

There's more...

See also

Using normal maps

Getting ready

How to do it...

How it works...

See also

Simulating reflection with cube maps

Getting ready

How to do it...

How it works...

There's more...

See also

Simulating refraction with cube maps

Getting ready

How to do it...

How it works...

There's more...

The Fresnel equations

Chromatic aberration

Both sides of the object?

See also

Image-based lighting

Getting ready

How to do it...

How it works...

There's more...

See also

Applying a projected texture

Getting ready

How to do it...

How it works...

There's more...

See also

Rendering to a texture

Getting ready

How to do it...

How it works...

There's more...

See also

5. Image Processing and Screen Space Techniques

Introduction

Applying an edge detection filter

Getting ready

How to do it...

How it works...

There's more...

Optimization techniques

See also

Applying a Gaussian blur filter

Getting ready

How to do it...

How it works...

There's more...

See also

Creating a "bloom" effect

Getting ready

How to do it...

How it works...

There's more...

Using low-res textures

See also

Using gamma correction to improve image quality

How to do it...

How it works...

There's more...

Using multisample anti-aliasing

Getting ready

How to do it...

How it works...

There's more...

Using deferred shading

Getting ready

How to do it...

How it works...

There's more...

See also

6. Using Geometry and Tessellation Shaders

Introduction

The shader pipeline extended

The geometry shader

The tessellation shaders

Point sprites with the geometry shader

Getting ready

How to do it...

How it works...

There's more...

Drawing a wireframe on top of a shaded mesh

Getting ready

How to do it...

How it works...

There's more...

See also

Drawing silhouette lines using the geometry shader

Getting ready

How to do it...

How it works...

There's more...

See also

Tessellating a curve

Getting ready

How to do it...

How it works...

There's more...

Tessellating a 2D quad

Getting ready

How to do it...

How it works...

See also

Tessellating a 3D surface

Getting ready

How to do it...

How it works...

See also

Tessellating based on depth

Getting ready

How to do it...

How it works...

There's more...

See also

7. Shadows

Introduction

Rendering shadows with shadow maps

Getting ready

How to do it...

How it works...

There's more...

Aliasing

Rendering back faces only for the shadow map

See also

Anti-aliasing shadow edges with PCF

Getting ready

How to do it...

How it works...

There's more...

See also

Creating soft shadow edges with random sampling

Getting ready

How to do it...

How it works...

There's more...

See also

Improving realism with prebaked ambient occlusion

Getting ready

How to do it...

How it works...

There's more...

Screen-space ambient occlusion

Another technique for dynamic ambient occlusion

8. Using Noise in Shaders

Introduction

Creating a noise texture using libnoise

Getting ready

How to do it...

How it works...

There's more...

See also

Creating a seamless noise texture

Getting ready

How to do it...

How it works...

There's more...

See also

Creating a cloud-like effect

Getting ready

How to do it...

How it works...

There's more...

See also

Creating a wood grain effect

Getting ready

How to do it...

How it works...

There's more...

See also

Creating a disintegration effect

Getting ready

How to do it...

How it works...

See also

Creating a paint-spatter effect

Getting ready

How to do it...

How it works...

There's more...

See also

Creating a night-vision effect

Getting ready

How to do it...

How it works...

There's more...

See also

9. Animation and Particles

Introduction

Animating a surface with vertex displacement

Getting ready

How to do it...

How it works...

There's more...

See also

Creating a particle fountain

Getting ready

How to do it...

How it works...

There's more...

See also

Creating a particle system using transform feedback

Getting ready

How to do it...

How it works...

There's more...

Querying transform feedback results

Recycling particles

See also

Creating a particle system using instanced particles

Getting ready

How to do it...

How it works...

There's more...

See also

Simulating fire with particles

Getting ready

How to do it...

How it works...

There's more...

See also

Simulating smoke with particles

Getting ready

How to do it...

How it works...

See also

Index

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部