언리얼/Shading

언리얼5 기본 셰이딩 따라하기 - 4

스스배 2023. 12. 25. 14:50

 

https://www.youtube.com/watch?v=pF_5etchEvE

 

 

 

회전하는 마스킹 

 

HLSL 코드

float result = 0;

for (int i = 0; i < nSides; i++)
{
    float angle = (i / nSides) * 2 * 3.14 + t;
    float2 pos = center + radius * float2(cos(angle), sin(angle));
    result += length(pos - uv) < size;
}

return result;

 

nSides: 그려질 원의 개수, 

angle: 그려질 원의 라디안 값

t: 시간

center: 원의 중심

pos: 원의 중심으로 부터 얼마나 떨어져 있는지

result: 원의 방정식을 이용해 원 그리기

 

※ result를 계속해서 더해주는 이유: =만 있을 경우에는 이전 값이 지워지고 갱신하게 됨

대신 +를 해주면 이전값은 그대로고 지금값을 추가하는 형태로 계산