수학 머티리얼 표현식

하나 이상의 입력에 수학적 연산을 하는 표현식입니다.

Choose your operating system:

Windows

macOS

Linux

Abs

Abs 는 수학적 용어인 ‘절댓값(Absolute value)'의 약어입니다. Abs 표현식은 받은 입력의 절댓값, 즉 부호를 뗀 값을 출력합니다. 본질적으로, 양수와 0은 그대로인 반면 음수는 - 기호를 떼어 양수로 전환합니다.

예시: -0.7의 절댓값은 0.7, -1.0의 절댓값은 1.0, 1.0의 절댓값도 1.0

사용 예시: Abs는 일반적으로 내적(Dot Product)과 함께 사용하여 두 벡터 간의 각도 관계가 평행인지, 직각인지, 그 중간인지를 결정합니다. 보통 두 벡터의 내적을 구할 때 그 값은 1.0(두 평행 벡터)과 -1.0(정반대인 두 벡터) 사이에서 보간하며, 중간점 0은 두 벡터가 수직임을 나타냅니다. 이 내적의 절댓값을 취하면 양수인 값은 변하지 않지만, 음수인 값은 - 기호를 떼고 양수로 변환됩니다. 따라서 그 결과는 0(수직 벡터)과 1.0(평행 벡터, 벡터 점의 방향과 무관한 평행 벡터) 사이에서 보간됩니다. 이를 통해 두 벡터의 직교 여부만 알 수 있습니다.

Absolute value 머티리얼 표현식

Add

Add 표현식은 두 입력을 받아 더해서 결과를 출력합니다. 

여러 채널로 값을 전달하면 채널별로 더해집니다. 예를 들어 각 입력에 RGB 컬러 값을 전달하는 경우, 첫 번째 입력의 R 채널을 두 번째 입력의 R 채널에 더하고 그 결과를 출력의 R 채널에 저장하며, 첫 번째 입력의 G 채널을 두 번째 입력의 G 채널에 더하고 그 결과를 출력의 G 채널에 저장하는 방식으로 계속됩니다.

두 입력 중 하나가 단일 상수 값이 아닌 경우, 두 입력은 값의 수가 같아야 합니다. 하나만 단일 상수인 경우, 채널이 여러 개인 입력의 각 채널을 하나의 float 값에 더한 뒤 결과를 출력 값의 별도 채널에 저장합니다.

프로퍼티

설명

Const A

더할 값을 받습니다. A 입력이 사용되지 않을 경우에만 사용됩니다.

Const B

더해질 값을 받습니다. B 입력이 사용되지 않을 경우에만 사용됩니다.

입력

A

이 값에 더합니다.

B

이 값을 더합니다.

예시: 0.2와 0.4의 Add는 0.6, (0.2, -0.4, 0.6)과 (0.1, 0.5, 1.0)의 Add는 (0.3, 0.1, 1.6), (0.2, -0.4, 0.6)과 1.0의 Add는 (1.2, 0.6, 1.6)입니다.

사용 예시: Add는 색을 밝게/어둡게 하거나 UV 텍스처 좌표를 오프셋할 때 사용합니다.

Add 머티리얼 표현식

AppendVector

AppendVector 표현식을 사용하면 채널을 합쳐 원래보다 채널 수가 많은 벡터를 만들 수 있습니다. 예를 들어 두 개의 Constant 값을 덧붙여 2채널 Constant2 Vector 값을 만들 수 있습니다. 하나의 텍스처에서 채널의 순서를 재배치하거나 여러 개의 회색조 텍스처를 하나의 RGB 컬러 텍스처로 합칠 때 유용합니다.

입력

설명

A

덧붙일 값을 받습니다.

B

이 값에 덧붙입니다.

예시: 0.2과 0.4의 Append는 (0.2, 0.4), (0.2, 0.4)와 (1.0)의 Append는 (0.2, 0.4, 1.0)입니다.

AppendVector 예시

Arccosine

Arccosine 표현식은 역코사인 함수를 출력합니다.

인스트럭션 수에 반영되지 않는 자원 소모가 많은 연산입니다. 대안으로 정확도는 낮지만 더 빠른 ArccosineFast가 있습니다.

MEN_ArcCosine.png

