본문 바로가기
Computer Graphics/ShaderLab, HLSL

[ShaderLab] Diffuse Warping

by 진현개발일기 2024. 3. 5.

■ Diffuse Warping

Valve 사에서 발표한 그래픽스 관련 논문에 소개된 기법이다. Warp Diffuse 혹은 Ramp Texture라고도 불린다. 이 기법은 빛 계산으로 쓰이는 공식인 노말과 라이트 벡터의 내적을 uv에 대응하는 기술이다.

 

아래 코드를 확인해야한다.

 

텍스처의 좌하단을 기준으로 (0, 0)부터 시작한다. 가로축은 u 세로축은 v. 위 코드 속 ramp 텍스처를 uv에 대응시키는 구간을 보면 RamTexture의 y축은 0.5를 고정하고 x축은 서서히 ndotl의 값에 따라 0~1사이의 값을 가져다 사용하도록 작성하였다. 이의 결과물은 아래와 같다.

 

이제 노말맵과 메인텍스처의 알베도 값을 혼용하여 적용해보겠다.

 

그럴싸해졌다. 여기서 앞서 배운 Half Vector와 노말의 내적인 스페큘러를 적용하고 ramp texture의 rgb값을 10% 증가시켜보겠다.

 

서서히 음영이 지는 것을 확인할 수 있었다. 

 

 

[GIF]

아래 gif를 통해 카메라의 위치와 각도에 따라 가져다 사용할 uv의 좌표가 달라지므로 서서히 음영이 달라지는 것을 확인할 수 있었다.

728x90