Posts 앰플리파이 쉐이더 입문자를 위한 60가지 노드 모음
Post
Cancel

앰플리파이 쉐이더 입문자를 위한 60가지 노드 모음

목표


  • 앰플리파이 쉐이더 그래프를 다루기 위해 필요한, 아주 기초적인 60가지 노드 익히기


목차




프로퍼티(변수)


Int

image

설명

  • 단축키 : [0]
  • 정수 타입의 값
  • 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.

Wiki



Float

image

설명

  • 단축키 : [1]
  • 실수 타입의 값
  • 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.

Wiki



Vector2

image

설명

  • 단축키 : [2]
  • 두 개의 실수(Float)로 이루어진 값
  • 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.

Wiki



Vector3

image

설명

  • 단축키 : [3]
  • 세 개의 실수(Float)로 이루어진 값
  • 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.

Wiki



Vector4

image

설명

  • 단축키 : [4]
  • 네 개의 실수(Float)로 이루어진 값
  • 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.

Wiki



Color

image

설명

  • 단축키 : [5]
  • 네 개의 실수(Float)를 통해 색상을 표현하는 값
  • Vector4와 동일하게 사용될 수 있다.
  • 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.

Wiki



Texture Sample

image

설명

  • 단축키 : [T]
  • 텍스쳐 오브젝트와 샘플링 기능이 합쳐진 형태의 노드
  • 다른 텍스쳐 오브젝트로부터 Tex를 입력받거나, 텍스쳐를 직접 선택하여 사용할 수 있다.
  • 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.
  • 노드 내에 보이는 프리뷰에 좌클릭하여, RGBA 채널 중 프리뷰에 나타낼 채널을 선택할 수 있다.

입력

  • Tex : 다른 텍스쳐 오브젝트로부터 텍스쳐를 입력받는다. 비워둘 경우, 이 노드 내에서 텍스쳐를 직접 선택해 사용한다.
  • UV : 텍스쳐를 적용할 UV를 입력받는다. 비워둘 경우, 메시의 정점 UV 데이터를 사용한다.
  • SS : 텍스쳐를 색상으로 변환할 때의 정보를 입력받는다. 보통은 비워둔다.

출력

  • RGBA : Color 또는 Vector4 타입으로 사용될 수 있는, 4채널로 이루어진 색상값
  • R, G, B, A : 각 채널의 Float 타입 값

Wiki




상수


PI

image

설명

  • 단축키 : 없음
  • 상수 PI(파이)는 세 가지 의미를 지닌다.
    1. 실수 값 : 3.14
    2. Radian(라디안) 각도 : 3.14
    3. Degree 각도 : 180˚

입력

  • Multiplier : PI에 곱해질 값. 기본 값은 1이다.

출력

  • Multiplier X PI의 계산값

예시

  • Rotator 노드를 이용해 UV를 회전시켜 텍스쳐에 적용한다.
  • Float 프로퍼티의 값이 0부터 2까지 증가할 때 PI 노드의 결과값은 0부터 약 6.28까지 증가하며, 각도로는 0도부터 360도까지 증가하는 것과 같다.

2021_0622_PI_Node_Example

Wiki



Tau

image

설명

  • 단축키 : 없음
  • 상수 Tau(타우)는 세 가지 의미를 지닌다.
    1. 실수 값 : 6.28
    2. Radian(라디안) 각도 : 6.28
    3. Degree 각도 : 360˚

예시

  • Rotator 노드를 이용해 UV를 회전시켜 텍스쳐에 적용한다.
  • Float 프로퍼티의 값이 0부터 1까지 증가할 때 Float 프로퍼티와 Tau 노드를 곱한 값은 0부터 약 6.28까지 증가하며, 각도로는 0도부터 360도까지 증가하는 것과 같다.

2021_0622_Tau_Node_Example

Wiki




정점 데이터


Vertex Position

image

