top of page

(UnityShader) 05 URP UV Texture Coordinate

  • 작성자 사진: Nobody
    Nobody
  • 2020년 1월 12일
  • 1분 분량


지난번 포스트에서 색이 곧 숫자고 숫자가 곧 색이라는 것을 직접 노드를 연결하면서 배웠습니다.


그렇다면 0.5 회색 텍스처와 숫자 0.5를 더한 것의 결과값이 똑같아야 합니다.


...어째서 둘의 결과가 다른 걸까요?


이미지가 sRGB 공간으로 설정되어 있기 때문에 그렇습니다. 체크박스를 풀어주면 정상적으로 결과값이 나옵니다. 이제 0.5 회색 대신에 아래와 같은 텍스쳐를 넣어서 응용하여 봅시다.


정확한 결과 값을 얻기 위하여 임포트한 텍스처는 압축을 None으로 설정하여 압축을 풀어줍니다.


체커 텍스쳐의 중앙 부분만 왼쪽 아래로 일그러진 것을 확인 할 수 있습니다.


이전 포스트에서 배웠던 Time 노드를 추가하여 움직이게 했더니 엄청나게 구겨집니다.


텍스처 결과 값에 0.1을 곱하여 텍스쳐의 색 대비를 줄여 주면 구겨지는 것을 줄일 수 있습니다. 이걸 이용하여 타오르는 불꽃 이미지를 쉐이더로 만들어 볼 것입니다.



알파 채널이 존재하는 불꽃 이미지를 준비하고 위와 같이 연결해 줍니다.



(머임??)


마스터 노드에서 이미지가 불투명(Opaque)로 되어있어서 그렇습니다. 투명(Transparent)로 바꿔주고 0.5가 디폴트로 되어있는 AlphaClipThreshold 값을 0으로 바꿔줍니다.


AlphaClipThreshold는 정해진 값 이상부터 선형 보간을 해주기 때문에 이 수치를 0으로 해주면 알파 맵이 부드럽게 나옵니다.


불꽃이 겹칠수록 빛이 나는 성질을 살리고, 불꽃의 뒤쪽 배경이 보여야 하기 때문에 blend 모드를 Addtive로 바꾸고 two side를 켜줍니다.


Addtive 모드가 알파 채널을 인식하지 않기 때문에 알파 채널과 기존 텍스처를 곱해서 검은색으로 만들어주면 됩니다.



UV가 위로 흐르도록 노드를 작성하고 연결해주면 타오르는 불꽃 완성입니다.

Commenti


bottom of page