Sold Out
Book Categories |
Acknowledgments | xvii | |
Part I | Introduction | 1 |
1 | Introduction | 3 |
What You Will Learn | 3 | |
What You Need to Know and Equipment Requirements | 3 | |
How This Book Is Organized | 4 | |
Tools of the Trade | 4 | |
Compile and Debug a Shader | 9 | |
Other Recommended Tools | 14 | |
2 | Direct3D Pipeline | 17 |
Direct3D Pipeline | 17 | |
Conclusion | 24 | |
3 | HLSL Shader Programming | 25 |
Vertex Shaders | 25 | |
Pixel Shaders | 35 | |
Compile Targets | 41 | |
A Simple Example | 45 | |
Language Basics | 47 | |
Optimizing HLSL Shaders | 68 | |
D3DX Effect Files Framework | 73 | |
Shaders in Effect Files | 76 | |
Textures in Effect Files | 77 | |
DirectX Standard Annotation and Semantics | 79 | |
Device States in Effect Files | 82 | |
Preshaders | 82 | |
The Effect File API | 84 | |
Summary | 85 | |
Part II | Lighting Algorithms | 87 |
4 | Ambient Lighting | 89 |
Background | 89 | |
Implementation | 89 | |
Results | 91 | |
Conclusion | 92 | |
5 | Diffuse Lighting | 93 |
Background | 93 | |
Implementation | 94 | |
Results | 96 | |
Conclusion | 97 | |
6 | Specular Lighting | 99 |
Background of Phong Reflectance | 99 | |
Implementation Phong | 101 | |
Results Phong | 104 | |
Background Blinn-Phong Specular Reflectance | 104 | |
Implementation Blinn-Phong | 106 | |
Results Blinn-Phong | 107 | |
Comparison | 108 | |
Conclusion | 109 | |
7 | Bump Mapping | 111 |
Background | 111 | |
Implementation | 113 | |
Results | 116 | |
Conclusion | 116 | |
8 | Parallax Mapping with Offset Limiting | 117 |
Background | 117 | |
Implementation | 119 | |
Results | 120 | |
Conclusion | 121 | |
9 | Self-Shadowing | 123 |
Background | 123 | |
Implementation | 124 | |
Conclusion | 127 | |
10 | Light Sources | 129 |
Point Lights | 129 | |
Four Point Lights | 133 | |
Spot Lights | 136 | |
Conclusion | 139 | |
11 | Hemispheric Lighting | 141 |
Background | 141 | |
Implementation: N.y as the Blend Factor | 142 | |
Implementation: N.S as the Blend Factor | 144 | |
Implementation: Adding an Occlusion Term | 144 | |
Conclusion | 145 | |
Part III | Advanced Reflectance Algorithms | 147 |
12 | Cook-Torrance Reflection | 149 |
Background | 149 | |
Microfacet Model | 150 | |
The Microfacet Distribution Function | 150 | |
The Geometrical Attenuation Factor | 154 | |
The Fresnel Term | 158 | |
Putting It All Together: Cook-Torrance Reflection Formula | 160 | |
Implementation | 162 | |
Factorizing the Cook-Torrance Model | 163 | |
Beckmann Distribution Function | 163 | |
The Geometrical Attenuation Factor | 164 | |
The Fresnel Term | 165 | |
One Texture for Everything | 166 | |
Results | 168 | |
Conclusion | 170 | |
13 | Oren-Nayar Reflection | 171 |
Background | 171 | |
Spherical Coordinates | 172 | |
Microfacet Model | 174 | |
The Microfacet Distribution Function/Geometric Attenuation Factor | 174 | |
Implementation | 175 | |
Results | 177 | |
Screenshots | 177 | |
Roughness Map | 178 | |
Conclusion | 179 | |
14 | Ward Reflection Model | 181 |
Background | 181 | |
Implementation | 183 | |
Results | 187 | |
Conclusion | 189 | |
15 | Ashikhmin-Shirley Reflection Model | 191 |
Background | 191 | |
Implementation | 192 | |
Results | 198 | |
Conclusion | 200 | |
Part IV | Environment Cube Mapping | 201 |
16 | Generate and Access Cube Maps | 203 |
Constructing Cube Environment Maps | 203 | |
Constructing a Cube Normalization Map | 204 | |
Accessing Cube Maps | 207 | |
Conclusion | 209 | |
17 | Cube Environment Mapping | 211 |
Static Refractive and Reflective Environment Mapping | 213 | |
Chromatic Dispersion | 217 | |
Dynamic Reflective and Refractive Environment Mapping | 218 | |
Accurate Cube Environment Mapped Reflection and Refraction by Adjusting for Object Distance | 221 | |
Conclusion | 224 | |
18 | High Dynamic Range Cube Maps | 225 |
fp16 Format | 225 | |
RGBE8 Format | 226 | |
RGB16 Format | 231 | |
Filtering of High Dynamic Range Cube Maps | 231 | |
Conclusion | 239 | |
Part V | High Dynamic Range Lighting | 241 |
19 | Simple Exposure | 243 |
Implementation | 244 | |
Results and Conclusion | 245 | |
20 | Faked High Dynamic Range Lighting | 247 |
Background | 247 | |
Implementation | 250 | |
Result | 253 | |
Conclusion | 256 | |
21 | High Dynamic Range Lighting | 257 |
Background | 257 | |
Implementation | 260 | |
Results and Conclusion | 262 | |
22 | Advanced Tone Mapping | 265 |
Background | 265 | |
Implementation | 268 | |
Results | 271 | |
Conclusion | 272 | |
Part VI | Projective Texture Mapping | 275 |
23 | Arbitrary Projection of Two-Dimensional Images onto Geometry | 277 |
Background | 277 | |
Implementation | 278 | |
Results/Notable Issues | 280 | |
Conclusion | 283 | |
Part VII | Shadows | 285 |
24 | Shadow Mapping | 287 |
Background | 287 | |
Implementation | 288 | |
Results/Issues | 291 | |
Accompanying Examples | 300 | |
Conclusion | 301 | |
25 | Shadow Volumes | 303 |
Background | 303 | |
Implementation | 307 | |
Results | 311 | |
Conclusion | 312 | |
Part VIII | Vertex Texturing | 315 |
26 | Displacement Mapping | 317 |
Background | 317 | |
Implementation | 319 | |
Results and Conclusion | 319 | |
27 | First Steps to Geometry Images | 321 |
Background | 322 | |
Implementation | 322 | |
Results | 323 | |
Conclusion | 324 | |
Part IX | Shaders as Part of a Graphics Engine | 325 |
28 | Shaders as Part of a Game Engine | 327 |
Target Group | 327 | |
Requirements of a Shader Subsystem | 329 | |
A Simple Data-Driven Level-of-Shading System | 335 | |
Results | 336 | |
Summary | 338 | |
Afterword | 339 | |
Appendix A | vs_3_0/ps_3_0 Assembly | 341 |
Assembly Vertex Shader Programming Fundamentals | 342 | |
Vertex Shader Data Format | 343 | |
Input Registers | 344 | |
Temporary Registers | 347 | |
Indexing Registers | 347 | |
Sampler Register | 348 | |
Predicate Register | 349 | |
Output Registers | 350 | |
Source Register Swizzling | 351 | |
Write Masking | 352 | |
Other Register Modifiers | 353 | |
Vertex Shader Instructions | 353 | |
Static and Dynamic Branching | 369 | |
Static and Dynamic Looping | 369 | |
Static and Dynamic Subroutine Calls | 370 | |
Nesting | 370 | |
Maximum Number of Instructions | 370 | |
Guidelines for Writing Vertex Shaders | 370 | |
Assembly Pixel Shader Programming Fundamentals | 371 | |
Input Registers | 371 | |
Temporary Registers | 373 | |
Indexing Register | 373 | |
Sampler Registers | 374 | |
Predicate Register | 375 | |
vFace Register | 375 | |
vPos Register | 375 | |
Output Registers | 376 | |
Source Register Swizzling/Write Masking | 377 | |
Pixel Shader Arithmetic Instructions | 377 | |
Texture Instructions | 380 | |
Instruction Modifiers | 381 | |
Flow Control | 382 | |
Maximum Number of Instructions | 383 | |
Guidelines for Writing Pixel Shaders | 383 | |
Optimizing Assembly Shaders | 383 | |
Fewer Instructions Are Better | 384 | |
ATI RADEON 9500+ | 386 | |
NVIDIA GeForce FX | 387 | |
NVIDIA GeForce 6800 (NV4X) | 389 | |
Example Programs | 389 | |
Conclusion | 389 | |
Appendix B | About the CD-ROM | 391 |
System Requirements | 391 | |
Updates | 392 | |
Visual C++.NET Settings | 392 | |
Comments/Suggestions | 392 | |
Bibliography | 393 | |
Glossary | 399 | |
Index | 407 |
Login|Complaints|Blog|Games|Digital Media|Souls|Obituary|Contact Us|FAQ
CAN'T FIND WHAT YOU'RE LOOKING FOR? CLICK HERE!!! X
You must be logged in to add to WishlistX
This item is in your Wish ListX
This item is in your CollectionProgramming Vertex and Pixel Shaders (Charles River Media Graphics)
X
This Item is in Your InventoryProgramming Vertex and Pixel Shaders (Charles River Media Graphics)
X
You must be logged in to review the productsX
X
X
Add Programming Vertex and Pixel Shaders (Charles River Media Graphics), When newer graphics cards started offering a programming interface to their graphics-processing unit (GPU), there was a fundamental change from fixed-function to programmable graphics hardware. This fundamental change offers a whole new level of opportuni, Programming Vertex and Pixel Shaders (Charles River Media Graphics) to the inventory that you are selling on WonderClubX
X
Add Programming Vertex and Pixel Shaders (Charles River Media Graphics), When newer graphics cards started offering a programming interface to their graphics-processing unit (GPU), there was a fundamental change from fixed-function to programmable graphics hardware. This fundamental change offers a whole new level of opportuni, Programming Vertex and Pixel Shaders (Charles River Media Graphics) to your collection on WonderClub |