설명

  • 단축키 : 없음
  • 오브젝트 공간을 기준으로, 메시 내에 존재하는 각각의 모든 정점의 위치값
  • 메시 내의 피벗 위치를 원점으로 하는 위치값을 의미한다.

출력

  • XYZ : Vector3 타입의 위치값
  • X, Y, Z : Float 타입의 값

예시

  • 0부터 1까지 변화하는 T 값에 따라 기존의 정점 위치에서 타겟 월드 좌표로 정점을 이동시킨다.

  • 위치값의 공간 변환 수행 시, Append 노드를 이용해 W 채널을 1로 넣어야 한다.

  • 앰플리파이 쉐이더의 마스터 노드는 Local Vertex가 아니라 Local Vertex Offset을 입력받으므로, 이 경우에는 최종 계산 결과에서 Vertex Position을 빼주어야 한다.

2021_0626_MoveToWPos1

Wiki



World Position

image

설명

  • 단축키 : 없음
  • 월드 공간을 기준으로, 메시 내에 존재하는 각각의 모든 정점의 위치값
  • 월드의 (0, 0, 0) 위치를 원점으로 하는 위치값을 의미한다.
  • Vertex Position 노드를 Object To World 노드를 통해 공간 변환한 것과 같다.

출력

  • XYZ : Vector3 타입의 위치값
  • X, Y, Z : Float 타입의 값

예시

  • 0부터 1까지 변화하는 T 값에 따라 기존의 정점 위치에서 타겟 월드 좌표를 향해 오브젝트 크기를 유지시킨 채로 정점을 이동시킨다.

2021_0626_MoveToWPos2

Wiki



Vertex Normal

image

설명

  • 단축키 : 없음
  • 오브젝트 공간을 기준으로, 메시 내에 존재하는 모든 정점의 노멀 벡터
  • 화면에 렌더링되는 오브젝트의 노멀 벡터를 사용하려면 World Normal 노드를 이용해야 한다.

출력

  • XYZ : Vector3 타입의 방향 벡터
  • X, Y, Z : Float 타입의 값

특징

  • 트랜스폼의 스케일 값에 영향을 받는다.(lossyScale로 나눈 값이 된다.)
  • 따라서 방향벡터로 사용하려면 Normalize하여 사용해야 한다.
  • Object To World를 통해 월드 노멀로 변환하는 경우에는 Normalize하지 않고 바로 입력으로 넣어야 한다.

Wiki



World Normal

image

설명

  • 단축키 : 없음
  • 월드 공간을 기준으로, 메시 내에 존재하는 각각의 모든 정점의 노멀 벡터
  • 실시간으로 월드에 존재하는 오브젝트의 각 정점이 갖고 있는 노멀 벡터를 의미한다.
  • Vertex Normal 노드를 Object To World 노드를 통해 공간 변환한 것과 같다.

출력

  • XYZ : Vector3 타입의 방향 벡터
  • X, Y, Z : Float 타입의 값

특징

  • Vertex Normal 노드와 달리, 트랜스폼의 Scale 값에 영향을 받지 않는다.
  • 따라서 Normalize하지 않고 즉시 방향벡터로 사용될 수 있다.

예시

  • 커스텀 라이팅에서 Dot(N, L)N으로 사용

image

Wiki



Vertex Color

image

설명

  • 단축키 : 없음
  • 각 정점이 갖고 있는 색상 데이터 값
  • 오브젝트의 메시는 각 정점마다 위치, 노멀, UV, 색상 등의 데이터를 갖고 있다. 이 노드는 통해 그 중에서 색상 값을 참조하여 출력한다.

출력

  • RGBA : Color 또는 Vector4 타입으로 사용될 수 있는, 4채널로 이루어진 색상값
  • R, G, B, A : 각 채널의 Float 타입 값

예시

  • 파티클 시스템의 색상은 Vertex Color를 통해 전달되므로, 파티클 시스템 쉐이더를 작성할 때 이용한다.

Wiki




UV


Vertex TexCoord

image

