High-Tech And Vertex Juggling - NVIDIA's New GeForce3 GPU
Features
By
Thomas Pabst
published
Pixel Shader Programming, Continued
Above you see a typical example for EMBM.
Here's a list of the rather simple texture blending instructions:
Swipe to scroll horizontally
| Texture Blending Instruction | Parameters | Explanation |
|---|---|---|
| add | dest, src1, src2 | dest = src1 + sr2 |
| sub | dest, src1, src2 | dest = src1 - src2 |
| dp3 | dest, src1, src2 | dest = ( src1.x * src2.x + src1.y * src2.y ...) |
| lrp | dest, factor, src1, src2 | dest = (factor)src1 + ( 1-factor)src2 |
| mul | dest, src0, src1 | dest = src0 * src1 |
| mad | dest, src0, src1, src2 | dest = ( src0 + src1 * src2 ) |
| mov | dest, src | dest = src |
| cnd | dest, r0.a, src1, src2 | if ( r0.a > 0.5 ) { dest = src1; } else { dest = src2; } |
The pixel shader supports argument and instruction modifiers as well, to make life easier for programmers:
Swipe to scroll horizontally
| Modifier | Explanation |
|---|---|
| r0.a | Alpha Replicate |
| 1 - r0 | Invert |
| -r0 | Negate |
| r0_bias | Bias - subtract 0.5 |
| r1+bx2 | Signed Scale - 2 * ( x - 0.5f ) |
| _x2 | double result |
| _x4 | quadruple result |
| _d2 | halve result |
| _sat | clamp < 0 to 0 and < 1 to 1 |
So far about the dry theory of pixel shader programming. Let's get to something more interesting.
Stay On the Cutting Edge: Get the Tom's Hardware Newsletter
Get Tom's Hardware's best news and in-depth reviews, straight to your inbox.
Current page: Pixel Shader Programming, Continued
Prev Page 2 Textures Per Clock Cycle, But 4 Textures Per Pass? Next Page Advances And Advantages Of The Pixel Shader
No comments yet
Comment from the forums