mov
|
0x00
|
move
|
flytta från källa1 till mål, komponentvis
|
add
|
0x01
|
lägg till (add)
|
mål = källa1 + källa2, komponentvis
|
sub
|
0x02
|
minus (subtract)
|
mål = källa1 - källa2, komponentvis
|
mul
|
0x03
|
multiplicera
|
mål = källa1 * källa2, komponentvis
|
div
|
0x04
|
dividera
|
mål = källa1 / källa2, komponentvis
|
rcp
|
0x05
|
reciprokt (reciprocal)
|
mål = 1/källa1, komponentvis
|
min
|
0x06
|
minimum
|
mål = minimum(källa1, källa2), komponentvis
|
max
|
0x07
|
maximum
|
mål = maximum(källa1, källa2), komponentvis
|
frc
|
0x08
|
bråk (fractional)
|
mål = källa1 - (float)floor(källa1), komponentvis
|
sqt
|
0x09
|
kvadratrot (square root)
|
mål = sqrt(källa1), komponentvis
|
rsq
|
0x0a
|
reciprokt rot (reciprocal root)
|
mål = 1/sqrt(källa 1), komponentvis
|
pow
|
0x0b
|
potens (power)
|
mål = pow(källa1, källa2), komponentvis
|
log
|
0x0c
|
logaritm
|
mål = log_2(källa1), komponentvis
|
exp
|
0x0d
|
exponent
|
mål = 2^källa1, komponentvis
|
nrm
|
0x0e
|
normalize
|
mål = normalize(källa1), komponentvis (resulterar endast i ett 3-komponentsresultat, mål måste maskeras till .xyz eller mindre)
|
sin
|
0x0f
|
sinus
|
mål = sin(källa1), komponentvis
|
cos
|
0x10
|
cosinus
|
mål = cos(källa1), komponentvis
|
crs
|
0x11
|
summaprodukt (cross product)
|
mål.x = källa1.y * källa2.z - källa1.z * källa2.y
mål.y = källa1.z * källa2.x - källa1.x * källa2.z
mål.z = källa1.x * källa2.y - källa1.y * källa2.x
(Resulterar endast i ett 3-komponentsresultat, mål måste maskeras till .xyz eller mindre)
|
dp3
|
0x12
|
punktprodukt (dot product)
|
mål = källa1.x*källa2.x + källa1.y*källa2.y + källa1.z*källa2.z
|
dp4
|
0x13
|
punktprodukt (dot product)
|
mål = källa1.x*källa2.x + källa1.y*källa2.y + källa1.z*källa2.z + källa1.w*källa2.w
|
abs
|
0x14
|
absolut
|
mål = abs(källa1), komponentvis
|
neg
|
0x15
|
negera
|
mål = källa1, komponentvis
|
sat
|
0x16
|
saturnera
|
mål = maximum(minimum(källa1,1),0), komponentvis
|
m33
|
0x17
|
multipliceringsmatris 3x3
|
mål.x = (källa1.x * källa2[0].x) + (källa1.y * källa2[0].y) + (källa1.z * källa2[0].z)
mål.y = (källa1.x * källa2[1].x) + (källa1.y * källa2[1].y) + (källa1.z * källa2[1].z)
mål.z = (källa1.x * källa2[2].x) + (källa1.y * källa2[2].y) + (källa1.z * källa2[2].z)
(Resulterar endast i ett 3-komponentsresultat, mål måste maskeras till .xyz eller mindre)
|
m44
|
0x18
|
multipliceringsmatris 4x4
|
mål.x = (källa1.x * källa2[0].x) + (källa1.y * källa2[0].y) + (källa1.z * källa2[0].z) + (källa1.w * källa2[0].w)
mål.y = (källa1.x * källa2[1].x) + (källa1.y * källa2[1].y) + (källa1.z * källa2[1].z) + (källa1.w * källa2[1].w)
mål.z = (källa1.x * källa2[2].x) + (källa1.y * källa2[2].y) + (källa1.z * källa2[2].z) + (källa1.w * källa2[2].w)
mål.w = (källa1.x * källa2[3].x) + (källa1.y * källa2[3].y) + (källa1.z * källa2[3].z) + (källa1.w * källa2[3].w)
|
m34
|
0x19
|
multipliceringsmatris 3x4
|
mål.x = (källa1.x * källa2[0].x) + (källa1.y * källa2[0].y) + (källa1.z * källa2[0].z) + (källa1.w * källa2[0].w)
mål.y = (källa1.x * källa2[1].x) + (källa1.y * källa2[1].y) + (källa1.z * källa2[1].z) + (källa1.w * källa2[1].w)
mål.z = (källa1.x * källa2[2].x) + (källa1.y * källa2[2].y) + (källa1.z * källa2[2].z) + (källa1.w * källa2[2].w)
(Resulterar endast i ett 3-komponentsresultat, mål måste maskeras till .xyz eller mindre)
|
kil
|
0x27
|
avbryt/förkasta (endast fragmentskuggning) (kill)
|
Om en skalärkällkomponent är mindre än noll, förkastas fragment och dras inte till bildrutebufferten. (Målregistret måste vara 0)
|
tex
|
0x28
|
texturexempel (endast fragmentskuggning)
|
destination lika med inläsning från textur källa2 vid koordinaterna källa1. I detta fall måste källa2 ha ett sampler-format
|
sge
|
0x29
|
ange om större än eller lika med (set-if-greater-equal)
|
mål = källa1 >= källa2 ? 1 : 0, komponentvis
|
slt
|
0x2a
|
ange om mindre än (set-if-less-than)
|
mål = källa1 < källa2 ? 1 : 0, komponentvis
|
seq
|
0x2c
|
ange om lika med (set-if-equal)
|
mål = källa1 == källa2 ? 1 : 0, komponentvis
|
sne
|
0x2d
|
ange om inte lika med (set-if-not-equal)
|
mål = källa1 != källa2 ? 1 : 0, komponentvis
|