위 이미지는 이 표현식을 적용한 결과의 두 가지 시각화를 보여줍니다.

  • 상단 바는 결과를 색으로 출력해서 보여줍니다. 바의 좌측 끝은 입력값이 -1일 때 이 표현식을 사용한 결과의 색을 보여주며, 우측 끝은 입력값이 1일 때의 결과입니다.

  • 그래프에서 X축은 -1~1 범위의 입력값을 나타냅니다. Y축은 해당 입력값에 이 표현식을 사용한 결과를 나타내며, 마찬가지로 범위는 -1~1입니다.

ArccosineFast

ArccosineFast 표현식은 정확도가 높은 Arccosine 표현식보다 계산 속도가 빠른 역코사인 근사 함수를 출력합니다. 입력은 -1~1이어야 합니다.

위의 Arccosine 표현식에서 출력값의 시각화를 확인할 수 있습니다.

Arcsine

Arcsine 표현식은 역사인 함수를 출력합니다.

인스트럭션 수에 반영되지 않는 자원 소모가 많은 연산입니다. 대안으로 정확도는 낮지만 더 빠른 ArcsineFast가 있습니다.

MEN_ArcSine.png

위 이미지는 이 표현식을 적용한 결과의 두 가지 시각화를 보여줍니다.

  • 상단 바는 결과를 색으로 출력해서 보여줍니다. 바의 좌측 끝은 입력값이 -1일 때 이 표현식을 사용한 결과의 색을 보여주며, 우측 끝은 입력값이 1일 때의 결과입니다.

  • 그래프에서 X축은 -1~1 범위의 입력값을 나타냅니다. Y축은 해당 입력값에 이 표현식을 사용한 결과를 나타내며, 마찬가지로 범위는 -1~1입니다.

ArcsineFast

ArcsineFast 표현식은 정확도가 높은 Arcsine 표현식보다 계산 속도가 빠른 역사인 근사 함수를 출력합니다. 입력은 -1~1이어야 합니다.

위의 Arcsine 표현식에서 출력값의 시각화를 확인할 수 있습니다.

Arctangent

Arctangent 표현식은 역탄젠트 함수를 출력합니다.

인스트럭션 수에 반영되지 않는 자원 소모가 많은 연산입니다. 대안으로 정확도는 낮지만 더 빠른 ArctangentFast가 있습니다.

MEN_ArcTangent.png

위 이미지는 이 표현식을 적용한 결과의 두 가지 시각화를 보여줍니다.

  • 상단 바는 결과를 색으로 출력해서 보여줍니다. 바의 좌측 끝은 입력값이 -1일 때 이 표현식을 사용한 결과의 색을 보여주며, 우측 끝은 입력값이 1일 때의 결과입니다.

  • 그래프에서 X축은 -1~1 범위의 입력값을 나타냅니다. Y축은 해당 입력값에 이 표현식을 사용한 결과를 나타내며, 마찬가지로 범위는 -1~1입니다.

Arctangent2

Arctangent2 표현식은 x / y의 역탄젠트를 출력하며, 입력 부호를 사용해 사분면을 결정합니다.

인스트럭션 수에 반영되지 않는 자원 소모가 많은 연산입니다. 대안으로 정확도는 낮지만 더 빠른 Arctangent2Fast가 있습니다.

MEN_ArcTangent2.png

위 이미지는 이 표현식을 적용한 결과의 두 가지 시각화를 보여줍니다.

  • 상단 바는 결과를 색으로 출력해서 보여줍니다. 바의 좌측 끝은 입력값이 -1일 때 이 표현식을 사용한 결과의 색을 보여주며, 우측 끝은 입력값이 1일 때의 결과입니다.

  • 그래프에서 X축은 -1~1 범위의 입력값을 나타냅니다. Y축은 해당 입력값에 이 표현식을 사용한 결과를 나타내며, 마찬가지로 범위는 -1~1입니다.

Arctangent2Fast

Arctangent2Fast 표현식은 X / Y의 역탄젠트 근사 함수를 출력하며, 입력 부호를 사용해 사분면을 결정합니다. 계산 속도는 더 빠르지만 Arctangent2 표현식보다 정확도는 낮습니다.

위의 Arctangent2 표현식에서 출력값의 시각화를 확인할 수 있습니다.

ArctangentFast

ArctangentFast 표현식은 정확도가 높은 Arctangent 표현식보다 계산 속도가 빠른 역탄젠트 근사 함수를 출력합니다.

위의 Arctangent 표현식에서 출력값의 시각화를 확인할 수 있습니다.

Ceil

Ceil 표현식은 값을 받아 더 큰 정수로 소수점을 올림 한 결과를 출력합니다. FloorFrac도 참조하세요.