설명

  • 단축키 : 없음
  • 오브젝트가 픽셀마다 갖고 있는 텍스쳐 좌표값
  • U, V는 각각 X축, Y축 성분이며, 0 ~ 1 범위의 값을 가진다.

출력

  • UV : Vector2 타입의 UV 값
  • U, V : 각각 UV의 X, Y 좌표값

예시

  • UV의 특정 U 값을 기준으로 흑백의 마스크를 생성한다.

Wiki



Texture Coordinates

image

설명

  • 단축키 : U
  • 기본적으로 Vertex TexCoord 노드와 동일하지만, UV 타일링과 오프셋(좌표 이동) 설정이 가능하다.

입력

  • Tex : UV를 참조할 대상 텍스쳐(비워도 된다.)
  • Tiling : U, V를 타일링할 수치를 Vector2 값으로 입력한다.
  • Offset : UV 좌표를 이동시킬 수치를 Vector2 값으로 입력한다.

출력

  • UV : Tiling, Offset이 계산된, Vector2 타입의 UV 값
  • U, V : 각각 UV의 X, Y 좌표값

Wiki



Panner

image

설명

  • 단축키 : 없음
  • UV를 원하는 방향과 속도로 이동시킬 때 사용한다.
  • 사실상 Texture Coordinates 노드를 조금 다른 방식으로 바꾼 것과 다름없다.

입력

  • UV : 이동시킬 대상 UV. 주로 Vertex TexCoord 또는 Texture Coordinate 노드의 출력 UV 값을 연결해 사용한다.

  • Speed : Vector2 타입의 값으로, 각각 U, V를 이동시킬 속도를 결정한다. 노드를 클릭해서 Speed 값을 직접 입력할 수도 있고, Vector2 노드를 연결할 수도 있다.

  • Time : 주로 Time 노드를 연결해 사용하며, 현재 UV의 이동 오프셋(위치 변화량)을 결정한다. Time 노드를 연결하지 않아도 자동으로 Time 노드를 연결한 것처럼 적용된다.

출력

  • Out : Vector2 타입. 최종적으로 계산된 UV를 출력한다.

예시

  • UVU를 시간에 따라 이동시키기

2021_0628_PannerExample

Wiki



Rotator

image

설명

  • 단축키 : 없음
  • 특정 UV 좌표를 기준으로 전체 UV를 회전시킨다.
  • Time이 양수일 경우, 시계 반대방향으로 회전한다.

입력

  • UV : 회전시킬 대상 UV. 주로 Vertex TexCoord 또는 Texture Coordinate 노드의 출력 UV 값을 연결해 사용한다.

  • Anchor : 회전의 기준점이 될 UV 좌표. 노드를 클릭해서 Anchor 값을 직접 입력할 수도 있고, Vector2 노드를 연결할 수도 있다.

  • Time : 주로 Time 노드를 연결해 사용하며, 현재 UV의 회전 각도를 결정한다. Time 노드를 연결하지 않아도 자동으로 Time 노드를 연결한 것처럼 적용된다.

출력

  • Out : Vector2 타입. 최종적으로 계산된 UV를 출력한다.

예시

  • UV 좌표 (0.5, 0.5)를 기준으로 360도 회전시키기

2021_0917_Rotator_Example

Rotator 노드 내부 구조

image

Wiki




사칙 연산


Add

image

설명

  • 단축키 : [A]
  • 연결된 노드들의 값을 더한다.
  • 원하는 개수만큼 노드들을 연결할 수 있다.

입력

  • A, B, … : 더해질 값들. 노드들을 입력에 연결하여 더할 수 있다.

출력

  • 덧셈 결과값. 입력 노드들의 차원이 다를 경우 더 높은 차원의 결과값을 출력한다.

  • FloatVector2를 서로 더할 경우, Float 값을 Vector2X, Y에 모두 더한 결과를 Vector2 타입으로 출력한다. (Float와 다른 벡터 타입의 덧셈도 마찬가지)

  • Vector2Vector3를 서로 더할 경우, X, Y를 각각 더하고 Vector3Z는 그대로 유지한 채로 덧셈 결과를 Vector3 타입으로 출력한다.

