목표
- 앰플리파이 쉐이더 그래프를 다루기 위해 필요한, 아주 기초적인 60가지 노드 익히기
목차
- 프로퍼티(변수)
- 상수
- 정점 데이터
- UV
- 사칙 연산
- 단항 연산
- 다항 연산
- 벡터 연산
- 삼각함수
- 시간
- 공간 변환
- 스크린
- 효과
프로퍼티(변수)
Int
설명
- 단축키 :
[0]
- 정수 타입의 값
- 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.
Wiki
Float
설명
- 단축키 :
[1]
- 실수 타입의 값
- 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.
Wiki
Vector2
설명
- 단축키 :
[2]
- 두 개의 실수(Float)로 이루어진 값
- 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.
Wiki
Vector3
설명
- 단축키 :
[3]
- 세 개의 실수(Float)로 이루어진 값
- 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.
Wiki
Vector4
설명
- 단축키 :
[4]
- 네 개의 실수(Float)로 이루어진 값
- 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.
Wiki
Color
설명
- 단축키 :
[5]
- 네 개의 실수(Float)를 통해 색상을 표현하는 값
- Vector4와 동일하게 사용될 수 있다.
- 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.
Wiki
Texture Sample
설명
- 단축키 :
[T]
- 텍스쳐 오브젝트와 샘플링 기능이 합쳐진 형태의 노드
- 다른 텍스쳐 오브젝트로부터
Tex
를 입력받거나, 텍스쳐를 직접 선택하여 사용할 수 있다. - 노드 좌측 상단의 메뉴를 클릭하여 프로퍼티로 변경할 수 있다.
- 노드 내에 보이는 프리뷰에 좌클릭하여, RGBA 채널 중 프리뷰에 나타낼 채널을 선택할 수 있다.
입력
Tex
: 다른 텍스쳐 오브젝트로부터 텍스쳐를 입력받는다. 비워둘 경우, 이 노드 내에서 텍스쳐를 직접 선택해 사용한다.UV
: 텍스쳐를 적용할 UV를 입력받는다. 비워둘 경우, 메시의 정점 UV 데이터를 사용한다.SS
: 텍스쳐를 색상으로 변환할 때의 정보를 입력받는다. 보통은 비워둔다.
출력
RGBA
: Color 또는 Vector4 타입으로 사용될 수 있는, 4채널로 이루어진 색상값R
,G
,B
,A
: 각 채널의 Float 타입 값
Wiki
상수
PI
설명
- 단축키 : 없음
- 상수 PI(파이)는 세 가지 의미를 지닌다.
- 실수 값 :
3.14
- Radian(라디안) 각도 :
3.14
- Degree 각도 :
180˚
- 실수 값 :
입력
Multiplier
: PI에 곱해질 값. 기본 값은 1이다.
출력
Multiplier
XPI
의 계산값
예시
- Rotator 노드를 이용해 UV를 회전시켜 텍스쳐에 적용한다.
- Float 프로퍼티의 값이 0부터 2까지 증가할 때 PI 노드의 결과값은 0부터 약 6.28까지 증가하며, 각도로는 0도부터 360도까지 증가하는 것과 같다.
Wiki
Tau
설명
- 단축키 : 없음
- 상수 Tau(타우)는 세 가지 의미를 지닌다.
- 실수 값 :
6.28
- Radian(라디안) 각도 :
6.28
- Degree 각도 :
360˚
- 실수 값 :
예시
- Rotator 노드를 이용해 UV를 회전시켜 텍스쳐에 적용한다.
- Float 프로퍼티의 값이 0부터 1까지 증가할 때 Float 프로퍼티와 Tau 노드를 곱한 값은 0부터 약 6.28까지 증가하며, 각도로는 0도부터 360도까지 증가하는 것과 같다.
Wiki
정점 데이터
Vertex Position
설명
- 단축키 : 없음
- 오브젝트 공간을 기준으로, 메시 내에 존재하는 각각의 모든 정점의 위치값
- 메시 내의 피벗 위치를 원점으로 하는 위치값을 의미한다.
출력
XYZ
: Vector3 타입의 위치값X
,Y
,Z
: Float 타입의 값
예시
-
0부터 1까지 변화하는 T 값에 따라 기존의 정점 위치에서 타겟 월드 좌표로 정점을 이동시킨다.
-
위치값의 공간 변환 수행 시,
Append
노드를 이용해W
채널을1
로 넣어야 한다. -
앰플리파이 쉐이더의 마스터 노드는
Local Vertex
가 아니라Local Vertex Offset
을 입력받으므로, 이 경우에는 최종 계산 결과에서Vertex Position
을 빼주어야 한다.
Wiki
World Position
설명
- 단축키 : 없음
- 월드 공간을 기준으로, 메시 내에 존재하는 각각의 모든 정점의 위치값
- 월드의 (0, 0, 0) 위치를 원점으로 하는 위치값을 의미한다.
Vertex Position
노드를Object To World
노드를 통해 공간 변환한 것과 같다.
출력
XYZ
: Vector3 타입의 위치값X
,Y
,Z
: Float 타입의 값
예시
- 0부터 1까지 변화하는 T 값에 따라 기존의 정점 위치에서 타겟 월드 좌표를 향해 오브젝트 크기를 유지시킨 채로 정점을 이동시킨다.
Wiki
Vertex Normal
설명
- 단축키 : 없음
- 오브젝트 공간을 기준으로, 메시 내에 존재하는 모든 정점의 노멀 벡터
- 화면에 렌더링되는 오브젝트의 노멀 벡터를 사용하려면
World Normal
노드를 이용해야 한다.
출력
XYZ
: Vector3 타입의 방향 벡터X
,Y
,Z
: Float 타입의 값
특징
- 트랜스폼의 스케일 값에 영향을 받는다.(
lossyScale
로 나눈 값이 된다.) - 따라서 방향벡터로 사용하려면
Normalize
하여 사용해야 한다. Object To World
를 통해 월드 노멀로 변환하는 경우에는Normalize
하지 않고 바로 입력으로 넣어야 한다.
Wiki
World Normal
설명
- 단축키 : 없음
- 월드 공간을 기준으로, 메시 내에 존재하는 각각의 모든 정점의 노멀 벡터
- 실시간으로 월드에 존재하는 오브젝트의 각 정점이 갖고 있는 노멀 벡터를 의미한다.
Vertex Normal
노드를Object To World
노드를 통해 공간 변환한 것과 같다.
출력
XYZ
: Vector3 타입의 방향 벡터X
,Y
,Z
: Float 타입의 값
특징
Vertex Normal
노드와 달리, 트랜스폼의Scale
값에 영향을 받지 않는다.- 따라서
Normalize
하지 않고 즉시 방향벡터로 사용될 수 있다.
예시
- 커스텀 라이팅에서
Dot(N, L)
의N
으로 사용
Wiki
Vertex Color
설명
- 단축키 : 없음
- 각 정점이 갖고 있는 색상 데이터 값
- 오브젝트의 메시는 각 정점마다 위치, 노멀, UV, 색상 등의 데이터를 갖고 있다. 이 노드는 통해 그 중에서 색상 값을 참조하여 출력한다.
출력
RGBA
: Color 또는 Vector4 타입으로 사용될 수 있는, 4채널로 이루어진 색상값R
,G
,B
,A
: 각 채널의 Float 타입 값
예시
- 파티클 시스템의 색상은
Vertex Color
를 통해 전달되므로, 파티클 시스템 쉐이더를 작성할 때 이용한다.
Wiki
UV
Vertex TexCoord
설명
- 단축키 : 없음
- 오브젝트가 픽셀마다 갖고 있는 텍스쳐 좌표값
U
,V
는 각각X축
,Y축
성분이며, 0 ~ 1 범위의 값을 가진다.
출력
UV
: Vector2 타입의 UV 값U
,V
: 각각 UV의 X, Y 좌표값
예시
- UV의 특정
U
값을 기준으로 흑백의 마스크를 생성한다.
Wiki
Texture Coordinates
설명
- 단축키 :
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
설명
- 단축키 : 없음
- UV를 원하는 방향과 속도로 이동시킬 때 사용한다.
- 사실상
Texture Coordinates
노드를 조금 다른 방식으로 바꾼 것과 다름없다.
입력
-
UV
: 이동시킬 대상 UV. 주로 Vertex TexCoord 또는 Texture Coordinate 노드의 출력 UV 값을 연결해 사용한다. -
Speed
: Vector2 타입의 값으로, 각각 U, V를 이동시킬 속도를 결정한다. 노드를 클릭해서 Speed 값을 직접 입력할 수도 있고, Vector2 노드를 연결할 수도 있다. -
Time
: 주로 Time 노드를 연결해 사용하며, 현재 UV의 이동 오프셋(위치 변화량)을 결정한다. Time 노드를 연결하지 않아도 자동으로 Time 노드를 연결한 것처럼 적용된다.
출력
Out
: Vector2 타입. 최종적으로 계산된 UV를 출력한다.
예시
UV
의U
를 시간에 따라 이동시키기
Wiki
Rotator
설명
- 단축키 : 없음
- 특정 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도 회전시키기
Rotator 노드 내부 구조
Wiki
사칙 연산
Add
설명
- 단축키 :
[A]
- 연결된 노드들의 값을 더한다.
- 원하는 개수만큼 노드들을 연결할 수 있다.
입력
A
,B
, … : 더해질 값들. 노드들을 입력에 연결하여 더할 수 있다.
출력
-
덧셈 결과값. 입력 노드들의 차원이 다를 경우 더 높은 차원의 결과값을 출력한다.
-
Float와 Vector2를 서로 더할 경우, Float 값을 Vector2의 X, Y에 모두 더한 결과를 Vector2 타입으로 출력한다. (Float와 다른 벡터 타입의 덧셈도 마찬가지)
-
Vector2와 Vector3를 서로 더할 경우, X, Y를 각각 더하고 Vector3의 Z는 그대로 유지한 채로 덧셈 결과를 Vector3 타입으로 출력한다.
예시
- 색상은 더하면 밝아진다.
Wiki
Subtract
설명
- 단축키 :
[S]
- 연결된 노드들의 뺄셈을 수행한다.
- 두 노드만 연결할 수 있으며,
A - B
를 수행한다. - 두 노드의 차원이 다를 경우, 낮은 차원의 값을 높은 차원으로(예 : Float -> Vector2) 끌어올려 계산한다.
예시
1 - float4(0, 1, 1, 0)
은float4(1, 1, 1, 1) - float4(0, 1, 1, 0)
으로 계산된다.
Wiki
Multiply
설명
- 단축키 :
[M]
- 연결된 노드들의 값을 곱한다.
- 원하는 개수만큼 노드들을 연결할 수 있다.
입력
A
,B
, … : 곱해질 값들. 노드들을 입력에 연결하여 곱할 수 있다.
출력
-
곱셈 결과값. 입력 노드들의 차원이 다를 경우 더 높은 차원의 결과값을 출력한다.
-
Float와 Vector2를 서로 곱할 경우, Float 값을 Vector2의 X, Y에 모두 곱한 결과를 Vector2 타입으로 출력한다. (Float와 다른 벡터 타입의 곱셈도 마찬가지)
-
Vector2와 Vector3를 서로 곱할 경우, X, Y를 각각 곱하고 Vector3의 Z는 그대로 유지한 채로 곱셈 결과를 Vector3 타입으로 출력한다.
예시
float4(1, 1, 1, 0) * float2(0, 1)
은float4(1, 1, 1, 0) * float4(0, 1, 0, 0)
으로 계산된다.
Wiki
Divide
설명
- 단축키 :
[D]
- 연결된 노드들의 나눗셈을 수행한다.
- 두 노드만 연결할 수 있으며,
A / B
를 수행한다. - 두 노드의 차원이 다를 경우, 낮은 차원의 값을 높은 차원으로(예 : Float -> Vector2) 끌어올려 계산한다.
예시
- 색상을 1보다 큰 값으로 나누면 어두워지고, 1보다 큰 값으로 나누면 밝아진다.
Wiki
단항 연산
Abs
설명
- 단축키 : 없음
- 입력 값의 절댓값을 출력한다.
- 양수는 그대로 양수, 음수는 양수로 바꾸어 출력한다.
예시
Wiki
Ceil
설명
- 단축키 : 없음
- 입력 값을 올림한 값을 출력한다.
- 예를 들어 1.1은
2
, 5는5
, -2.3은-2
가 된다.
예시
Wiki
Floor
설명
- 단축키 : 없음
- 입력 값을 내림한 값을 출력한다.
- 예를 들어 1.1은
1
, 5는5
, -2.3은-3
이 된다.
예시
UV
를 타일링시켜 범위를 늘린다.- 예시 : Tiling = 4 -> UV : 0.0 ~ 4.0
- 그리고
U
와V
를 각각 내림하여 서로 더한다. - 더한 결과를
2
로 나머지 연산하면 짝수였던 부분은0
, 홀수였던 부분은1
이 되어 각각 검은색, 흰색이 된다.
Wiki
Round
설명
- 단축키 : 없음
- 입력 값을 반올림한 값을 출력한다.
- 예를 들어 1.5 ~ 2.4는
2
, 2.5 ~ 3.4는3
이 된다.
예시
Wiki
Fract
설명
- 단축키 : 없음
- 입력 값의 소수 부분만 출력한다.
- 예를 들어 1.23은
0.23
, 123은0
, -5.67은-0.67
이 된다.
예시
- 연속적으로 증가 또는 감소하는 값의 경우, 0 ~ 1 사이의 구간이 반복되게 할 수 있다.(타일링)
Wiki
One Minus
설명
- 단축키 : 없음
1 - 입력값
을 출력한다.- 색상을 반전시킬 때 주로 사용된다.
예시
Wiki
Negate
설명
- 단축키 : 없음
- 양수는 음수로, 음수는 양수로 부호를 반전시켜 출력한다.
예시
Wiki
Saturate
설명
- 단축키 : 없음
- 입력값의 범위를 0과 1 사이로 제한한다.
- 0보다 작은 값은 0으로, 1보다 큰 값은 1로 출력한다.
- 0과 1 사이의 값은 그대로 출력한다.
- 라이트, 색상 연산 등에서 매우 자주 쓰인다.
Saturate
를 통해 0 ~ 1 범위 바깥의, 의도치 않은 값들을 제거할 수 있다.
예시
- 가장 기본적인 라이팅(디퓨즈) 연산
Dot(N, L)
의 결과는-1 ~ 1
범위로 출력된다. - 하지만 라이팅 결과 값이 음수가 나오면 이를 활용할 때 의도치 않은 결과가 발생할 수 있으므로,
Saturate
를 통해 범위를0 ~ 1
사이로 제한 해주어야 한다.
Wiki
Scale
설명
- 단축키 : 없음
- 입력값(Input Port)과 노드 내에 입력한 값을 서로 곱하여 출력한다.
Wiki
다항 연산
Power
설명
- 단축키 :
[E]
Base
에Exp
제곱한 결과를 출력한다.
예시
Fresnel
,Specular
와 같이0 ~ 1
사이의 값을 갖는 연속 범위 값은Power
노드를 통해 범위를 좁힐 수 있다.- 아래의 예시는
Fresnel
연산.
Wiki
Min
설명
- 단축키 : 없음
- 두 입력값 중에 더 작은 값을 출력한다.
- 입력한 값의 최댓값을 설정할 수 있다.
- 입력 값이 다중 채널일 경우(Vector2, Vector3, Vector4) 각 채널마다 따로 계산한다.
예시
- 입력한 값(범위 -1 ~ 1)의 최댓값을 0.5로 설정한다.
Wiki
Max
설명
- 단축키 : 없음
- 두 입력값 중에 더 큰 값을 출력한다.
- 입력한 값의 최솟값을 설정할 수 있다.
- 입력 값이 다중 채널일 경우(Vector2, Vector3, Vector4) 각 채널마다 따로 계산한다.
예시
- 입력한 값(범위 -1 ~ 1)의 최솟값을 0.2로 설정한다.
Wiki
Clamp
설명
- 단축키 : 없음
- 값의 최솟값과 최댓값 범위를 제한한다.
- 입력 값을
Min
~Max
사이 범위로 제한한다. - 입력 값이
Min
보다 작다면Min
으로 바꾸어 출력한다. - 입력 값이
Max
보다 크다면Max
로 바꾸어 출력한다. - 입력 값이
Min
과Max
사이라면 그대로 출력한다.
예시
- Saturate(input)는 Clamp(input, 0, 1)과 같다.
Wiki
Lerp
설명
- 단축키 :
[L]
- 두 입력값
A
,B
를Alpha
값을 기반으로 선형 보간하여 출력한다. Alpha
가 0인 부분은A
, 1인 부분은B
를 출력하며,
0 ~ 1 사이의 값은 해당 값에 따라A
와B
를 부드럽게 보간하여(섞어서) 출력한다.- 기준이 되는 값 또는 마스크 텍스쳐 등을 이용해 두 색상이나 텍스쳐를 혼합할 때 주로 사용된다.
입력
A
,B
: 선형 보간의 대상이 될 입력값Alpha
: 선형 보간의 판단 기준값.
보통 0 ~ 1 사이의 값을 사용한다.
출력
A
,B
가 선형 보간된 결과값
예시
UV
의U
값을 기준으로 색상 혼합하기
Wiki
Step
설명
- 단축키 : 없음
- 입력한 두 값의 관계에 따라 0 또는 1을 출력한다.
A > B
인 부분에는 0을 출력한다.A <= B
인 부분에는 1을 출력한다.- UV와 같이 연속된 값들을 불연속 영역으로 양분할 때 주로 사용한다.
예시
- 가장 흔한 예시 중 하나로,
B
에UV.x
나UV.y
를 넣고A
에0.0
~1.0
사이의 상수를 넣으면 해당 상수를 기준점으로 흑백 양분하는 UV 마스크가 만들어진다.
Wiki
Smoothstep
설명
- 단축키 : 없음
- Step, Lerp 노드가 혼합된 듯한 기능을 제공한다.
- 입력 값이
Min
보다 작을 경우 0을 출력한다. - 입력 값이
Max
보다 클 경우 1을 출력한다. - 입력 값이
Min
,Max
사이일 경우 부드럽게 보간된 값을 출력한다.
예시
- Dissolve 효과
Wiki
Remap
설명
- 단축키 : 없음
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 시킨다.
Wiki
벡터 연산
Append
설명
- 단축키 :
[V]
- Float 값들을 모아서 하나의 벡터로 만들어 출력한다.
- 노드 좌측 상단의 메뉴 버튼을 클릭하여 출력 타입을 선택할 수 있다.
- 선택 가능한 출력 타입 : Vector2, Vector3, Vector4, Color
예시
Wiki
Component Mask
설명
- 단축키 :
[K]
- 입력 벡터에서 원하는 채널만 선택하여 출력할 수 있다.
- 노드를 클릭하여 쉐이더 에디터 좌측의 정보 탭에서 출력할 채널에 체크/해제할 수 있다.
- 예를 들어 입력 타입이 Vector4이고 X, W에만 체크할 경우, 입력 벡터의 X, W를 새로운 Vector2의 X, Y에 각각 할당하여 출력한다.
예시
Wiki
Split
설명
- 단축키 :
[B]
- 벡터의 각 채널을 나누어 출력한다.
- 예를 들어 Vector3 값을 입력할 경우, X, Y, Z 값을 각각 나누어 사용할 수 있다.
예시
- Color 연산의 결과를 각각 R, G, B, A 채널로 나누어 사용한다.
Wiki
Swizzle
설명
- 단축키 :
[Z]
- 입력 벡터의 각 채널 순서를 원하는 대로 변경하여 출력할 수 있다.
- 노드를 선택하고 에디터 좌측의 정보 탭에서 각 채널에 출력할 요소를 선택할 수 있다.
예시
Wiki
Normalize
설명
- 단축키 :
[N]
- 입력 벡터를 정규화하여 크기가 1인 벡터로 출력한다.
- 방향 벡터를 만들기 위해 주로 사용된다.
예시
- 버텍스의 월드 위치로부터 특정 월드 위치를 향하는 방향 벡터를 구하기 위해, 두 위치 벡터를 서로 뺀 뒤
Normalize
노드의 입력으로 넣어주었다.
Wiki
Dot
설명
- 단축키 :
[.]
- 두 입력 벡터를 내적한 결과를 Float로 출력한다.
예시
- 흔히 사용되는
Fresnel
노드는 내부적으로World Normal
과View Dir
의 내적 연산을 이용한다.
Wiki
Cross
설명
- 단축키 :
[X]
- 두 입력 벡터를 외적한 결과를 출력한다.
예시
- .
Wiki
Distance
설명
- 단축키 : 없음
- 두 벡터 좌표 사이의 거리를 Float로 출력한다.
예시
- .
Wiki
Length
설명
- 단축키 : 없음
- 입력 벡터의 길이를 Float로 출력한다.
예시
- UV와 Length를 이용해 간단히 원 그리기
Wiki
삼각함수
Sin
설명
- 단축키 : 없음
Sin(Input)
값을 출력한다.- 사인 함수는
2 * PI
의 주기를 갖는 주기 함수이다. - 사인 함수의 출력 값의 범위는
-1 ~ 1
이다. Sin(0) = 0
이다.- 일정한 주기와 깔끔한 출력 값 범위를 갖는 특성 덕분에
Time
노드와 연계하여 많이 사용된다.
예시
- Time 노드의 출력을 Sin 노드의 입력으로 넣고
0.1
을 곱하여 시간에 따라-0.1 ~ 0.1
범위로 변하는 값을 만든다. - 이 값을 Vertex Normal 노드에 곱하여 시간에 따라 정점 노멀 방향과 역방향을 오가는 벡터를 생성하고, 마스터 노드의 Local Vertex Offset 입력으로 넣어 정점이 노멀 방향으로 박동하게 한다.
Wiki
Cos
설명
- 단축키 : 없음
Cos(Input)
값을 출력한다.- 코사인 함수는
2 * PI
의 주기를 갖는 주기 함수이다. - 코사인 함수의 출력 값의 범위는
-1 ~ 1
이다. Cos(0) = 1
이다.- 코사인 함수는 사인 함수를 x축 방향으로
-0.5 * PI
또는1.5 * PI
만큼 옮긴 것과 같다.
Wiki
Tan
설명
- 단축키 : 없음
Tan(Input)
값을 출력한다.- 탄젠트 함수는 잘 쓰이지는 않지만, 대표적인 삼각함수 중 하나이므로 개념을 알고 있는 것이 좋다.
Wiki
시간
Time
설명
- 단축키 : 없음
- 시간이 지남에 따라 계속 증가하는 값을 출력한다.
입력
Scale
: 시간에 곱해질 값을 입력한다.
출력
Out
: Scale이 곱해진 결과값을 출력한다.
예시
Wiki
Sin Time
설명
- 단축키 : 없음
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
설명
- 단축키 : 없음
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
설명
- 단축키 : 없음
- 오브젝트 공간의 위치 또는 방향 벡터를 월드 공간으로 변환하여 출력한다.
- 위치 벡터를 변환할 때 입력 벡터의
W
값은1
이어야 한다. - 방향 벡터를 변환할 때 입력 벡터의
W
값은0
이어야 한다. - Vector3 타입의 위치 벡터를 입력으로 넣을 때, 바로 넣지 말고
Append
노드를 통해W
값을 1로 입력하여 Vector4 타입으로 전달해야 한다.
예시
- .
Wiki
World To Object
설명
- 단축키 : 없음
- 월드 공간의 위치 또는 방향 벡터를 오브젝트 공간으로 변환하여 출력한다.
- 위치 벡터를 변환할 때 입력 벡터의
W
값은1
이어야 한다. - 방향 벡터를 변환할 때 입력 벡터의
W
값은0
이어야 한다. - Vector3 타입의 위치 벡터를 입력으로 넣을 때, 바로 넣지 말고
Append
노드를 통해W
값을 1로 입력하여 Vector4 타입으로 전달해야 한다.
예시
- .
Wiki
스크린
Screen Position
설명
- 단축키 : 없음
- 현재 화면의 좌하단을 (0, 0), 우상단을 (1, 1)로 하는 스크린 UV 좌표 중에서 오브젝트 표면이 위치한 픽셀의 좌표를 받아 출력한다.
- 노드 좌측 상단의 메뉴 버튼을 통해 타입을 설정할 수 있다.
타입
Normalized
: 화면의 UV를 (0, 0) ~ (1, 1) 사이 값으로 받아온다.Screen
: 화면의 UV를 (0, 0) ~ (화면의 실제 너비, 높이) 사이 값으로 받아온다.
출력
XYZW
: 화면의 UV 좌표값X
,Y
,Z
,W
: 각 채널의 Float 값
예시
- 화면의 UV를 그대로 색상 값으로 출력하기
Wiki
Grab Screen Color
설명
- 단축키 : 없음
- Grab Pass를 추가하여 현재 렌더링되는 스크린의 색상을 받아온다.
- 입력 UV에 맞추어 오브젝트 표면에 스크린 색상을 출력한다.
- 반드시 에디터 좌측의 Output Node 속성에서 Blend Mode를
Transparent
로 설정해야 정상적으로 스크린 색상을 출력할 수 있다.
입력
UV
: 스크린 색상을 출력할 UV. 보통의 경우 Screen Position 노드를 연결하여 사용한다.
출력
RGBA
: 스크린 색상값R
,G
,B
,A
: 출력 색상의 각 채널 Float 값
예시
- 뒤에 보이는 화면의 일렁임 효과
Wiki
효과
Fresnel
설명
- 단축키 : 없음
- 월드 노멀 벡터와 뷰 벡터(카메라의 방향벡터)의 Dot 연산을 통해 오브젝트의 외곽 영역을 강조하는 Fresnel Effect 계산의 결과를 출력한다.
- 공식 :
Bias + Scale * ( pow( 1- dot(N, V), Power) )
입력
Bias
: 전체 계산 결과에 더해질 값 (기본값 : 0)Scale
: Fresnel 계산 결과에 곱해질 값 (기본값 : 1)Power
: dot(N, V) 계산 결과를 제곱할 지수값 (기본값 : 5)
출력
Out
: Fresnel 계산 결과값