예시: Ceil 0.2는 1.0, Ceil (0.2, 1.6)은 (1.0, 2.0)입니다.

Ceil 머티리얼 표현식

Clamp

Clamp 표현식은 값을 받아 최솟값과 최댓값으로 정의된 특정 범위로 결과값을 제한합니다. 최솟값이 0.0이고 최댓값이 0.5라면, 결과값은 0.0 아래로 떨어지거나 0.5를 넘지 않습니다.

프로퍼티

설명

Clamp Mode

사용할 범위제한 방식을 선택합니다. CMODE_Clamp는 범위의 상한과 하한을 모두 제한하며, CMODE_ClampMin 및 CMODE_ClampMax는 각각 하한, 상한만 제한합니다.

Min Default

범위제한 시 최솟값으로 사용할 기본값을 받습니다. Min 입력이 사용되지 않을 경우에만 사용됩니다.

Max Default

범위제한 시 최댓값으로 사용할 기본값을 받습니다. Max 입력이 사용되지 않을 경우에만 사용됩니다.

입력

Min

범위제한 시 최솟값으로 사용할 값을 받습니다.

Max

범위제한 시 최댓값으로 사용할 값을 받습니다.

예시: (0.0)~(1.0) 입력 범위에서 Min 0.0 및 Max 1.0일 때 0.3의 Clamp 결과는 0.3, Min 0.0, Max 1.0일 때 1.3의 Clamp 결과는 1.0입니다.

Clamp 머티리얼 표현식

ComponentMask

ComponentMask 표현식을 사용하면 입력에서 (R, G, B, A 중 하나 이상의) 채널 부분 집합을 선택하여 출력으로 통과시킬 수 있습니다. 입력에 존재하지 않는 채널을 통과시키려고 시도할 경우, 입력이 단일한 상수값이 아닌 이상 오류가 발생합니다. 입력이 단일 상수값인 경우는 해당 값을 각 채널로 통과시킵니다. 현재 통과되도록 선택한 채널은 표현식의 타이틀 바에 표시됩니다.

프로퍼티

설명

R

체크하면 입력값의 빨간색(첫 번째) 채널이 출력으로 통과됩니다.

G

체크하면 입력값의 녹색(두 번째) 채널이 출력으로 통과됩니다.

B

체크하면 입력값의 파란색(세 번째) 채널이 출력으로 통과됩니다.

A

체크하면 입력값의 알파(네 번째) 채널이 출력으로 통과됩니다.

예시: ComponentMask에 (0.2, 0.4, 1.0)을 입력하면 G 채널에서는 (0.4)가 출력되어, 컬러 벡터로 사용했을 때 40% 밝기의 회색조 값으로 보입니다.

Component Mask 예시

Cosine

Cosine 표현식은 [0, 1] 입력 범위와 [-1, 1] 출력 범위에서 반복되는 코사인 곡선 값을 출력합니다. 입력에 Time 표현식을 연결하여 연속 진동 파형을 출력하는 데 사용될 때가 가장 많지만, 월드스페이스 또는 스크린스페이스에서 물결을 만들 때나 연속적이고 부드러운 사이클이 필요한 경우에도 사용할 수 있습니다. 파형의 시각적 표현은 아래와 같으며, 아래는 [0, 1] 출력 범위로 스케일을 조절했습니다.

CosineWave.png

프로퍼티

설명

Period

결과 파형의 주기를 나타냅니다. 완전한 진동 한 번이 발생하는 시간, 또는 연속 파형에서 저점 또는 고점이 반복되는 데 걸리는 시간입니다. 예를 들어, 위 이미지에서 주기는 1초입니다.

사용 예시: 이 표현식은 진동 이펙트가 필요하면 언제든지 유용하게 사용할 수 있습니다. 진동의 폭과 속도는 Time 입력(속도) 또는 출력(진폭)을 곱하여 쉽게 동적으로 제어할 수 있습니다.

위 예제에서 컬러는 코사인 곡선과 같은 모양으로 진동하게 됩니다.

CrossProduct

CrossProduct 표현식은 두 3채널 벡터값 입력을 계산하여 결과를 3채널 벡터 값으로 출력합니다. 공간에 벡터가 두 개 있다면 외적은 이 두 입력에 모두 수직인 벡터입니다.

입력

설명

A

3채널 벡터값을 받습니다.

B

3채널 벡터값을 받습니다.

사용 예시: CrossProduct는 보통 두 방향에 대한 수직 방향을 계산하는 데 사용됩니다.

Cross product 예시

Divide