예시

  • 색상은 더하면 밝아진다.

image

Wiki



Subtract

image

설명

  • 단축키 : [S]
  • 연결된 노드들의 뺄셈을 수행한다.
  • 두 노드만 연결할 수 있으며, A - B를 수행한다.
  • 두 노드의 차원이 다를 경우, 낮은 차원의 값을 높은 차원으로(예 : Float -> Vector2) 끌어올려 계산한다.

예시

  • 1 - float4(0, 1, 1, 0)float4(1, 1, 1, 1) - float4(0, 1, 1, 0)으로 계산된다.

image

Wiki



Multiply

image

설명

  • 단축키 : [M]
  • 연결된 노드들의 값을 곱한다.
  • 원하는 개수만큼 노드들을 연결할 수 있다.

입력

  • A, B, … : 곱해질 값들. 노드들을 입력에 연결하여 곱할 수 있다.

출력

  • 곱셈 결과값. 입력 노드들의 차원이 다를 경우 더 높은 차원의 결과값을 출력한다.

  • FloatVector2를 서로 곱할 경우, Float 값을 Vector2X, Y에 모두 곱한 결과를 Vector2 타입으로 출력한다. (Float와 다른 벡터 타입의 곱셈도 마찬가지)

  • Vector2Vector3를 서로 곱할 경우, X, Y를 각각 곱하고 Vector3Z는 그대로 유지한 채로 곱셈 결과를 Vector3 타입으로 출력한다.

예시

  • float4(1, 1, 1, 0) * float2(0, 1)float4(1, 1, 1, 0) * float4(0, 1, 0, 0)으로 계산된다.

image

Wiki



Divide

image

설명

  • 단축키 : [D]
  • 연결된 노드들의 나눗셈을 수행한다.
  • 두 노드만 연결할 수 있으며, A / B를 수행한다.
  • 두 노드의 차원이 다를 경우, 낮은 차원의 값을 높은 차원으로(예 : Float -> Vector2) 끌어올려 계산한다.

예시

  • 색상을 1보다 큰 값으로 나누면 어두워지고, 1보다 큰 값으로 나누면 밝아진다.

image

Wiki




단항 연산


Abs

image

설명

  • 단축키 : 없음
  • 입력 값의 절댓값을 출력한다.
  • 양수는 그대로 양수, 음수는 양수로 바꾸어 출력한다.

예시

image

Wiki



Ceil

image

설명

  • 단축키 : 없음
  • 입력 값을 올림한 값을 출력한다.
  • 예를 들어 1.12, 55, -2.3-2가 된다.

예시

image

Wiki



Floor

image

설명

  • 단축키 : 없음
  • 입력 값을 내림한 값을 출력한다.
  • 예를 들어 1.11, 55, -2.3-3이 된다.

예시

  • UV를 타일링시켜 범위를 늘린다.
  • 예시 : Tiling = 4 -> UV : 0.0 ~ 4.0
  • 그리고 UV를 각각 내림하여 서로 더한다.
  • 더한 결과를 2로 나머지 연산하면 짝수였던 부분은 0, 홀수였던 부분은 1이 되어 각각 검은색, 흰색이 된다.

2021_0626_CheckerBoard

Wiki



Round

image

설명

  • 단축키 : 없음
  • 입력 값을 반올림한 값을 출력한다.
  • 예를 들어 1.5 ~ 2.42, 2.5 ~ 3.43이 된다.

예시

image

Wiki



Fract

image

설명

  • 단축키 : 없음
  • 입력 값의 소수 부분만 출력한다.
  • 예를 들어 1.230.23, 1230, -5.67-0.67이 된다.

