mov
|
0x00
|
move
|
Przenosi dane z parametru source1 do parametru destination, według składowych
|
add
|
0x01
|
add
|
destination = source1 + source2, według składowych
|
sub
|
0x02
|
subtract
|
destination = source1 – source2, według składowych
|
mul
|
0x03
|
multiply
|
destination = source1 * source2, według składowych
|
div
|
0x04
|
divide
|
destination = source1 / source2, według składowych
|
rcp
|
0x05
|
reciprocal
|
destination = 1 / source1, według składowych
|
min.
|
0x06
|
minimum
|
destination = minimum(source1,source2), według składowych
|
max
|
0x07
|
maximum
|
destination = maximum(source1,source2), według składowych
|
frc
|
0x08
|
fractional
|
destination = source1 – (float)floor(source1), według składowych
|
sqt
|
0x09
|
square root
|
destination = sqrt(source1), według składowych
|
rsq
|
0x0a
|
reciprocal root
|
destination = 1 / sqrt(source1), według składowych
|
pow
|
0x0b
|
power
|
destination = pow(source1,source2), według składowych
|
log
|
0x0c
|
logarithm
|
destination = log_2(source1), według składowych
|
exp
|
0x0d
|
exponential
|
destination = 2^source1, według składowych
|
nrm
|
0x0e
|
normalize
|
destination = normalize(source1), według składowych (generuje wynik złożony tylko z 3 składników; miejsce docelowe musi być zamaskowane nie bardziej niż na pozycjach .xyz)
|
sin
|
0x0f
|
sine
|
destination = sin(source1), według składowych
|
cos
|
0x10
|
cosine
|
destination = cos(source1), według składowych
|
crs
|
0x11
|
cross product
|
destination.x = source1.y * source2.z – source1.z * source2.y
destination.y = source1.z * source2.x – source1.x * source2.z
destination.z = source1.x * source2.y – source1.y * source2.x
Generuje produkt złożony tylko z 3 składników, miejsce docelowe musi być zamaskowane nie bardziej niż na pozycjach .xyz.
|
dp3
|
0x12
|
dot product
|
destination = source1.x*source2.x + source1.y*source2.y + source1.z*source2.z
|
dp4
|
0x13
|
dot product
|
destination = source1.x*source2.x + source1.y*source2.y + source1.z*source2.z + source1.w*source2.w
|
abs
|
0x14
|
absolute
|
destination = abs(source1), według składowych
|
neg
|
0x15
|
negate
|
destination = –source1, według składowych
|
sat
|
0x16
|
saturate
|
destination = maximum(minimum(source1,1),0), według składowych
|
m33
|
0x17
|
multiply matrix 3x3
|
destination.x = (source1.x * source2[0].x) + (source1.y * source2[0].y) + (source1.z * source2[0].z)
destination.y = (source1.x * source2[1].x) + (source1.y * source2[1].y) + (source1.z * source2[1].z)
destination.z = (source1.x * source2[2].x) + (source1.y * source2[2].y) + (source1.z * source2[2].z)
Generuje produkt złożony tylko z 3 składników, miejsce docelowe musi być zamaskowane nie bardziej niż na pozycjach .xyz.
|
m44
|
0x18
|
multiply matrix 4x4
|
destination.x = (source1.x * source2[0].x) + (source1.y * source2[0].y) + (source1.z * source2[0].z) + (source1.w * source2[0].w)
destination.y = (source1.x * source2[1].x) + (source1.y * source2[1].y) + (source1.z * source2[1].z) + (source1.w * source2[1].w)
destination.z = (source1.x * source2[2].x) + (source1.y * source2[2].y) + (source1.z * source2[2].z) + (source1.w * source2[2].w)
destination.w = (source1.x * source2[3].x) + (source1.y * source2[3].y) + (source1.z * source2[3].z) + (source1.w * source2[3].w)
|
m34
|
0x19
|
multiply matrix 3x4
|
destination.x = (source1.x * source2[0].x) + (source1.y * source2[0].y) + (source1.z * source2[0].z) + (source1.w * source2[0].w)
destination.y = (source1.x * source2[1].x) + (source1.y * source2[1].y) + (source1.z * source2[1].z) + (source1.w * source2[1].w)
destination.z = (source1.x * source2[2].x) + (source1.y * source2[2].y) + (source1.z * source2[2].z) + (source1.w * source2[2].w)
Generuje produkt złożony tylko z 3 składników, miejsce docelowe musi być zamaskowane nie bardziej niż na pozycjach .xyz.
|
kil
|
0x27
|
kill/discard (tylko moduł cieniujący fragmentów)
|
Jeśli pojedynczy skalarny składnik źródłowy jest mniejszy niż zero, fragment jest odrzucany i nie jest rysowany do bufora ramki. (Rejestr miejsca docelowego musi być ustawiony na same 0).
|
tex
|
0x28
|
texture sample (tylko moduł cieniujący fragmentów)
|
Wartość destination jest równa wartości wczytanej z tekstury source2 o współrzędnych source1. W tym przypadku parametr source2 musi mieć format próbnika.
|
sge
|
0x29
|
set-if-greater-equal
|
destination = source1 >= source2 ? 1 : 0, według składowych
|
slt
|
0x2a
|
set-if-less-than
|
destination = source1 < source2 ? 1 : 0, według składowych
|
seq
|
0x2c
|
set-if-equal
|
destination = source1 == source2 ? 1 : 0, według składowych
|
sne
|
0x2d
|
set-if-not-equal
|
destination = source1 != source2 ? 1 : 0, według składowych
|