Divide 표현식은 두 입력값을 받아 첫 번째 입력을 두 번째 입력으로 나누고, 그 결과를 출력합니다.

여러 채널로 값을 전달하면 채널별로 나눠집니다. 예를 들어 각 입력에 RGB 컬러 값을 전달하는 경우, 첫 번째 입력의 R 채널을 두 번째 입력의 R 채널로 나누고 그 결과를 출력의 R 채널에 저장하며, 첫 번째 입력의 G 채널을 두 번째 입력의 G 채널로 나누고 그 결과를 출력의 G 채널에 저장하는 방식으로 계속됩니다.

두 입력 중 하나가 단일 float 값이 아닌 경우 두 입력의 값의 수가 같아야 합니다. 하나만 단일 상수인 경우, 채널이 여러 개인 입력의 각 채널을 하나의 float 값으로 나누고, 그 결과를 출력 값의 별도 채널에 저장합니다.

어느 채널이든 제수가 0~0.00001이면 0.00001로 올리고, 0~-0.00001이면 -0.00001로 내립니다. 0으로 나누기 오류가 발생할 가능성을 없애기 위함입니다. 하지만 이렇게 하면 채널의 출력값이 매우 커질 수 있습니다.

프로퍼티

설명

Const A

나눠질 값인 피제수를 받습니다. A 입력이 사용되지 않을 경우에만 사용됩니다.

Const B

나눌 값인 제수를 받습니다. B 입력이 사용되지 않을 경우에만 사용됩니다.

입력

A

나눠질 값인 피제수를 받습니다.

B

나눌 값인 제수를 받습니다.

예시: A=(1.0), B=(5.0)일 때 Divide를 사용하면 (0.2)가 출력되며, 결과는 어두운 회색으로 나타납니다.

Divide 머티리얼 표현식 예시

DotProduct

DotProduct 표현식은 두 입력의 내적, 즉 하나의 벡터를 다른 벡터에 투영했을 때의 길이를 계산합니다. 두 벡터 사이의 코사인에 크기(magnitude)를 곱한 값이기도 합니다. 이 계산은 감쇠 계산 기법에 많이 사용됩니다. DotProduct를 사용하려면 두 벡터 입력의 채널 수가 같아야 합니다.

입력

설명

A

길이에 관계없이 벡터나 값을 받습니다.

B

A 와 같은 길이의 벡터나 값을 받습니다.

Dot product 머티리얼 표현식

Floor

Floor 표현식은 값을 받아 더 작은 정수로 소수점을 내림 한 결과를 출력합니다. CeilFrac도 참조하세요.

예시: Floor 0.2는 0.0, Floor (0.2, 1.6)은 (0.0, 1.0)입니다.

Floor 머티리얼 표현식

Fmod

Fmod 표현식은 두 입력의 나누기 연산에서 부동 소수점의 나머지를 반환합니다. 피제수(입력 'A')는 어느 값이든 될 수 있지만, 음수인 피제수는 결과도 음수입니다. 0으로는 나눌 수 없으므로 제수(두 번째 입력)는 0이 아니어야 하지만, 제수가 음수인지 양수인지는 결과에 영향을 주지 않습니다. 보통 사용되는 예는 최댓값으로 밝기를 올려 주는 머티리얼을 만들고, 다음 프레임에서 바로 밝기를 최솟값으로 낮춘 후 다시 최댓값으로 올려야 할 때 사용합니다.

이 예시에서 FMod는 0에서 1까지의 UV 진행을 받아 녹색 채널의 X축에서 0.2UV 유닛마다 반복되는 사이클로 변환합니다.

Frac

Frac 표현식은 값을 받아 그 값의 소수점 부분을 출력합니다. 즉, 입력값이 'X'이면 결과는 'X에서 X의 Floor를 뺀 값'이 됩니다. 출력값의 범위는 0~1로, 하한 값은 포함하지만 상한 값은 포함하지 않습니다. CeilFloor도 참조하세요.

예시: (0.2)의 Frac은 (0.2)입니다. (-0.2)의 Frac은 (0.8)입니다. (0.0, 1.6, 1.0)의 Frac은 (0.0, 0.6, 0.0)입니다.

Frac 머티리얼 표현식

이 예시에서 Frac 노드는 Time을 0에서 1까지의 반복 진행으로 변환하고 있으며, 색이 (Lerp를 통해) 녹색에서 빨간색으로 변한 뒤 다시 녹색으로 되돌아가는 과정이 무한히 반복됩니다.

If