예시

  • 연속적으로 증가 또는 감소하는 값의 경우, 0 ~ 1 사이의 구간이 반복되게 할 수 있다.(타일링)

image

Wiki



One Minus

image

설명

  • 단축키 : 없음
  • 1 - 입력값을 출력한다.
  • 색상을 반전시킬 때 주로 사용된다.

예시

image

Wiki



Negate

image

설명

  • 단축키 : 없음
  • 양수는 음수로, 음수는 양수로 부호를 반전시켜 출력한다.

예시

image

Wiki



Saturate

image

설명

  • 단축키 : 없음
  • 입력값의 범위를 0과 1 사이로 제한한다.
  • 0보다 작은 값은 0으로, 1보다 큰 값은 1로 출력한다.
  • 0과 1 사이의 값은 그대로 출력한다.
  • 라이트, 색상 연산 등에서 매우 자주 쓰인다.
  • Saturate를 통해 0 ~ 1 범위 바깥의, 의도치 않은 값들을 제거할 수 있다.

예시

  • 가장 기본적인 라이팅(디퓨즈) 연산 Dot(N, L)의 결과는 -1 ~ 1 범위로 출력된다.
  • 하지만 라이팅 결과 값이 음수가 나오면 이를 활용할 때 의도치 않은 결과가 발생할 수 있으므로, Saturate를 통해 범위를 0 ~ 1 사이로 제한 해주어야 한다.

image

Wiki



Scale

image

설명

  • 단축키 : 없음
  • 입력값(Input Port)과 노드 내에 입력한 값을 서로 곱하여 출력한다.

Wiki




다항 연산


Power

image

설명

  • 단축키 : [E]
  • BaseExp 제곱한 결과를 출력한다.

예시

  • Fresnel, Specular와 같이 0 ~ 1 사이의 값을 갖는 연속 범위 값은 Power 노드를 통해 범위를 좁힐 수 있다.
  • 아래의 예시는 Fresnel 연산.

image

Wiki



Min

image

설명

  • 단축키 : 없음
  • 두 입력값 중에 더 작은 값을 출력한다.
  • 입력한 값의 최댓값을 설정할 수 있다.
  • 입력 값이 다중 채널일 경우(Vector2, Vector3, Vector4) 각 채널마다 따로 계산한다.

예시

  • 입력한 값(범위 -1 ~ 1)의 최댓값을 0.5로 설정한다.

image

Wiki



Max

image

설명

  • 단축키 : 없음
  • 두 입력값 중에 더 큰 값을 출력한다.
  • 입력한 값의 최솟값을 설정할 수 있다.
  • 입력 값이 다중 채널일 경우(Vector2, Vector3, Vector4) 각 채널마다 따로 계산한다.

예시

  • 입력한 값(범위 -1 ~ 1)의 최솟값을 0.2로 설정한다.

image

Wiki



Clamp

image

설명

  • 단축키 : 없음
  • 값의 최솟값과 최댓값 범위를 제한한다.
  • 입력 값을 Min ~ Max 사이 범위로 제한한다.
  • 입력 값이 Min보다 작다면 Min으로 바꾸어 출력한다.
  • 입력 값이 Max보다 크다면 Max로 바꾸어 출력한다.
  • 입력 값이 MinMax 사이라면 그대로 출력한다.

예시

  • Saturate(input)는 Clamp(input, 0, 1)과 같다.

image

Wiki



Lerp

image

설명

  • 단축키 : [L]
  • 두 입력값 A, BAlpha 값을 기반으로 선형 보간하여 출력한다.
  • Alpha가 0인 부분은 A, 1인 부분은 B를 출력하며,
    0 ~ 1 사이의 값은 해당 값에 따라 AB를 부드럽게 보간하여(섞어서) 출력한다.
  • 기준이 되는 값 또는 마스크 텍스쳐 등을 이용해 두 색상이나 텍스쳐를 혼합할 때 주로 사용된다.

