- Page 2 and 3: ShaderX 2 : Shader Programming Tips
- Page 4 and 5: Contents Preface vii About the Auth
- Page 6 and 7: Contents Simulation of Iridescence
- Page 8 and 9: Preface After the tremendous succes
- Page 10 and 11: About the Authors Dan Amerson Dan g
- Page 12 and 13: About the Authors currently works o
- Page 14 and 15: About the Authors where he develops
- Page 16 and 17: About the Authors River Media, 2002
- Page 18 and 19: About the Authors ATI Research, whe
- Page 20 and 21: Introduction This book is a collect
- Page 22 and 23: Introduction Nicolas Thibieroz show
- Page 24: Introduction the effects are visibl
- Page 28 and 29: Using Vertex Shaders for Geometry C
- Page 30 and 31: under D3DCAPS9.DeclType, the specif
- Page 32 and 33: } // get the 10,10,10 portion of th
- Page 34 and 35: Points Inside a Triangle N-Patches
- Page 36 and 37: Making It Fast Using a Linear Basis
- Page 40 and 41: What remains to do is write the ver
- Page 42 and 43: Appendix Say you’d like to create
- Page 44 and 45: vertex to its final position. As a
- Page 46 and 47: order to create a specific level’
- Page 48 and 49: Section I — Geometry Manipulation
- Page 50 and 51: Figure 6a: Fine geometry with morph
- Page 52 and 53: In order to (pre-) calculate a PVS,
- Page 54 and 55: Section I — Geometry Manipulation
- Page 56 and 57: References Section I — Geometry M
- Page 58 and 59: 3D Planets on the GPU Jesse Laeuchl
- Page 60 and 61: p=p+i[1]; float4 b; b[0] = pg[ p[0]
- Page 62 and 63: half noise(float3 v,sampler1D g) {
- Page 64 and 65: Conclusion References Section I —
- Page 66 and 67: Figure 1: The interconnection of cl
- Page 68 and 69: VECTOR: SpringVector VECTOR: ForceV
- Page 70 and 71: need to do is render a full-screen
- Page 72 and 73: e applied to the other faces of the
- Page 74 and 75: add r0, r1, c14 mov o6.xyzw, r0 ; 5
- Page 76 and 77: texld r2, v[aL+4].zw, s0 ;Sample ne
- Page 78 and 79: add r4.r, r1.r, -r2.r ; Subtract Cl
- Page 80 and 81: dcl 2d s2 ; (Ny,Nz) def c10, 120.0,
- Page 82 and 83: Sample Application Conclusion Refer
- Page 84 and 85: GPU simultaneously, blocking often
- Page 86 and 87: Section I — Geometry Manipulation
- Page 88 and 89:
Section I — Geometry Manipulation
- Page 90 and 91:
Section I — Geometry Manipulation
- Page 92 and 93:
Section I — Geometry Manipulation
- Page 94 and 95:
earlier. However, such methods are
- Page 96 and 97:
Conclusion Section I — Geometry M
- Page 98 and 99:
Principles Advantages Displacement
- Page 100 and 101:
At first glance, hardware support i
- Page 102 and 103:
the mesh (either the high- or low-p
- Page 104 and 105:
Art Tools Although we use our own V
- Page 106 and 107:
scatter them all over the UV domain
- Page 108 and 109:
version and then the low LOD versio
- Page 110 and 111:
Summary References Section I — Ge
- Page 112 and 113:
Section II Rendering Techniques Ren
- Page 114 and 115:
Introduction Rendering Objects as T
- Page 116 and 117:
Computing Thickness Section II —
- Page 118 and 119:
Section II — Rendering Techniques
- Page 120 and 121:
m.) The coordinate for green is thi
- Page 122 and 123:
TEXLD r0, t0, s0 // read the RGB-en
- Page 124 and 125:
depth complexity is important. If w
- Page 126 and 127:
The depth comparison barely fits wi
- Page 128 and 129:
Section II — Rendering Techniques
- Page 130 and 131:
Conclusion Section II — Rendering
- Page 132 and 133:
Screen-aligned Particles with Minim
- Page 134 and 135:
If each of the four billboard verti
- Page 136 and 137:
Section II — Rendering Techniques
- Page 138 and 139:
Hemisphere Lighting with Radiosity
- Page 140 and 141:
Radiosity Maps Hemisphere lighting
- Page 142 and 143:
Section II — Rendering Techniques
- Page 144 and 145:
#define VS AMBIENT 10 // ambient li
- Page 146 and 147:
def c0, 0.3333, 0.3333, 0.3333, 0.3
- Page 148 and 149:
Galaxy Textures Jesse Laeuchli In m
- Page 150 and 151:
We can do that by finding the inver
- Page 152 and 153:
Turbulent Sun Jesse Laeuchli Many 3
- Page 154 and 155:
A more interesting look can be achi
- Page 156 and 157:
Introduction Fragment-level Phong I
- Page 158 and 159:
If we go back to the equation, you
- Page 160 and 161:
have a single property to take care
- Page 162 and 163:
together for each material. This is
- Page 164 and 165:
Now we need to feed this info into
- Page 166 and 167:
shader though, and that’s the mad
- Page 168 and 169:
Section II — Rendering Techniques
- Page 170 and 171:
shadow. Otherwise, it’s lit. Quit
- Page 172 and 173:
code look fairly good, there is a p
- Page 174 and 175:
Introduction Specular Bump Mapping
- Page 176 and 177:
� Amount of banding for high spec
- Page 178 and 179:
Section II — Rendering Techniques
- Page 180 and 181:
Arithmetic Interpolation Section II
- Page 182 and 183:
Light Space Interpolation Consisten
- Page 184 and 185:
Normalized Specular Bump Mapping wi
- Page 186 and 187:
Introduction Voxel Rendering with P
- Page 188 and 189:
Accumulated Voxels This is the simp
- Page 190 and 191:
color is output as soon as matter i
- Page 192 and 193:
points 5, 6, 7, and 8 would be test
- Page 194 and 195:
mul r3.xyz, r2, c0.wwy // Octant 6
- Page 196 and 197:
Shadows or when it changes (animate
- Page 198 and 199:
Section II — Rendering Techniques
- Page 200 and 201:
} o.pos = pos; // copy input vertex
- Page 202 and 203:
Rendering Volumes in a Vertex & Pix
- Page 204 and 205:
Section II — Rendering Techniques
- Page 206 and 207:
Section II — Rendering Techniques
- Page 208 and 209:
Section II — Rendering Techniques
- Page 210 and 211:
Technique Normal Map Compression Ja
- Page 212 and 213:
Figure 2: Normal map compressed dir
- Page 214 and 215:
References Section II — Rendering
- Page 216 and 217:
have to simulate it using geometry.
- Page 218 and 219:
Visually, the effect is as if each
- Page 220 and 221:
Rotation and Scaling Now that we ar
- Page 222 and 223:
Filtering � Mipmapping — As we
- Page 224 and 225:
} m OffsetMap[(gi+gj*m dwOffsetMapR
- Page 226 and 227:
The Drops of Water Effect The Drops
- Page 228 and 229:
Combining All Each drop is encoded
- Page 230 and 231:
} half diffatten=0.45+0.55*(1.0-wet
- Page 232 and 233:
Introduction Advanced Water Effects
- Page 234 and 235:
Preparation of the Underwater Scene
- Page 236 and 237:
declare registers dcl position v0 /
- Page 238 and 239:
The vertex shader VS-2 (used to bui
- Page 240 and 241:
add r0.rgb, r0, t3 // t3 contains t
- Page 242 and 243:
“critical” angle (Snell’s Law
- Page 244 and 245:
method introduced by the Direct3D e
- Page 246 and 247:
calc the distorted bump-normal map
- Page 248 and 249:
mad r8, r5, c13, t2 // Use a scaled
- Page 250 and 251:
Conclusion References Section II
- Page 252 and 253:
Background This article focuses on
- Page 254 and 255:
The convolution formula for spheric
- Page 256 and 257:
dp4 r3.b, r2, cBb ; compute the fin
- Page 258 and 259:
objects. In [5], a method is presen
- Page 260 and 261:
Again, exploiting a linear operator
- Page 262 and 263:
than can be represented in the cons
- Page 264 and 265:
Acknowledgments References Section
- Page 266 and 267:
(lon). Finally, the ecliptic rectan
- Page 268 and 269:
3 Fr( �) � ( �� ) � �
- Page 270 and 271:
(...) dp4 r2.x, v0, c8 dp4 r2.y, v0
- Page 272 and 273:
mul r0.x, v0.y, v0.y mad r0.xw, r0.
- Page 274 and 275:
Where to Go from Here There are a n
- Page 276 and 277:
Introduction Deferred Shading with
- Page 278 and 279:
next power of two size above the ma
- Page 280 and 281:
set of three 3D texture coordinates
- Page 282 and 283:
texld r3, t0, s0 ; r3 = Color from
- Page 284 and 285:
D3DDECL END() }; Pixel Shader Code
- Page 286 and 287:
Better Lighting A “real” specul
- Page 288 and 289:
using translucent objects that requ
- Page 290 and 291:
Geometry buffers: 0 MRTs: nMRT�W
- Page 292 and 293:
Back Faces Only Because the camera
- Page 294 and 295:
CD Demo Summary Section II — Rend
- Page 296 and 297:
sequence, as shown in Contour by Th
- Page 298 and 299:
one-eighth of the original uncompre
- Page 300 and 301:
#define L r3 #define PWorld r1 #def
- Page 302 and 303:
� � � � � � � � �
- Page 304 and 305:
R'=2*(E.NShort) *N-V mul NShort, N,
- Page 306 and 307:
#include “..\..\Effects\Beams\Ren
- Page 308 and 309:
Figure 5: Sun surface (a) and radia
- Page 310 and 311:
Ocean Scene Section II — Renderin
- Page 312 and 313:
sq T.w, T.w mul T, T, T.w mul S, Sx
- Page 314 and 315:
oD0. The integer portion is divided
- Page 316 and 317:
over the entire frame to feed the t
- Page 318 and 319:
Layered Car Paint Shader John Isido
- Page 320 and 321:
These normals, N s and N ss, are co
- Page 322 and 323:
float3 vNp1 = microflakePerturbatio
- Page 324 and 325:
Introduction Motion Blur Using Geom
- Page 326 and 327:
Section II — Rendering Techniques
- Page 328 and 329:
VS OUTPUT o=(VSOUTPUT).5; Pos = flo
- Page 330 and 331:
Figure 4 shows comparison rendering
- Page 332 and 333:
} Summary // Environment map the ob
- Page 334 and 335:
Introduction Simulation of Iridesce
- Page 336 and 337:
Vertex Shader The vertex shader for
- Page 338 and 339:
Figure 2: Input texture maps The te
- Page 340 and 341:
Iridescence Section II — Renderin
- Page 342 and 343:
Summary References ( saturate( dot(
- Page 344 and 345:
Introduction Floating-point Cube Ma
- Page 346 and 347:
Section II — Rendering Techniques
- Page 348 and 349:
} Conclusion Demo lerp( lerp(C001,
- Page 350 and 351:
image, it is called passive stereo.
- Page 352 and 353:
target, using the same viewport and
- Page 354 and 355:
Basis First, let me point out that
- Page 356 and 357:
Camera Transformation Since it is i
- Page 358 and 359:
Image Offset Traditionally, offsett
- Page 360 and 361:
Pixel Shader Implementation Doing s
- Page 362 and 363:
phase texld r2,r0 // Dependent look
- Page 364 and 365:
Conclusion It has been proven scien
- Page 366 and 367:
the same tonal value. This techniqu
- Page 368 and 369:
Varying the Line Style Section II
- Page 370 and 371:
} color *= getStrokeColor(Tex2, Dif
- Page 372 and 373:
References Section II — Rendering
- Page 374 and 375:
Integrating Fog in Your Engine The
- Page 376 and 377:
Final Words Section II — Renderin
- Page 378 and 379:
desirable, we may soon find these a
- Page 380 and 381:
created along the length of a vecto
- Page 382 and 383:
The function of the texture coordin
- Page 384 and 385:
dcl 2d s1 dcl t0 texld r0, t0, s0 t
- Page 386 and 387:
First, we compute a few constants d
- Page 388 and 389:
to the coordinates, storing -1 as 0
- Page 390 and 391:
...and execute the 4�1 matrix vec
- Page 392 and 393:
texld r10, r10, s1 mad r5, r10.xxxx
- Page 394 and 395:
const float tcPixelBH =2*TexcoordBi
- Page 396 and 397:
mov oT1.y, r3.z Below is the last s
- Page 398 and 399:
texld r3, r7, s0 add r4, t1, c7 tex
- Page 400 and 401:
p.copy(b); r.copy(b); float rr = r.
- Page 402 and 403:
Results Section II — Rendering Te
- Page 404 and 405:
Conclusion Figure 4 shows a practic
- Page 406:
Section III Software Shaders and Sh
- Page 409 and 410:
Section III — Software Shaders an
- Page 411 and 412:
Section III — Software Shaders an
- Page 413 and 414:
Section III — Software Shaders an
- Page 415 and 416:
Section III — Software Shaders an
- Page 417 and 418:
Section III — Software Shaders an
- Page 419 and 420:
Section III — Software Shaders an
- Page 421 and 422:
x86 Shaders-ps_2_0 Shaders in Softw
- Page 423 and 424:
Section III — Software Shaders an
- Page 425 and 426:
Section III — Software Shaders an
- Page 427 and 428:
Section III — Software Shaders an
- Page 429 and 430:
Section III — Software Shaders an
- Page 431 and 432:
Section III — Software Shaders an
- Page 433 and 434:
Section III — Software Shaders an
- Page 435 and 436:
Section III — Software Shaders an
- Page 437 and 438:
Section III — Software Shaders an
- Page 439 and 440:
Section III — Software Shaders an
- Page 441 and 442:
Section III — Software Shaders an
- Page 443 and 444:
Section III — Software Shaders an
- Page 445 and 446:
Section III — Software Shaders an
- Page 447 and 448:
Section III — Software Shaders an
- Page 449 and 450:
Section III — Software Shaders an
- Page 451 and 452:
Section III — Software Shaders an
- Page 453 and 454:
Section III — Software Shaders an
- Page 455 and 456:
Section III — Software Shaders an
- Page 457 and 458:
Named Constants in Shader Developme
- Page 459 and 460:
Section III — Software Shaders an
- Page 461 and 462:
Section III — Software Shaders an
- Page 464 and 465:
Advanced Image Processing with Dire
- Page 466 and 467:
float4 RGB to HSV (float4 color) {
- Page 468 and 469:
} } b=t; } else if (i == 3) { r=p;
- Page 470 and 471:
Section IV — Image Space Advanced
- Page 472 and 473:
struct PS INPUT { float2 texCoord:T
- Page 474 and 475:
} texCoords[2] = In.texCoord + samp
- Page 476 and 477:
Section IV — Image Space Advanced
- Page 478 and 479:
Section IV — Image Space Advanced
- Page 480 and 481:
} median = max(b,c); } } return med
- Page 482 and 483:
Median-filtering the red, green, an
- Page 484 and 485:
Values connected by arrows in Figur
- Page 486 and 487:
The shader performs an extremely si
- Page 488 and 489:
Conclusion Utilizing the FFT Sectio
- Page 490 and 491:
Night Vision: Frame Buffer Postproc
- Page 492 and 493:
Quad Rendering Once the scene is st
- Page 494 and 495:
Non-Photorealistic Post-processing
- Page 496 and 497:
Color Conversions OK, so we are all
- Page 498 and 499:
Our goal is to cover the screen wit
- Page 500 and 501:
ps.1.1 def c0, 0.3, 0.59, 0.11, 0 t
- Page 502 and 503:
These are combined into a single te
- Page 504 and 505:
References The final step, in instr
- Page 506 and 507:
Introduction Image Effects with Dir
- Page 508 and 509:
� viewMatrix: View matrix. This i
- Page 510 and 511:
} // xPosition = [-1.1, 1.1] float
- Page 512 and 513:
} //===============================
- Page 514 and 515:
The square’s edge (in texture spa
- Page 516 and 517:
} // // Since all the coords are sy
- Page 518 and 519:
A spice transition: //-------------
- Page 520 and 521:
download on the ATI developer web s
- Page 522 and 523:
environment map. Since the effect i
- Page 524 and 525:
Compute the normal for ripple two a
- Page 526 and 527:
} // b/c waveAge increases. isInsid
- Page 528 and 529:
The sub-region size is determined u
- Page 530 and 531:
See Figure 13. The texture-wrapping
- Page 532 and 533:
// Select the color based on the lo
- Page 534 and 535:
Section IV — Image Space Image Ef
- Page 536 and 537:
-----------------------------------
- Page 538 and 539:
A variance over an L-shaped area fo
- Page 540 and 541:
} float s0a,s1a,s2a,s3a,la, l2a; sa
- Page 542 and 543:
} // combine Sobel edge with curren
- Page 544 and 545:
Using Pixel Shaders to Implement a
- Page 546 and 547:
glVertex2f(-1.0, -1.0); glTexCoord2
- Page 548 and 549:
} Section IV — Image Space Using
- Page 550 and 551:
Conclusion Section IV — Image Spa
- Page 552 and 553:
The X is the real part, and Y is th
- Page 554 and 555:
Introduction Real-Time Depth of Fie
- Page 556 and 557:
Figure 3: Thin lens camera Multiple
- Page 558 and 559:
Scene Rendering Vertex Shader The v
- Page 560 and 561:
struct PS OUTPUT { float4 vColor: C
- Page 562 and 563:
Figure 6: Depth of field filter ker
- Page 564 and 565:
struct PS INPUT { float2 vTexCoord:
- Page 566 and 567:
float fFocalDistance; float fFocalR
- Page 568 and 569:
matrix matWorldViewProj; //////////
- Page 570 and 571:
} v[2] = D3DXVECTOR4(0.0f, 3.4295f
- Page 572 and 573:
Pixel Shader for X Axis of Separabl
- Page 574 and 575:
} vWeights3.y = saturate(s4.a - vTh
- Page 576 and 577:
}; float2 vTap1: TEXCOORD1; float2
- Page 578 and 579:
Pass Five: Compositing the Final Ou
- Page 580 and 581:
Bokeh Section IV — Image Space Re
- Page 582:
Section V Shadows Soft Shadows by F
- Page 585 and 586:
Section V — Shadows 560 Soft Shad
- Page 587 and 588:
Section V — Shadows 562 Soft Shad
- Page 589 and 590:
Section V — Shadows 564 Soft Shad
- Page 591 and 592:
Section V — Shadows 566 Soft Shad
- Page 593 and 594:
Section V — Shadows 568 Soft Shad
- Page 595 and 596:
Section V — Shadows 570 Soft Shad
- Page 597 and 598:
Section V — Shadows 572 Soft Shad
- Page 599 and 600:
Section V — Shadows 574 Soft Shad
- Page 601 and 602:
Section V — Shadows 576 Soft Shad
- Page 603 and 604:
Section V — Shadows 578 Soft Shad
- Page 605 and 606:
Robust Object ID Shadows Sim Dietri
- Page 607 and 608:
Section V — Shadows 582 Robust Ob
- Page 609 and 610:
Section V — Shadows 584 Robust Ob
- Page 611 and 612:
Section V — Shadows 586 Robust Ob
- Page 613 and 614:
Section V — Shadows 588 Reverse E
- Page 615 and 616:
Section V — Shadows 590 Reverse E
- Page 617 and 618:
Section V — Shadows 592 Reverse E
- Page 620:
Section VI 3D Engine and Tools Desi
- Page 623 and 624:
Section VI — 3D Engine and Tools
- Page 625 and 626:
Section VI — 3D Engine and Tools
- Page 627 and 628:
Section VI — 3D Engine and Tools
- Page 629 and 630:
Section VI — 3D Engine and Tools
- Page 631 and 632:
Section VI — 3D Engine and Tools
- Page 633 and 634:
Section VI — 3D Engine and Tools
- Page 635 and 636:
Section VI — 3D Engine and Tools
- Page 637 and 638:
Section VI — 3D Engine and Tools
- Page 639 and 640:
Post-Process Fun with Effects Buffe
- Page 641 and 642:
Section VI — 3D Engine and Tools
- Page 643 and 644:
Section VI — 3D Engine and Tools
- Page 645 and 646:
Section VI — 3D Engine and Tools
- Page 647 and 648:
Section VI — 3D Engine and Tools
- Page 649 and 650:
Section VI — 3D Engine and Tools
- Page 651 and 652:
Section VI — 3D Engine and Tools
- Page 653 and 654:
Section VI — 3D Engine and Tools
- Page 655 and 656:
Section VI — 3D Engine and Tools
- Page 657 and 658:
Section VI — 3D Engine and Tools
- Page 659 and 660:
Section VI — 3D Engine and Tools
- Page 661 and 662:
Section VI — 3D Engine and Tools
- Page 663 and 664:
Section VI — 3D Engine and Tools
- Page 665 and 666:
Section VI — 3D Engine and Tools
- Page 667 and 668:
Section VI — 3D Engine and Tools
- Page 669 and 670:
Section VI — 3D Engine and Tools
- Page 671 and 672:
Section VI — 3D Engine and Tools
- Page 673 and 674:
Section VI — 3D Engine and Tools
- Page 675 and 676:
Vertex Shader Compiler David Panger
- Page 677 and 678:
Section VI — 3D Engine and Tools
- Page 679 and 680:
Section VI — 3D Engine and Tools
- Page 681 and 682:
Section VI — 3D Engine and Tools
- Page 683 and 684:
Section VI — 3D Engine and Tools
- Page 685 and 686:
Section VI — 3D Engine and Tools
- Page 687 and 688:
Section VI — 3D Engine and Tools
- Page 689 and 690:
Section VI — 3D Engine and Tools
- Page 691 and 692:
Section VI — 3D Engine and Tools
- Page 693 and 694:
Section VI — 3D Engine and Tools
- Page 695 and 696:
Section VI — 3D Engine and Tools
- Page 697 and 698:
Section VI — 3D Engine and Tools
- Page 699 and 700:
Section VI — 3D Engine and Tools
- Page 701 and 702:
Color Plate 3. The contents of the
- Page 703 and 704:
Color Plate 6. These images show th
- Page 705 and 706:
Color Plate 11. Position data (See
- Page 707 and 708:
Color Plate 15. Final render using
- Page 709 and 710:
Color Plate 18. Stereoscopic render
- Page 711 and 712:
Figure 1 (See page 471.) Figure 3 (
- Page 713 and 714:
Color Plate 23. The two ripple cent
- Page 715 and 716:
Screen shot taken from the soft sha
- Page 717 and 718:
676 Index data types, DirectX 9, 4-
- Page 719 and 720:
678 Index implementing, 520-523 mot
- Page 721 and 722:
680 Index shadow map, 562 using, 57
- Page 723 and 724:
Learn FileMaker Pro 6 1-55622-974-7
- Page 728 and 729:
About the CD The companion CD conta