If 표현식은 두 입력을 비교한 다음, 그 결과에 따라 세 가지 입력값 중 하나를 통과시킵니다. 비교되는 두 입력은 싱글 float 값이어야 합니다.

입력

설명

A

단일 float 값을 받습니다.

B

단일 float 값을 받습니다.

A > B

A 값이 B 값보다 클 때 출력할 값을 받습니다.

A = B

A 값이 B 값과 같을 때 출력할 값을 받습니다.

A < B

A 값이 B 값보다 작을 때 출력할 값을 받습니다.

If 머티리얼 표현식

이 예시에서 If 표현식은 하이트 맵을 받은 다음, 높이가 0.45보다 작은지 큰지에 따라 빨간색 또는 녹색을 출력합니다.

LinearInterpolate

LinearInterpolate 표현식은 세 번째 입력값을 마스크로 사용해 두 입력값을 블렌딩합니다. 포토샵의 레이어 마스크처럼 두 텍스처 사이의 전환을 정의하는 마스크라고 생각하면 됩니다. 마스크의 강도 알파는 두 입력값에서 취할 색 비율을 결정합니다. 알파가 0.0이면 첫 번째 입력이 사용됩니다. 알파가 1.0이면 두 번째 입력이 사용됩니다. 알파가 0.0~1.0이면 출력은 두 입력의 블렌드가 됩니다. 블렌드는 채널별로 일어난다는 점을 명심하세요. 따라서 알파가 RGB 색이라면 알파의 빨간색 채널 값이 A와 B의 빨간색 채널 간의 블렌드를 알파의 녹색 채널과는 독립적으로 정의합니다. 알파의 녹색 채널은 A와 B의 녹색 채널 블렌딩을 정의합니다.

프로퍼티

설명

Const A

0.0에 매핑된 값입니다. A 입력이 연결되지 않은 경우에만 사용됩니다.

Const B

1.0에 매핑된 값입니다. B 입력이 연결되지 않은 경우에만 사용됩니다.

Const Alpha

마스크 알파로 사용할 값을 받습니다. 알파 입력이 연결되지 않은 경우에만 사용됩니다.

입력

A

0.0에 매핑된 값을 받습니다.

B

1.0에 매핑된 값을 받습니다.

Alpha

마스크 알파로 사용할 값을 받습니다.

프로그래머(Programmers): LinearInterpolate는 알파의 파라미터 값에 따라 A와 B를 채널별로 선형보간합니다.

Linear Interpolate 예시

Logarithm10

Logarithm10 노드는 밑이 10인 로그 값을 반환하며, 입력 값의 일반 로그라고도 합니다. 즉, 밑이 10인 어떤 값을 이 표현식으로 반환되는 수만큼 2제곱하면 그 입력 값이 나옵니다.

이 표현식에는 양수 입력값만 사용합니다.

Logarithm2

Logarithm2 노드는 입력값에 대해 밑이 2인 로그 값을 반환합니다. 즉, 밑이 2인 어떤 값을 이 표현식으로 반환되는 수만큼 2제곱하면 그 입력 값이 나옵니다.

이 표현식에는 양수 입력값만 사용합니다.

Max

Max 표현식은 두 입력을 받은 다음, 둘 중 높은 입력을 출력합니다.

컬러 입력에 이 노드를 사용하면 포토샵의 Lighten 레이어 블렌딩 모드와 비슷한 결과가 나옵니다.

Max 머티리얼 표현식

위 예시는 A가 '0', B가 '1'이므로 '1'(흰색)이 결과 베이스 컬러가 됩니다.

프로퍼티

설명

Const A

첫 번째 값을 받습니다. A 입력이 사용되지 않을 경우에만 사용됩니다.

Const B

두 번째 값을 받습니다. B 입력이 사용되지 않을 경우에만 사용됩니다.

입력

A

비교할 첫 번째 값을 받습니다.

B

비교할 두 번째 값을 받습니다.

Min

Min 표현식은 두 입력을 받은 다음, 둘 중 낮은 입력을 출력합니다.

컬러 입력에 이 노드를 사용하면 포토샵의 Darken 레이어 블렌딩 모드를 사용한 것과 비슷한 결과가 나옵니다.

Min 머티리얼 표현식

위 예시는 A가 '0', B가 '1'이므로 '0'(검은색)이 결과 베이스 컬러가 됩니다.

프로퍼티

설명

Const A

첫 번째 값을 받습니다. A 입력이 사용되지 않을 경우에만 사용됩니다.

