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
