Polygon 노드
설명
Width 및 Height 입력에서 지정한 크기의 UV 입력을 기반으로 일반 폴리곤 셰이프를 생성합니다. 폴리곤의 면 개수는 Sides 입력이 결정합니다. 생성된 셰이프는 Tiling And Offset 노드를 연결하여 오프셋하거나 타일링할 수 있습니다. UV 공간 내에서 셰이프를 오프셋하는 기능을 유지하기 위해 타일링된 셰이프는 자동으로 반복되지 않습니다. 반복되는 폴리곤 효과를 얻으려면 먼저 Fraction 노드를 통해 입력을 연결하십시오.
참고: 이 노드는 프래그먼트 셰이더 단계에서만 사용할 수 있습니다.
포트
이름 | 방향 | Type | 바인딩 | 설명 |
---|---|---|---|---|
UV | 입력 | 벡터 2 | UV | 입력 UV 값 |
Sides | 입력 | 플로트 | None | 면 개수 |
Width | 입력 | 플로트 | None | 폴리곤 너비 |
높이 | 입력 | 플로트 | None | 폴리곤 높이 |
Out | 출력 | 플로트 | None | 출력 값 |
생성된 코드 예제
다음 예제 코드는 이 노드의 가능한 결과 중 하나입니다.
void Unity_Polygon_float(float2 UV, float Sides, float Width, float Height, out float Out)
{
float pi = 3.14159265359;
float aWidth = Width * cos(pi / Sides);
float aHeight = Height * cos(pi / Sides);
float2 uv = (UV * 2 - 1) / float2(aWidth, aHeight);
uv.y *= -1;
float pCoord = atan2(uv.x, uv.y);
float r = 2 * pi / Sides;
float distance = cos(floor(0.5 + pCoord / r) * r - pCoord) * length(uv);
Out = saturate((1 - distance) / fwidth(distance));
}