nrm - ps
3D 벡터를 정규화합니다.
Syntax
nrm dst, src |
---|
라는 설치 관리자 실행 파일에 포함됩니다. 여기서
- dst는 대상 레지스터입니다.
- src는 원본 레지스터입니다.
설명
픽셀 셰이더 버전 | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
nrm | x | x | x | x | x |
이 명령은 여기에 표시된 것처럼 개념적으로 작동합니다.
squareRootOfTheSum =(src0.x*src0.x + src0.y*src0.y + src0.z*src0.z)1/2;
dest.x = src0.x * (1 / squareRootOfTheSum);
dest.y = src0.y * (1 / squareRootOfTheSum);
dest.z = src0.z * (1 / squareRootOfTheSum);
dest.w = src0.w * (1 / squareRootOfTheSum);
dest 및 src 레지스터는 같을 수 없습니다. 대상 레지스터는 임시 레지스터여야 합니다.
이 명령은 다음 수식에 따라 선형 보간을 수행합니다.
float f = src0.x*src0.x + src0.y*src0.y + src0.z*src0.z;
if (f != 0)
f = (float)(1/sqrt(f));
else
f = FLT_MAX;
dest.x = src0.x*f;
dest.y = src0.y*f;
dest.z = src0.z*f;
dest.w = src0.w*f;
관련 항목