List of Figures

Chapter 2: Preliminary Math

Figure 2.1: The dot product can be used to calculate the angle between two vectors.
Figure 2.2: The dot product lets you determine the relationship of two vectors.
Figure 2.3: The cross-product of a × b is vector c, perpendicular to both.
Figure 2.4: The right-hand rule.
Figure 2.5: The cross product lets you determine the area of the parallelogram formed by two vectors.
Figure 2.6: The scalar triple product lets you determine volumes.
Figure 2.7: The normal n of a triangle.
Figure 2.8: Vertex normals and face normals.
Figure 2.9: The 1931 CIE diagram shows the gamuts of the eye and the lesser gamuts of output devices.
Figure 2.10: Multiplying (modulating) color values results in a color equal to or less than (darker) the original two.
Figure 2.11: Adding colors can result in colors that are outside the displayable range.
Figure 2.12: The results of three strategies for dealing with the same oversaturated color.
Figure 2.13: The ColorSpace tool interface.

Chapter 3: Mathematics of Lighting and Shading

Figure 3.1: Light reflecting from a rough and smooth surface of a conductor.
Figure 3.2: Light reflecting from a rough and smooth surface of a dielectric showing some penetration.
Figure 3.3: Subsurface scattering typical of pigment-saturated translucent coatings.
Figure 3.4: A simple shader to simulate metallic paint: (a) shows the two-tone paint shading pass; (b) shows the specular sparkle shading pass; (c) shows the environment mapping pass; (d) shows the final composite image
Figure 3.5: Ambient light provides illumination, but no surface details.
Figure 3.6: Diffuse light decreases as the angle between the light vector and the surface normal increases.
Figure 3.7: Diffuse shading brings out some surface details.
Figure 3.8: When diffuse and ambient terms are combined, you get more detail and a more natural-looking scene. The final color is the combination of the ambient and diffuse colors.
Figure 3.9: Specular light's intensity follows the reflection vector.
Figure 3.10: The relationship between the normal n, the light vector v, the view direction v, and the reflection vector r.
Figure 3.11: Phong's specular term for various values of the "shininess" term. Note that the values never get above 1.
Figure 3.12: A specular term just shows the highlights.
Figure 3.13: The half-angle vector is an averaging of the light and view vectors.
Figure 3.14: Blinn-Phong specular on the left, Phong specular on the right.
Figure 3.15: A combination of ambient, diffuse, and specular illumination.
Figure 3.16: A scene with light attenuation. The white sphere is the light position.
Figure 3.17: Schlick's term for specular looks very much like the more expensive Phong term.
Figure 3.18: Schlick's vs. Phong's specular terms.
Figure 3.19: The full moon is an good example of something that doesn't show Lambertian diffuse shading.
Figure 3.20: The same dirt field showing wildly differing reflection properties.
Figure 3.21: A soybean field showing differing reflection properties.
Figure 3.22: Light being reflected and refracted through a boundary.
Figure 3.23: The refracted ray's angle is less than the incoming ray's.
Figure 3.24: The critical angle.
Figure 3.25: Index of refraction as a function of wavelength for quartz.
Figure 3.26: Index of refraction as a function of wavelength for sapphire.
Figure 3.27: The wavelength dependence of the index of refraction in action.
Figure 3.28: The perpendicular nature of the magnetic and electrical fields of a light wave.
Figure 3.29: Poisson's bright spot.
Figure 3.30: The reflection and transmission curves for the parallel and perpendicular waves in the air-glass interface.
Figure 3.31: The averaged reflectance and transmittance values for the air-glass interface.
Figure 3.32: A glass-air interface shows that we reach a point where all light is reflected internally.
Figure 3.33: The averaged reflectance and transmittance curves for the glass-air interface.
Figure 3.34: The three types of surface reflections that can occur in the Cook-Torrance surface model.
Figure 3.35: A BRDF is a function of an incident and reflection angle and two rotational angles.
Figure 3.36: A precomputed BRDF texture using the values for gold.
Figure 3.37: Illustrating different anisotropic features.
Figure 3.38: The pen-and-ink style.
Figure 3.39: Engraving style [OSTROMOUKHOV 1999].
Figure 3.40: Tonal art maps [PRAUN 2001].
Figure 3.41: Rendered using tonal art maps.
Figure 3.42: The stylized rendering [GOOCH 1998].
Figure 3.43: Cel shading found in the game Jet Set Radio Future. The cel shading on the character gives it a unique look.
Figure 3.44: The 3D scene before the rendering of graftals [Kowalski 1999].
Figure 3.45: The 3D scene after the addition of graftals [Kowalski 1999].

