top of page
작성자 사진Nobody

(UnityShader) Koch Snowflake Part 2

최종 수정일: 2021년 1월 5일


float2 uv = float2(i.uv - 0.5)*2; 
uv.x = abs(uv.x) - 0.5; 
float segment = length(uv - float2(clamp(uv.x, - 0.25, 0.25),0)); 
col.rgb = 1 - step(0.05, segment) + float3(uv,0);

이전 포스트에서 저희는 UV를 굴절시키는 함수를 구현 했습니다. 이제 기존 쉐이더에 추가해봅시다.

float2 result = uv - (rotateMatrix * min(0,distance) * 2);

절대값 함수로 UV를 대칭시켰으니 굴절 또한 대칭 될 것입니다.


uv -= (rotateMatrix * min(0, dot(uv, rotateMatrix) ) * 2);
float segment = length(uv - float2( clamp(uv.x, -_var, _var), 0) );

uv -= (rotateMatrix * max(0, dot(uv, rotateMatrix) ) * 2);
float segment = length(uv - float2( clamp(uv.x, -_var, _var), 0) );

원하던 모양대로 작동합니다. min이 아니라 max로 바꾸면 양수 방향으로 굴절 하는 것을 수 있습니다.

저희가 원하던 모양이 나왔습니다. 이제 프랙탈 도형으로서 지금까지의 과정을 원하는 만큼 반복할 수 있게 해봅시다.







조회수 288회댓글 0개

최근 게시물

전체 보기

コメント


bottom of page