저작물 참고 필자도 해당 내용을 공부하고 있는 입장으로 주로 오픈 문서, 포럼, AI 질의 응답을 활용하여 관련 내용을 공부하였습니다. 따라서 틀린 내용이 있을 수 있습니다.
다만, 타인(AI 등)의 저작물을 침해하지 않도록 순서, 과정, 스크린샷, 코드 등 다른 저작물을 활용 또는 포함하지 않았으며, AI 등 인터넷 자료는 오로지 기술 원리 이해의 목표로만 활용하고, 본 게시글에 언급된 과정, 흐름, 본문, 게시한 코드는 AI의 복붙 없이 모두 필자가 사전에 알고 있는 그래픽스 기술과 인터넷 상에 공개된 개념을 통해 모두 직접 시도하며 직접 작성하였음을 밝힙니다. 부득이하게 어떤 자료를 인용하는 경우는 링크로 출처를 남기고 인용합니다.
보통 UV 좌표계는 2차원 좌표계이며, 좌측 하단이 (0,0)인 (특정 그래픽 라이브러리는 좌측 상단이 0,0일 수 있다.) 특징을 가지고 있다. 따라서 텍스처를 샘플링하면 네모난 모양으로 샘플링되는 것이 당연하다.
이 때 Polar Coordination 기반으로 X,Y 를 변형시켜주면 중앙이 0이고 바깥이 1인 형태로 UV를 펼칠 수 있게 되는데, 이 특징을 활용함으로써 다양한 원형 효과를 구현할 수 있다.
일단 기본 쉐이더 색상에서 시작한다.
float2 calculatedUV = float2(angle_ratio, distance_from_center);
angle 을 X 좌표로 사용하고, distance를 Y로 사용하여 그리면 아래와 같은 결과가 나오는 것을 볼 수 있다.