Const B

두 번째 값을 받습니다. B 입력이 사용되지 않을 경우에만 사용됩니다.

입력

A

비교할 첫 번째 값을 받습니다.

B

비교할 두 번째 값을 받습니다.

Multiply

Multiply 표현식은 두 입력을 받아 곱한 다음, 결과를 출력합니다. 컬러 값을 입력으로 전달하면 포토샵의 Multiply 레이어 블렌딩 모드와 비슷한 결과가 나옵니다.

여러 채널로 값을 전달하면 채널마다 곱해집니다. 예를 들어 각 입력에 RGB 컬러 값을 전달하는 경우, 첫 번째 입력의 R 채널을 두 번째 입력의 R 채널로 곱하고 그 결과를 출력의 R 채널에 저장하며, 첫 번째 입력의 G 채널을 두 번째 입력의 G 채널로 곱하고 그 결과를 출력의 G 채널에 저장하는 방식으로 계속됩니다.

두 입력 중 하나가 단일 float 값이 아닌 경우 두 입력의 값의 수가 같아야 합니다. 하나만 단일 상수인 경우, 채널이 여러 개인 입력의 각 채널에 하나의 float 값을 곱해 출력 값의 별도 채널에 저장합니다.

프로퍼티

설명

Const A

곱할 첫 번째 값을 받습니다. A 입력이 사용되지 않을 경우에만 사용됩니다.

Const B

곱할 두 번째 값을 받습니다. B 입력이 사용되지 않을 경우에만 사용됩니다.

입력

A

곱할 첫 번째 값을 받습니다.

B

곱할 두 번째 값을 받습니다.

언리얼 엔진에서는 머티리얼 범위가 [0,1]로 제한되지 않는다는 점을 잊지 마세요. Multiply 결과 색/값이 1보다 크면 색이 밝아집니다.

예시: 0.4와 0.5의 Multiply는 0.2이고, (0.2, -0.4, 0.6)과 (0.0, 2.0, 1.0)의 Multiply는 (0.0, -0.8, 0.6)이며, (0.2, -0.4, 0.6)과 0.5의 Multiply는 (0.1, -0.2, 0.3)입니다.

사용 예시: Multiply는 색/텍스처를 밝거나 어둡게 할 때 또는 텍스처의 UV를 조작할 때 자주 사용됩니다.

UV에 1을 곱한 뒤 2를 곱할 때 텍스처 스케일이 어떻게 변화하는지에 주목하세요.

Normalize

Normalize 표현식은 입력의 정규화된 값을 계산하여 출력합니다. 정규화된 벡터(단위 벡터)의 전체 길이는 1.0입니다. 즉, 입력의 각 요소를 벡터의 총 세기(길이)로 나눕니다.

예시: Normalize에 (0, 2, 0) 또는 (0, 0.2, 0)을 통과시키면 (0, 1, 0)을 출력합니다. Normalize에 (0, 1, -1)을 통과시키면 (0, 0.707, -0.707)을 출력합니다. 한 가지 특수한 경우는 요소가 모두 0인 벡터로, 출력값이 변경되지 않습니다.

정규화 입력 벡터

비정규화 입력 벡터

Normal 머티리얼 출력에 연결되는 표현식은 정규화할 필요가 없습니다.

OneMinus

OneMinus 표현식은 입력값 ‘X'를 받아 ‘1에서 X를 뺀 값'을 출력합니다. 이 작업은 채널별로 이뤄집니다.

예시: 0.4의 OneMinus는 0.6, (0.2, 0.5, 1.0)의 OneMinus는 (0.8, 0.5, 0.0), (0.0, -0.4, 1.6)의 OneMinus는 (1.0, 1.4, -0.6)입니다.

사용 예시: 입력 색의 범위가 [0,1]인 경우, OneMinus는 흔히 ‘반전(invert)'이라고 불리는 것과 같은 효과를 구현합니다. OneMinus는 입력에 더하면 흰색이 되는 보색을 반환합니다.

OneMinus 노드를 추가하면 텍스처 샘플의 값이 반전됩니다.

Power

Power 표현식은 두 입력을 받습니다. 하나는 밑 값 ( Base ), 다른 하나는 지수 ( Exp )입니다. 밑 값을 지수만큼 거듭제곱한 뒤 결과를 출력합니다. 즉, BaseExp 번 스스로 곱한 값을 반환합니다.

프로퍼티

설명

Const Exponent

지수 값을 받습니다. Exp 입력이 사용되지 않을 경우에만 사용됩니다.

