이전 포스트에서 선형 보간으로 텍스처를 섞었던 것 처럼 특정 채널에만Roughness(Smoothness)를 넣어봅시다.
참고로 스무스니스는 러프니스를 반전한 값입니다. PBR에서는 러프니스가 기준이고 오직 유니티 엔진만 반대 기준인 스무스니스를 사용하기 때문에 앞으로는 러프니스라고 부르도록 하겠습니다.
R채널을 그대로 러프니스에 연결해 봅시다.
R채널만 러프니스 값이 들어간 것을 확인할 수 있습니다만 너무 반짝 거리기 때문에 노말맵도 연결하고 러프니스 값을 줄여보도록 합시다.
R채널 자체에 0.5 정도의 값을 곱해서 러프니스 값을 절반으로 만듭니다. 하지만 아직도 보기 좋지 않네요. 채널도 B채널으로 바꾸고 노말맵도 B채널에만 들어가도록 노드를 짜봅시다.
선형 보간 함수를 사용해 URP 노말맵 부록에서 배웠듯이 완전히 비어있는 노말을 숫자로 표현하여 벡터(0,0,1)과 노말맵을 B 채널으로 선형 보간 해줍니다.
노말맵의 세기를 조절하기 위해 Lerp 함수를 한번 더 응용하여 T값을 변수로 빼고 기존의 노말맵과 비어있는 노말값인 (0,0,1)과 선형 보간합니다.
노말맵의 세기를 1 이상으로 만드려면 어떻게 해야 될까요?
R 채널과 G 채널에 1이상의 값을 곱해주면 됩니다. 단 R과 G 값이 1보다 크면 노말이 뒤집혀 버리기 때문에 Clamp 노드로 -1~1 사이의 값으로 잘라버리거나 다른 방법으로 제한해야 합니다.
저번 포스트에서 서술 했던 타임 함수로 오프셋 이동을 하게 만들면 노말맵만 움직이게 하는 것도 가능합니다.
벡터 연산
여기에 두 벡터2 U(1,2)와 V(-1,1)가 있습니다.
벡터의 합연산은 각 인자들 끼리 더해주면 됩니다.
(1-1,2+1) = (0,3)
벡터의 차연산은 자연수의 사칙연산과 똑같이 연산의 순서에 따라 결과값이 바뀝니다.
U-V = (1,2) - (-1,1) = (2,1)
V-U = (-1,1) - (1,2) = (-2,-1)
Comentarios