Figures

Figure 1.1 Image from our first OpenGL program: triangles.cpp

Figure 1.2 OpenGL pipeline

Figure 2.1 Shader-compilation command sequence

Figure 3.1 Vertex layout for a triangle strip

Figure 3.2 Vertex layout for a triangle fan

Figure 3.3 Packing of elements in a BGRA-packed vertex attribute

Figure 3.4 Packing of elements in a RGBA-packed vertex attribute

Figure 3.5 Simple example of drawing commands

Figure 3.6 Using primitive restart to break a triangle strip

Figure 3.7 Two triangle strips forming a cube

Figure 3.8 Result of rendering with instanced vertex attributes

Figure 3.9 Result of instanced rendering using gl_InstanceID

Figure 4.1 Region occupied by a pixel

Figure 4.2 Polygons and their depth slopes

Figure 4.3 Aliased and antialiased lines

Figure 5.1 Steps to configure and position the viewing frustum

Figure 5.2 Coordinate systems required by OpenGL

Figure 5.3 User coordinate systems unseen by OpenGL

Figure 5.4 A view frustum

Figure 5.5 Pipeline subset for user/shader part of transforming coordinates

Figure 5.6 One-dimensional homogeneous space

Figure 5.7 Translating by skewing

Figure 5.8 Translating an object 2.5 in the x direction

Figure 5.9 Scaling an object to three times its size

Figure 5.10 Scaling an object in place

Figure 5.11 Rotation

Figure 5.12 Rotating in place

Figure 5.13 Frustum projection

Figure 5.14 Orthographic projection

Figure 5.15 z precision

Figure 5.16 Transform feedback varyings packed in a single buffer

Figure 5.17 Transform feedback varyings packed in separate buffers

Figure 5.18 Transform feedback varyings packed into multiple buffers

Figure 5.19 Schematic of the particle system simulator

Figure 5.20 Result of the particle system simulator

Figure 6.1 Byte-swap effect on byte, short, and integer data

Figure 6.2 Subimage identified by *SKIP_ROWS, *SKIP_PIXELS, and *ROW_LENGTH parameters

Figure 6.3 *IMAGE_HEIGHT pixel storage mode

Figure 6.4 *SKIP_IMAGES pixel storage mode

Figure 6.5 Output of the simple textured quad example

Figure 6.6 Effect of different texture wrapping modes

Figure 6.7 Two textures used in the multitexture example

Figure 6.8 Output of the simple multitexture example

Figure 6.9 Output of the volume texture example

Figure 6.10 A sky box, shown as seen from the outside, from close up, and from the center

Figure 6.11 A golden environment mapped torus

Figure 6.12 A visible seam in a cube map

Figure 6.13 The effect of seamless cube-map filtering

Figure 6.14 Effect of texture minification and magnification

Figure 6.15 Resampling of a signal in one dimension

Figure 6.16 Bilinear resampling

Figure 6.17 A prefiltered mipmap pyramid

Figure 6.18 Effects of minification mipmap filters

Figure 6.19 Illustration of mipmaps using unrelated colors

Figure 6.20 Result of the simple textured point sprite example

Figure 6.21 Analytically calculated point sprites

Figure 6.22 Smooth edges of circular point sprites

Figure 6.23 Close-up of RGB color elements in an LCD panel

Figure 7.1 Elements of the classic lighting model

Figure 7.2 A sphere illuminated using the hemisphere lighting model

Figure 7.3 Analytic hemisphere lighting function

Figure 7.4 Lighting model comparison

Figure 7.5 Light probe image

Figure 7.6 Lat-long map

Figure 7.7 Cube map

Figure 7.8 Effects of diffuse and specular environment maps

Figure 7.9 Spherical harmonics lighting

Figure 7.10 Depth rendering

Figure 7.11 Final rendering of shadow map

Figure 8.1 Procedurally striped torus

Figure 8.2 Stripes close-up

Figure 8.3 Brick patterns

Figure 8.4 Visualizing the results of the half-space distance calculations

Figure 8.5 Intermediate results from “in” or “out” computation

Figure 8.6 Intermediate results from the toy ball shader

Figure 8.7 The lattice shader applied to the cow model

Figure 8.8 Inconsistently defined tangents leading to large lighting errors

Figure 8.9 Simple box and torus with procedural bump mapping

Figure 8.10 Normal mapping

Figure 8.11 Aliasing artifacts caused by point sampling

Figure 8.12 Supersampling

Figure 8.13 Using the s texture coordinate to create stripes on a sphere

Figure 8.14 Antialiasing the stripe pattern

Figure 8.15 Visualizing the gradient

Figure 8.16 Effect of adaptive analytical antialiasing on striped teapots

Figure 8.17 The periodic step function

Figure 8.18 Periodic step function (pulse train) and its integral

Figure 8.19 Brick shader with and without antialiasing

Figure 8.20 Checkerboard pattern

Figure 8.21 A discrete 1D noise function

Figure 8.22 A continuous 1D noise function

Figure 8.23 Varying the frequency and the amplitude of the noise function

Figure 8.24 Summing noise functions: the result of summing noise functions of different amplitude and frequency

Figure 8.25 Basic 2D noise, at frequencies 4, 8, 16, and 32 (contrast enhanced)

Figure 8.26 Summed noise, at 1, 2, 3, and 4 octaves (contrast enhanced)

Figure 8.27 Teapots rendered with noise shaders

Figure 8.28 Absolute-value noise or “turbulence”

Figure 8.29 A bust of Beethoven rendered with the wood shader

Figure 9.1 Quad tessellation

Figure 9.2 Isoline tessellation

Figure 9.3 Triangle tessellation

Figure 9.4 Even and odd tessellation

Figure 9.5 The tessellated patches of the teapot

Figure 9.6 Tessellation cracking

Figure 10.1 Lines adjacency sequence

Figure 10.2 Line-strip adjacency sequence

Figure 10.3 Triangles adjacency sequence

Figure 10.4 Triangle-strip adjacency layout

Figure 10.5 Triangle-strip adjacency sequence

Figure 10.6 Texture used to represent hairs in the fur rendering example

Figure 10.7 The output of the fur rendering example

Figure 10.8 Schematic of geometry shader sorting example

Figure 10.9 Final output of geometry shader sorting example

Figure 10.10 Output of the viewport-array example

Figure 11.1 Output of the simple load-store shader

Figure 11.2 Timeline exhibited by the naïve overdraw counter shader

Figure 11.3 Output of the naïve overdraw counter shader

Figure 11.4 Output of the atomic overdraw counter shader

Figure 11.5 Cache hierarchy of a fictitious GPU

Figure 11.6 Data structures used for order-independent transparency

Figure 11.7 Inserting an item into the per-pixel linked lists

Figure 11.8 Result of order-independent transparency

Figure 12.1 Schematic of a compute workload

Figure 12.2 Relationship of global and local invocation ID

Figure 12.3 Output of the physical simulation program as simple points

Figure 12.4 Output of the physical simulation program

Figure 12.5 Image processing

Figure 12.6 Image processing artifacts

Figure B.1 WebGL demo

Figure G.1 AMD’s GPUPerfStudio2 profiling Unigine Heaven 3.0

Figure G.2 Screen Shot of Unigine Heaven 3.0

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.221.163