입력

  • A, B : 선형 보간의 대상이 될 입력값
  • Alpha : 선형 보간의 판단 기준값.
    보통 0 ~ 1 사이의 값을 사용한다.

출력

  • A, B가 선형 보간된 결과값

예시

  • UVU 값을 기준으로 색상 혼합하기

image

Wiki



Step

image

설명

  • 단축키 : 없음
  • 입력한 두 값의 관계에 따라 0 또는 1을 출력한다.
  • A > B 인 부분에는 0을 출력한다.
  • A <= B 인 부분에는 1을 출력한다.
  • UV와 같이 연속된 값들을 불연속 영역으로 양분할 때 주로 사용한다.

예시

  • 가장 흔한 예시 중 하나로, BUV.xUV.y를 넣고 A0.0 ~ 1.0 사이의 상수를 넣으면 해당 상수를 기준점으로 흑백 양분하는 UV 마스크가 만들어진다.

2021_0624_Step_Example

Wiki



Smoothstep

image

설명

  • 단축키 : 없음
  • Step, Lerp 노드가 혼합된 듯한 기능을 제공한다.
  • 입력 값이 Min보다 작을 경우 0을 출력한다.
  • 입력 값이 Max보다 클 경우 1을 출력한다.
  • 입력 값이 Min, Max 사이일 경우 부드럽게 보간된 값을 출력한다.

예시

  • Dissolve 효과

2021_0623_Basic_Dissolve_Nodes

Wiki



Remap

image

설명

  • 단축키 : 없음
  • Min Old ~ Max Old 범위 내에서의 입력 값을 Min New ~ Max New 범위로 옮겨 출력한다.
  • 범위 재정의를 위한 복잡한 계산을 Remap 노드를 통해 간략화할 수 있다.
  • 0.6 값을 Old (0, 1)에서 New (0, 10)으로 Remap할 경우, 6이 출력된다.
  • 0.6 값을 Old (0, 1)에서 New (8, 9)으로 Remap할 경우, 8.6이 출력된다.

예시

  • Degree 프로퍼티를 0 ~ 360 사이로 입력하여, 0 ~ Tau(6.28) 범위로 Remap 시킨다.

2021_0623_Remap_Example

Wiki




벡터 연산


Append

image

설명

  • 단축키 : [V]
  • Float 값들을 모아서 하나의 벡터로 만들어 출력한다.
  • 노드 좌측 상단의 메뉴 버튼을 클릭하여 출력 타입을 선택할 수 있다.
  • 선택 가능한 출력 타입 : Vector2, Vector3, Vector4, Color

예시

image

Wiki



Component Mask

image

설명

  • 단축키 : [K]
  • 입력 벡터에서 원하는 채널만 선택하여 출력할 수 있다.
  • 노드를 클릭하여 쉐이더 에디터 좌측의 정보 탭에서 출력할 채널에 체크/해제할 수 있다.
  • 예를 들어 입력 타입이 Vector4이고 X, W에만 체크할 경우, 입력 벡터의 X, W를 새로운 Vector2X, Y에 각각 할당하여 출력한다.

예시

image

Wiki



Split

image

설명

  • 단축키 : [B]
  • 벡터의 각 채널을 나누어 출력한다.
  • 예를 들어 Vector3 값을 입력할 경우, X, Y, Z 값을 각각 나누어 사용할 수 있다.

예시

  • Color 연산의 결과를 각각 R, G, B, A 채널로 나누어 사용한다.

image

Wiki



Swizzle

image

설명

  • 단축키 : [Z]
  • 입력 벡터의 각 채널 순서를 원하는 대로 변경하여 출력할 수 있다.
  • 노드를 선택하고 에디터 좌측의 정보 탭에서 각 채널에 출력할 요소를 선택할 수 있다.

예시

image

Wiki



Normalize

image

설명

  • 단축키 : [N]
  • 입력 벡터를 정규화하여 크기가 1인 벡터로 출력한다.
  • 방향 벡터를 만들기 위해 주로 사용된다.

