티스토리 뷰
선 결과물
개인적으로 Screen Position 노드를 사용할 때,
실제 화면 비율과 상관없이 가로 세로 UV 값이
0 ~ 1로 제공 되는 것이 마음에 들지 않았다.
이렇게 텍스처가 늘어나게 되는데,
화면비율을 고려하면 1:1.xx... 정도 되어야 하는거 아닌가?
그래서 화면비율을 계산하고
그 비율을 그대로 화면 UV에 곱해버렸다.
그런데 이게 가로를 1로 볼 수도 있고
세로를 1로 볼 수도 있기 때문에
옵션이 필요했다.
GPT가 이런 소리를 하는데,
Branch 대신 Lerp를 사용하였다.
그리고 역수 노드라는 것을 알게 되었다.
근사값 만으로 충분하면 Fast를 쓰고 말겠다...
서브 그래프로 만들었고, 테스트를 위해 엄청 간단한 쉐이더를 만들었는데,
문제발생 문제발생
화면 좌측하단 UV 값이 0,0이기 때문에 이렇게 되어버렸다.
진짜 뭐 아무래도 상관은 없는데
정중앙에 있으면 보기가 좋으려나?
화면 전체를 UV로 사용할 때
굳이 좌측 하단에 붙어있는 모양이 이상할 것 같긴 하고...
Center Mode 자체는 화면 정중앙의 UV값을
(0, 0)으로 보여주기 때문에 상관없고...
초기 값에서 (0.5, 0.5)을 빼고 정규화한 뒤,
(0.5, 0.5)를 다시 더해줬다.
왼쪽이 화면의 가로를 1로 정규화한 것,
오른쪽이 화면의 세로를 1로 정규화한 것
아무튼 정규화한 Screen UV를 사용해서
가로 세로 찌그러짐 없이 텍스처를 그릴 수 있다.
(찌그러져 보이는 건 왜곡 효과를 추가했기 때문이다.)
마지막으로 한 마디
뭐 이런 상태의 Image 오브젝트를 만들었는데,
화면 우측에 이미지가 그려지지 않는 부분이 생겼다.
실제 스프라이트 이미지의 크기 만큼
Mesh가 생성되더라도,
Mesh Type이 Tight로 설정되어 있다면
투명해서 그릴 필요가 없는 영역은
그려지지 않는다.
Full Rect로 설정하면
잘리는 부분이 생기지 않는다.
보통의 Image 오브젝트에선 나타날 일은 아닌데,
괜히 Screen Position 노드로
이상한짓 하려다가 발생한 문제일 뿐...
'유니티 > Shader' 카테고리의 다른 글
Shader Graph로 텍스처를 벽지로 만들기 (0) | 2025.09.17 |
---|---|
GPT 괴롭혀서 Stencil을 활용한 착시 효과 구현하기 (0) | 2025.09.16 |
유니티 URP Shader Training 01 (0) | 2021.06.23 |
가려져도 보이는 쉐이더 (0) | 2021.02.01 |
알파테스팅(컷아웃)쉐이더를작성할뿐인초라한글 (0) | 2020.07.10 |