mov
|
0x00
|
이동
|
데이터를 source1에서 destination으로 이동, 구성 요소 전체
|
add
|
0x01
|
더하기
|
destination = source1 + source2, 구성 요소 전체
|
sub
|
0x02
|
빼기
|
destination = source1 - source2, 구성 요소 전체
|
mul
|
0x03
|
곱하기
|
destination = source1 * source2, 구성 요소 전체
|
div
|
0x04
|
나누기
|
destination = source1 / source2, 구성 요소 전체
|
rcp
|
0x05
|
역
|
destination = 1/source1, 구성 요소 전체
|
min
|
0x06
|
최소
|
destination = minimum(source1,source2), 구성 요소 전체
|
max
|
0x07
|
최대
|
destination = maximum(source1,source2), 구성 요소 전체
|
frc
|
0x08
|
소수
|
destination = source1 - (float)floor(source1), 구성 요소 전체
|
sqt
|
0x09
|
제곱근
|
destination = sqrt(source1), 구성 요소 전체
|
rsq
|
0x0a
|
역의 근
|
destination = 1/sqrt(source1), 구성 요소 전체
|
pow
|
0x0b
|
멱
|
destination = pow(source1,source2), 구성 요소 전체
|
log
|
0x0c
|
로그
|
destination = log_2(source1), 구성 요소 전체
|
exp
|
0x0d
|
지수
|
destination = 2^source1, 구성 요소 전체
|
nrm
|
0x0e
|
표준화
|
destination = normalize(source1), 구성 요소 전체(3요소 결과만 산출하며, 대상은 .xyz 이하로 마스크 처리되어야 함)
|
sin
|
0x0f
|
사인
|
destination = sin(source1), 구성 요소 전체
|
cos
|
0x10
|
코사인
|
destination = cos(source1), 구성 요소 전체
|
crs
|
0x11
|
외적
|
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
(3요소 결과만 산출하며, 대상은 .xyz 이하로 마스크 처리되어야 함)
|
dp3
|
0x12
|
내적
|
destination = source1.x*source2.x + source1.y*source2.y + source1.z*source2.z
|
dp4
|
0x13
|
내적
|
destination = source1.x*source2.x + source1.y*source2.y + source1.z*source2.z + source1.w*source2.w
|
abs
|
0x14
|
절대
|
destination = abs(source1), 구성 요소 전체
|
neg
|
0x15
|
무효화
|
destination = -source1, 구성 요소 전체
|
sat
|
0x16
|
포화
|
destination = maximum(minimum(source1,1),0), 구성 요소 전체
|
m33
|
0x17
|
곱하기 행렬 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)
(3요소 결과만 산출하며, 대상은 .xyz 이하로 마스크 처리되어야 함)
|
m44
|
0x18
|
곱하기 행렬 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
|
곱하기 행렬 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)
(3요소 결과만 산출하며, 대상은 .xyz 이하로 마스크 처리되어야 함)
|
kil
|
0x27
|
삭제(조각 셰이더만 해당)
|
단일 스칼라 값의 소스 구성 요소가 0보다 작은 경우 조각은 삭제되고 프레임 버퍼에 그려지지 않습니다. (대상 레지스터는 모두 0으로 설정되어야 함)
|
tex
|
0x28
|
텍스처 샘플(조각 셰이더만 해당)
|
destination은 source1 좌표에서 source2 텍스처의 로드와 동일합니다. 이 경우 source2는 샘플러 형식이어야 합니다.
|
sge
|
0x29
|
같거나 큰 경우 설정
|
destination = source1 >= source2 ? 1 : 0, 구성 요소 전체
|
slt
|
0x2a
|
작은 경우 설정
|
destination = source1 < source2 ? 1 : 0, 구성 요소 전체
|
seq
|
0x2c
|
같은 경우 설정
|
destination = source1 == source2 ? 1 : 0, 구성 요소 전체
|
sne
|
0x2d
|
같지 않은 경우 설정
|
destination = source1 != source2 ? 1 : 0, 구성 요소 전체
|