lit - vs
두 개의 내적과 하나의 지수로 조명 계수를 계산하여 조명을 부분적으로 지원합니다.
Syntax
lit dst, src |
---|
라는 설치 관리자 실행 파일에 포함됩니다. 여기서
- dst는 대상 레지스터입니다.
- src는 원본 레지스터입니다.
설명
꼭짓점 셰이더 버전 | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
lit | x | x | x | x | x | x |
원본 벡터는 다음 의사 코드에 표시된 값을 포함하는 것으로 간주됩니다.
src.x = N*L ; The dot product between normal and direction to light
src.y = N*H ; The dot product between normal and half vector
src.z = ignored ; This value is ignored
src.w = exponent ; The value must be between -128.0 and 128.0
다음 코드 조각은 수행된 작업을 보여 줍니다.
dest.x = 1;
dest.y = 0;
dest.z = 0;
dest.w = 1;
float power = src.w;
const float MAXPOWER = 127.9961f;
if (power < -MAXPOWER)
power = -MAXPOWER; // Fits into 8.8 fixed point format
else if (power > MAXPOWER)
power = MAXPOWER; // Fits into 8.8 fixed point format
if (src.x > 0)
{
dest.y = src.x;
if (src.y > 0)
{
// Allowed approximation is EXP(power * LOG(src.y))
dest.z = (float)(pow(src.y, power));
}
}
감소된 정밀도 산술 연산은 대상 y 구성 요소(dest.y)를 평가할 때 허용됩니다. 구현은 거듭제곱 인수에서 8개 이상의 분수 비트를 지원해야 합니다. 내적은 법선화된 벡터를 통해 계산되고 클램프 제한은 -128~128입니다.
오류는 logp - vs 및 exp - vs 조합에 해당하거나 8비트 색 구성 요소에 대해 약 1비트 이하의 중요 비트에 해당해야 합니다.
관련 항목