예시

  • 버텍스의 월드 위치로부터 특정 월드 위치를 향하는 방향 벡터를 구하기 위해, 두 위치 벡터를 서로 뺀 뒤 Normalize 노드의 입력으로 넣어주었다.

2021_0629_NormalizeExample

Wiki



Dot

image

설명

  • 단축키 : [.]
  • 두 입력 벡터를 내적한 결과를 Float로 출력한다.

예시

  • 흔히 사용되는 Fresnel 노드는 내부적으로 World NormalView Dir의 내적 연산을 이용한다.

image

Wiki



Cross

image

설명

  • 단축키 : [X]
  • 두 입력 벡터를 외적한 결과를 출력한다.

예시

  • .

Wiki



Distance

image

설명

  • 단축키 : 없음
  • 두 벡터 좌표 사이의 거리를 Float로 출력한다.

예시

  • .

Wiki



Length

image

설명

  • 단축키 : 없음
  • 입력 벡터의 길이를 Float로 출력한다.

예시

  • UVLength를 이용해 간단히 원 그리기

image

Wiki




삼각함수


Sin

image

설명

  • 단축키 : 없음
  • Sin(Input) 값을 출력한다.
  • 사인 함수는 2 * PI의 주기를 갖는 주기 함수이다.
  • 사인 함수의 출력 값의 범위는 -1 ~ 1이다.
  • Sin(0) = 0이다.
  • 일정한 주기와 깔끔한 출력 값 범위를 갖는 특성 덕분에 Time 노드와 연계하여 많이 사용된다.

image

예시

  • Time 노드의 출력을 Sin 노드의 입력으로 넣고 0.1을 곱하여 시간에 따라 -0.1 ~ 0.1 범위로 변하는 값을 만든다.
  • 이 값을 Vertex Normal 노드에 곱하여 시간에 따라 정점 노멀 방향과 역방향을 오가는 벡터를 생성하고, 마스터 노드의 Local Vertex Offset 입력으로 넣어 정점이 노멀 방향으로 박동하게 한다.

2021_0625_Sin_Example

Wiki



Cos

image

설명

  • 단축키 : 없음
  • Cos(Input) 값을 출력한다.
  • 코사인 함수는 2 * PI의 주기를 갖는 주기 함수이다.
  • 코사인 함수의 출력 값의 범위는 -1 ~ 1이다.
  • Cos(0) = 1이다.
  • 코사인 함수는 사인 함수를 x축 방향으로 -0.5 * PI 또는 1.5 * PI 만큼 옮긴 것과 같다.

image

Wiki



Tan

image

설명

  • 단축키 : 없음
  • Tan(Input) 값을 출력한다.
  • 탄젠트 함수는 잘 쓰이지는 않지만, 대표적인 삼각함수 중 하나이므로 개념을 알고 있는 것이 좋다.

image

Wiki




시간


Time

image

설명

  • 단축키 : 없음
  • 시간이 지남에 따라 계속 증가하는 값을 출력한다.

입력

  • Scale : 시간에 곱해질 값을 입력한다.

출력

  • Out : Scale이 곱해진 결과값을 출력한다.

예시

2021_1221_Time Node Example

Wiki



Sin Time

image

설명

  • 단축키 : 없음
  • Time 노드의 값을 Sin 노드의 입력으로 넣은 Sin(Time) 값을 출력한다.

출력

  • t : Sin(Time) 값을 출력한다.
  • t/2 : Sin(Time / 2) 값을 출력한다.
  • t/4 : Sin(Time / 4) 값을 출력한다.
  • t/8 : Sin(Time / 8) 값을 출력한다.

예시

  • .

Wiki



Cos Time

image

설명

  • 단축키 : 없음
  • Time 노드의 값을 Cos 노드의 입력으로 넣은 Cos(Time) 값을 출력한다.

