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
Join the experts who read Tom's Hardware for the inside track on enthusiast PC tech news — and have for over 25 years. We'll send breaking news and in-depth reviews of CPUs, GPUs, AI, maker hardware and more straight to your inbox.