Chapter 4: Introduction to Shaders

Figure 4.1: Vertex and pixel shaders replace sections of the fixed function pipeline.
Figure 4.2: DirectX 8 introduced vertex streams.
Figure 4.3: Pixel shader hardware can perform different operations simultaneously on a color vector and an alpha scalar.
Figure 4.4: Vertex operations take input from vertex stream(s) and constants, and place the results in output registers.
Figure 4.5: Surface normals prior to an affine transformation.
Figure 4.6: Surface normals following an affine transformation.
Figure 4.7: Vertex shader (and 2.0+ pixel shader) registers are made of four float vector elements.
Figure 4.8: Pixel shaders take color inputs and texture coordinates to generate a single output color value.
Figure 4.9: Pixel shader registers prior to version 2.0 consisted of a four-element vector made of (at least) 8-bit floating point elements; 2.0 pixel shaders are 32-bit floats.

Chapter 5: Shader Setup in DirectX

Figure 5.1: Vertex streams get loaded into vertex registers by a render call.

Chapter 6: Shader Tools and Resources

Figure 6.1: RenderMonkey in action.
Figure 6.2: NVIDIA Effects Browser.
Figure 6.3: NVIDIA Shader Debugger.
Figure 6.4: The D3D Shader Debugger that shipped with the DirectX 9 SDK.
Figure 6.5: Shader Studio.
Figure 6.6: ColorSpace lets you see the effects of clamping vs. clipping vs. scaling when two colors oversaturate.

Chapter 7: Shader Buffet

Figure 7.1: Constant vertex color gives color to an object but no hint of depth.
Figure 7.2: Assigning a per vertex color gives more control at the expense of more stream data.
Figure 7.3: Ambient shading gives color plus shading, but the unilluminated areas are black.
Figure 7.4: Infinite lights are the most common type of lights. The light vector for all vertices is the same.
Figure 7.5: A positional light means calculating a unique light direction vector for each vertex. For light sources close to a surface, this overhead is sometimes necessary to get the light looking correct.
Figure 7.6: Blinn-Phong specular on the left and then the ambient, diffuse, and specular terms combined on the right.
Figure 7.7: The decal we're going to wrap the object with.
Figure 7.8: Decal texturing slaps a texture onto a surface with no other coloring effects.
Figure 7.9: To blend a texture with a surface color, you'll need to modulate the texture color.
Figure 7.10: Fog is done after the texture stage. In vertex shaders, you can just set the vertex fog intensity. Here, the fog is red and the pin is standing out of the fog.
Figure 7.11: Point shaders are somewhat limited since point size has only a fixed maximum value.
Figure 7.12: The bowling pin texture map.
Figure 7.13: The scuff map.
Figure 7.14: The pin with the texture map and the scuff map added on top of it.
Figure 7.15: A simple silhouette shader.
Figure 7.16: Cartoon shading using traditional lighting equations and a three-stage color graduation.
Figure 7.17: Taking a bump map to generate normal perturbations that look like real geometry except at the edges of the object.
Figure 7.18: A simplified Fresnel shader used to generate a shiny specular when an object is illuminated from behind.
Figure 7.19: The Fresnel shader output added to the ambient, diffuse, and specular output.

Part II: Pixel Shader Reference

Figure 8.1: Constant, texture addressing, and arithmetic instructions for pixel shaders 1.0 through 1.3.
Figure 8.2: Phase instruction in pixel shaders 1.4.
Figure 8.3: Pixel shader register construction.



Real-Time Shader Programming(c) Covering Directx 9. 0
Real-Time Shader Programming (The Morgan Kaufmann Series in Computer Graphics)
ISBN: 1558608532
EAN: 2147483647
Year: 2005
Pages: 104
Authors: Ron Fosner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net