입력

Base

밑 값을 받습니다.

Exp

지수 값을 받습니다.

예시: Base 0.5, Exp 2.0의 Power는 0.25입니다.

사용 예시: 전달되는 색의 범위가 [0,1]인 경우, Power는 매우 밝은 값일 때는 약간만 어두워지지만 값이 어두우면 밝기가 급격히 어두워지는 일종의 대비 조절 효과를 냅니다.

Power 노드를 추가하면 텍스처 샘플의 대비가 증가합니다.

Round

Round 표현식은 입력값을 가장 가까운 정수로 반올림합니다. 입력값의 소수 부분이 0.5 이상인 경우 출력값은 반올림됩니다. 그렇지 않은 경우 출력값은 내립니다.

Round 전

Round 후

예시:

  • 1.1의 Round는 1입니다.

  • 1.4의 Round는 1입니다.

  • 1.5의 Round는 2입니다.

  • 1.85의 Round는 2입니다.

Saturate

Saturate 노드는 값을 0~1로 범위제한합니다. 값이 0보다 작으면 0으로 올리고, 1보다 크면 1로 내립니다. 0~1인 값은 그대로 유지됩니다. Saturate의 인스트럭션은 현재 대부분 그래픽 하드웨어에서 거의 비용이 들지 않으므로, 입력값 또는 출력값을 0~1로 범위제한하려는 경우 이 노드를 사용하면 머티리얼 퍼포먼스에 거의 영향을 주지 않습니다.

Saturate 머티리얼 표현식

사용 예시: 이 노드는 출력값 또는 입력값을 0~1로 범위제한해야 할 때 사용하면 됩니다.

Step

Step 머티리얼 표현식은 각 X 값이 Y의 참조 값보다 큰지 작은지에 따라 0 또는 1을 반환합니다.

아래에는 선형 그레이디언트(0에서 1)가 X 입력에 연결되어 있습니다. Y의 값(0.25)이 참조 값으로 사용됩니다. 0.25 미만의 모든 그레이디언트 값은 0(검은색)을 반환하고, 0.25 이상의 모든 값은 1(흰색)을 반환합니다.

Y의 값을 늘리면 검은색과 흰색 간의 한계치가 이동한다는 점에 유의하세요.

Step 표현식은 갑작스러운 켜기/끄기 효과가 필요할 때 유용합니다. 예를 들어, 회색조 텍스처를 흑백 마스크로 단순화할 때 Step 표현식을 사용할 수도 있습니다.

SmoothStep

SmoothStep을 사용하면 최소 한계치와 최대 한계치 사이에서 0~1 값을 보간할 수 있습니다. SmoothStep에는 세 가지 실행인자가 있습니다.

  • Min 은 보간의 하한 에지를 정의합니다. SmoothStep이 Min 이하의 값에 대해 0(검은색)을 반환합니다.

  • Max 는 보간의 상한 에지를 정의합니다. SmoothStep이 Max 이상의 값에 대해 1(흰색)을 반환합니다.

  • Value 는 보간의 소스 값을 정의합니다. 그레이디언트나 회색조 텍스처 맵을 예로 들 수 있습니다.

이 표현식은 트랜지션으로 에지에 어느 정도 부드러움을 주고 싶을 때 유용합니다.

아래에는 LinearGradient가 Value 입력으로 연결되고, Min 및 Max 값이 0.1과 0.9로 설정되어 있습니다. 따라서 0.1이 검은색이고 0.9가 흰색인, 상대적으로 부드러운 그레이디언트가 구현됩니다.

Min 및 Max 값은 보간의 시작점과 끝점에서 컨트롤됩니다.

두 번째 슬라이드에서는 Min 및 Max가 0.6과 0.8로 설정되어, 훨씬 더 급격한 트랜지션이 구현됩니다. 0.6 미만은 모두 검은색, 0.8 초과는 모두 흰색이며 중간은 부드러운 그레이디언트로 처리됩니다.

Sign

Sign 노드는 수치 입력값이 음수인지, 양수인지, 정확히 0인지를 나타냅니다.

  • 입력값이 음수면 이 노드는 -1을 출력합니다.

  • 입력값이 0이면 이 노드는 0을 출력합니다.

  • 입력값이 양수면 이 노드는 1을 출력합니다.

Sine