출력

  • t : Cos(Time) 값을 출력한다.
  • t/2 : Cos(Time / 2) 값을 출력한다.
  • t/4 : Cos(Time / 4) 값을 출력한다.
  • t/8 : Cos(Time / 8) 값을 출력한다.

예시

  • .

Wiki




공간 변환


Object To World

image

설명

  • 단축키 : 없음
  • 오브젝트 공간의 위치 또는 방향 벡터를 월드 공간으로 변환하여 출력한다.
  • 위치 벡터를 변환할 때 입력 벡터의 W 값은 1이어야 한다.
  • 방향 벡터를 변환할 때 입력 벡터의 W 값은 0이어야 한다.
  • Vector3 타입의 위치 벡터를 입력으로 넣을 때, 바로 넣지 말고 Append 노드를 통해 W 값을 1로 입력하여 Vector4 타입으로 전달해야 한다.

예시

  • .

Wiki



World To Object

image

설명

  • 단축키 : 없음
  • 월드 공간의 위치 또는 방향 벡터를 오브젝트 공간으로 변환하여 출력한다.
  • 위치 벡터를 변환할 때 입력 벡터의 W 값은 1이어야 한다.
  • 방향 벡터를 변환할 때 입력 벡터의 W 값은 0이어야 한다.
  • Vector3 타입의 위치 벡터를 입력으로 넣을 때, 바로 넣지 말고 Append 노드를 통해 W 값을 1로 입력하여 Vector4 타입으로 전달해야 한다.

예시

  • .

Wiki




스크린


Screen Position

image

설명

  • 단축키 : 없음
  • 현재 화면의 좌하단을 (0, 0), 우상단을 (1, 1)로 하는 스크린 UV 좌표 중에서 오브젝트 표면이 위치한 픽셀의 좌표를 받아 출력한다.
  • 노드 좌측 상단의 메뉴 버튼을 통해 타입을 설정할 수 있다.

타입

  • Normalized : 화면의 UV를 (0, 0) ~ (1, 1) 사이 값으로 받아온다.
  • Screen : 화면의 UV를 (0, 0) ~ (화면의 실제 너비, 높이) 사이 값으로 받아온다.

출력

  • XYZW : 화면의 UV 좌표값
  • X, Y, Z, W : 각 채널의 Float

예시

  • 화면의 UV를 그대로 색상 값으로 출력하기

image

2021_0624_Grab_ScreenUV

Wiki



Grab Screen Color

image

설명

  • 단축키 : 없음
  • Grab Pass를 추가하여 현재 렌더링되는 스크린의 색상을 받아온다.
  • 입력 UV에 맞추어 오브젝트 표면에 스크린 색상을 출력한다.
  • 반드시 에디터 좌측의 Output Node 속성에서 Blend ModeTransparent로 설정해야 정상적으로 스크린 색상을 출력할 수 있다.

입력

  • UV : 스크린 색상을 출력할 UV. 보통의 경우 Screen Position 노드를 연결하여 사용한다.

출력

  • RGBA : 스크린 색상값
  • R, G, B, A : 출력 색상의 각 채널 Float

예시

  • 뒤에 보이는 화면의 일렁임 효과

image

2021_0624_Grab_Screen_Color_Example

Wiki




효과


Fresnel

image

설명

  • 단축키 : 없음
  • 월드 노멀 벡터와 뷰 벡터(카메라의 방향벡터)의 Dot 연산을 통해 오브젝트의 외곽 영역을 강조하는 Fresnel Effect 계산의 결과를 출력한다.
  • 공식 : Bias + Scale * ( pow( 1- dot(N, V), Power) )

입력

  • Bias : 전체 계산 결과에 더해질 값 (기본값 : 0)
  • Scale : Fresnel 계산 결과에 곱해질 값 (기본값 : 1)
  • Power : dot(N, V) 계산 결과를 제곱할 지수값 (기본값 : 5)

출력

  • Out : Fresnel 계산 결과값

예시

2021_0624_Fresnel_Example

Wiki



References


This post is licensed under CC BY 4.0 by the author.