Sine 표현식은 [0, 1] 입력 범위와 [-1, 1] 출력 범위에서 반복되는 사인 곡선 값을 출력합니다. 이 표현식과 Cosine 표현식 출력의 차이는 출력 파형에 주기의 1/4만큼 오프셋이 적용된다는 것입니다. 즉, Cos(X)Sin(X + 0.25) 와 같습니다. 입력에 Time 표현식을 연결하여 연속 진동 파형을 출력하는 데 사용될 때가 가장 많지만, 월드스페이스 또는 스크린스페이스에서 물결을 만들 때나 연속적이고 부드러운 사이클이 필요한 경우에도 사용할 수 있습니다. 파형의 시각적 표현은 아래와 같으며, 아래는 [0, 1] 출력 범위로 스케일을 조절했습니다.

SineWave.png

프로퍼티

설명

Period

결과 파형의 주기를 나타냅니다. 완전한 진동이 한 번 발생하는 시간, 또는 연속 파형에서 저점 또는 고점이 반복되는 데 걸리는 시간입니다. 예를 들어, 위 이미지에서 주기는 1초입니다.

사용 예시: 이 표현식은 진동 이펙트가 필요하면 언제든지 유용하게 사용할 수 있습니다. 진동의 폭과 속도는 Time 입력(속도) 또는 출력(진폭)을 곱하여 쉽게 동적으로 제어할 수 있습니다.

SquareRoot

SquareRoot 표현식은 입력값의 제곱근을 출력합니다. 벡터에 적용하면 각 컴포넌트는 개별 처리됩니다.

범위가 0~1인 텍스처의 경우, 이 표현식은 이미지에서 대비를 눈에 띄게 감소시킵니다. 예를 들어 아래의 캘리브레이션 텍스처에서는 어두운 값은 밝아지고 흰색 값은 회색으로 변합니다.

Square Root 머티리얼 표현식

Subtract

Subtract 노드는 두 입력값을 받아 첫 번째 입력에서 두 번째 입력을 빼고, 그 차이를 출력합니다.

여러 채널로 값을 전달하면 채널별로 빼집니다. 예를 들어 각 입력에 RGB 컬러 값을 전달하는 경우, 첫 번째 입력의 R 채널에서 두 번째 입력의 R 채널을 빼고 그 결과를 출력의 R 채널에 저장하며, 첫 번째 입력의 G 채널에서 두 번째 입력의 G 채널을 빼고 그 결과를 출력의 G 채널에 저장하는 방식으로 계속됩니다.

두 입력 중 하나가 단일 상수 값이 아닌 경우, 두 입력은 값의 수가 같아야 합니다. 하나만 단일 상수인 경우, 채널이 여러 개인 입력의 각 채널에서 상수 값을 빼고, 그 결과를 출력 값의 별도 채널에 저장합니다.

프로퍼티

설명

Const A

차감될 값을 받습니다. A 입력이 사용되지 않을 경우에만 사용됩니다.

Const B

차감할 값을 받습니다. B 입력이 사용되지 않을 경우에만 사용됩니다.

입력

A

차감될 값을 받습니다.

B

차감할 값을 받습니다.

예시: 0.5와 0.2의 Subtract는 0.3이고, (0.2, -0.4, 0.6)과 (0.1, 0.1, 1.0)의 Subtract는 (0.1, -0.5, -0.4)이며, (0.2, 0.4, 1.0)과 0.2의 Subtract는 (0.0, 0.2, 0.8)입니다.

사용 예시: Subtract는 색을 어둡게 하고 UV를 오프셋하는 데 사용할 수 있습니다.

Subtract 머티리얼 표현식

Tangent

Tangent 노드는 지정한 값의 탄젠트를 출력합니다.

MEN_Tangent.png

위 이미지는 이 표현식을 적용한 결과의 두 가지 시각화를 보여줍니다.

  • 상단 바는 결과를 색으로 출력해서 보여줍니다. 바의 좌측 끝은 입력값이 -1일 때 이 표현식을 사용한 결과의 색을 보여주며, 우측 끝은 입력값이 1일 때의 결과입니다.

  • 그래프에서 X축은 -1~1 범위의 입력값을 나타냅니다. Y축은 해당 입력값에 이 표현식을 사용한 결과를 나타내며, 마찬가지로 범위는 -1~1입니다.

Truncate

Truncate 전

Truncate 후

Truncate 노드는 값의 정수 부분만 남기고 소수점 부분은 버립니다.

예시:

  • 1.1의 Truncate는 1입니다.

  • 1.4의 Truncate는 1입니다.

  • 2.5의 Truncate는 2입니다.

  • 3.1의 Truncate는 3입니다.