유틸리티 머티리얼 표현식(Utility Material Expressions) 은 익숙하지 않을 수 있는 다양한 방식으로 머티리얼에 영향을 미칠 수 있는 노드입니다. 예를 들어 GIReplace 노드는 오브젝트의 간접 바운스 컬러를 주어진 입력 값으로 대체하며, Linear Interpolate 노드는 알파 입력에 따라 두 텍스처를 블렌딩합니다. 이 페이지에는 머티리얼 에디터에서 사용할 수 있는 모든 유틸리티 표현식에 대한 자세한 설명이 나와 있습니다.
AntialiasedTextureMask
AntialiasedTextureMask 표현식으로 소프트(안티 에일리어싱) 트랜지션 마스크를 사용하여 머티리얼을 생성할 수 있습니다. 마스크는 2개의 복잡한 머티리얼 프로퍼티를 블렌딩하거나, (SoftMasked와 함께 사용하면 잘 작동하는) 알파 블렌딩된 머티리얼을 페이드 아웃하는 데 사용할 수 있습니다. 마스크가 지정된 텍스처를 하나의 채널(빨간색, 녹색, 파란색 또는 알파)에 지정하고, 표현식에 사용된 채널을 설정하고, 비교 값을 지정합니다. 채널이 0 = 검은색과 1 = 흰색 사이의 그레이스케일 값을 저장한다고 가정하면, 비교 함수를 통해 결과 마스크가 0이 될지 또는 1이 될지를 정의합니다. 이 표현식은 파라미터이며, 자손 머티리얼 인스턴스에서 텍스처(Texture) 프로퍼티를 오버라이드할 수 있습니다.
항목 | 설명 |
---|---|
프로퍼티 | |
한계치(Threshold) | 픽셀 범위에서 컷오프 포인트로 사용되는 값을 지정합니다. 이 값보다 픽셀 범위 값이 작으면 검은색이, 크면 흰색이 됩니다. |
채널(Channel) | 마스크로 사용할 텍스처의 채널을 지정합니다. |
텍스처(Texture) | 사용할 마스크 텍스처를 지정합니다. |
입력 | |
UV(UVs) | 텍스처 마스크에 적용할 텍스처 좌표를 받습니다. |
의사 코드:
Result = 1
if TextureLookup < Threshold then Result = 0
실제 구현은 조금 더 복잡한데, 이는 에일리어싱을 방지하기 위해 실제 픽셀 범위에 따라 0~1 사이의 값을 반환하려고 시도하기 때문입니다.
예시(작은 128x128 텍스처로, 최고 퀄리티를 위해 비압축 상태):

좌측 상단은 노멀 텍스처이며 우측 하단은 AntialiasedTextureMask 머티리얼 표현식을 사용한 텍스처입니다.

이러한 기법은 확대된 상태나 블러 처리된 입력 콘텐츠에서 최상의 효과를 발휘합니다. 압축하면 퀄리티가 크게 저하되므로 비압축 저해상도 텍스처를 사용하는 것이 좋습니다.
BlackBody
BlackBody 표현식은 머티리얼 내에서 흑체 복사 이펙트를 시뮬레이션합니다. 사용자가 온도(켈빈 단위)를 입력하면 그 색과 강도 결과를 베이스 컬러와 이미시브 값을 구동하는 데 사용하여 물리적으로 정확한 결과를 얻을 수 있습니다.

BumpOffset
BumpOffset 은 흔히 '패럴랙스 매핑'으로 알려진 언리얼 엔진 4 용어입니다. 범프 오프셋 표현식을 사용하면 추가 지오메트리 없이 머티리얼에 뎁스를 연출할 수 있습니다. 범프 오프셋 머티리얼은 그레이스케일 하이트 맵 을 사용하여 뎁스 정보를 제공합니다. 하이트맵의 값이 밝을수록 머티리얼이 더 '튀어나와' 보이며, 이러한 영역은 표면에서 카메라가 움직임에 따라 시차 이동합니다. 하이트맵의 어두운 영역은 '더 멀어' 보이며 가장 적게 이동합니다.
항목 | 설명 |
---|---|
프로퍼티 | |
높이 비율(HeightRatio) | 하이트맵 에서 가져온 뎁스에 대한 배수입니다. 값이 클수록 뎁스도 더 극대화됩니다. 일반적인 값은 0.02~0.1입니다. |
기준면(ReferencePlane) | 이펙트를 적용할 텍스처 공간의 대략적인 높이를 지정합니다. 값이 0인 경우 텍스처가 표면에서 완전히 떨어져 나온 것처럼 왜곡되어 보이는 반면, 0.5(디폴트)인 경우에는 표면 일부는 튀어나와 보이고 일부는 푹 꺼진 것처럼 보입니다. |
입력 | |
Coordinate | 표현식으로 수정할 베이스 텍스처 좌표를 받습니다. |
Height | 하이트맵으로 사용할 텍스처 또는 값을 받습니다. |
HeightRatioInput | 하이트맵 에서 가져온 뎁스에 대한 배수입니다. 값이 클수록 뎁스도 더 극대화됩니다. 일반적인 값은 0.02~0.1입니다. 사용하면 이 입력이 Height Ratio 프로퍼티의 모든 값을 대체합니다. |

ConstantBiasScale
ConstantBiasScale 표현식은 입력 값을 받아 바이어스 값을 더한 다음 스케일링 인수로 곱한 결과를 출력하는 표현식입니다. 예를 들어 [-1,1]의 입력 데이터를 [0,1]로 변환하려면 바이어스 1.0, 스케일 0.5를 사용합니다.
프로퍼티 | 설명 |
---|---|
바이어스(Bias) | 입력에 더할 값을 지정합니다. |
스케일(Scale) | 바이어스가 적용된 결과에 곱할 배수를 지정합니다. |

DDX
DDX 표현식은 픽셀 셰이더 계산에 사용되는 GPU 하드웨어 기능인 DDX 도함수 계산을 노출합니다.
DDY
DDY 표현식은 픽셀 셰이더 계산에 사용되는 GPU 하드웨어 기능인 DDY 도함수 계산을 노출합니다.
DepthFade
DepthFade 표현식은 반투명 오브젝트가 불투명 오브젝트와 교차할 때 발생하는 보기 안 좋은 이음새를 숨기는 데 사용됩니다.
항목 | 설명 |
---|---|
프로퍼티 | |
페이드 거리(Fade Distance) | 페이드가 일어나는 월드 스페이스 거리입니다. FadeDistance 입력이 연결되지 않은 경우 사용됩니다. |
입력 | |
Opacity | 뎁스 페이드 전에 오브젝트의 기존 오파시티를 받습니다. |
FadeDistance | 페이드가 일어나는 월드 스페이스 거리입니다. |


이 예시의 머티리얼 네트워크는 아래와 같습니다.

DepthOfFieldFunction
Depth of Field Function 표현식은 머티리얼에 뎁스 오브 필드로 인한 블러가 적용될 때 아티스트가 머티리얼에 일어나는 작용을 제어하는 데 사용됩니다. 0~1 사이의 값을 출력하며, 0은 '초점이 잡힌' 상태를, 1은 '완전히 블러가 적용된' 상태를 나타냅니다. 예를 들면 텍스처의 선명한 버전과 흐린 버전 간에 보간하는 경우에 유용합니다. 뎁스 입력을 통해 씬의 뎁스 오브 필드 계산의 기존 결과를 다른 계산으로 오버라이드할 수 있습니다.


이미지를 클릭하면 최대 크기로 볼 수 있습니다.
Desaturation
Desaturation 표현식은 특정 퍼센티지에 따라 입력 컬러의 채도를 낮추거나 컬러를 그레이스케일로 변환합니다.
항목 | 설명 |
---|---|
프로퍼티 | |
휘도 인수(Luminance Factors) | 각 채널의 채도감소 컬러에 대한 기여도를 지정합니다. 이 프로퍼티를 사용하면 채도감소 시 녹색이 빨간색보다 밝게, 빨간색은 파란색보다 밝게 제어할 수 있습니다. |
입력 | |
Fraction | 입력에 적용할 채도감소의 양을 지정합니다. 0.0(채도감소 없는 완전한 원본 컬러)~ 1.0(완전한 채도감소) 범위에서 퍼센트를 지정할 수 있습니다. |

프로그래머: 채도감소된 컬러는 D
, 입력 컬러는 I
, 휘도 인수는 L
로 정의합니다. 출력은 O = (1 - Percent)*( D.dot( I )) + Percent * I
입니다.
Distance
Distance 표현식은 두 점/컬러/위치/벡터 사이의 유클리드 거리를 계산하여 결과 값을 출력합니다. 1, 2, 3, 4개 컴포넌트로 구성된 벡터에서도 작동하기는 하지만, 표현식에 대한 두 입력의 채널 수가 같아야 합니다.
항목 | 설명 |
---|---|
입력 | |
A | 길이에 관계없이 값 또는 벡터를 받습니다. |
B | 길이에 관계없이 값 또는 벡터를 받습니다. |


카메라 거리가 늘어남에 따라 컬러가 변경되는 방식을 볼 수 있습니다.
의사 코드:
Result = length (A - B)
Low level HLSL code:
float Result = sqrt (dot (A-B, A-B))
DistanceFieldGradient
DistanceFieldGradient 머티리얼 표현식 노드는 정규화되면 디스턴스 필드 내에서 오브젝트가 이동하는 X,Y,Z 방향을 출력합니다. 따라서 디스턴스 필드 그레이디언트 머티리얼 표현식 노드는 액체 흐름 시뮬레이션이 필요한 머티리얼에 적합합니다.
이 표현식이 올바르게 작동하려면 프로젝트 세팅(Project Settings) 의 렌더링(Rendering) 에서 메시 디스턴스 필드 생성(Generate Mesh Distance Fields) 이 활성화되어 있어야 합니다.
항목 | 설명 |
---|---|
Position | 입력이 없으면 현재 월드 포지션이 디폴트값입니다. |
다음은 머티리얼에서 DistanceFieldGradient 머티리얼 표현식을 사용하는 방법에 대한 예시입니다. 아래 예시에서는 DistanceFieldGradient를 먼저 정규화한 다음 Mask Channel 노드에 입력한 것을 볼 수 있는데, 이는 DistanceFieldGradient를 먼저 정규화하지 않으면 방향 데이터를 얻을 수 없기 때문입니다. 머티리얼 인스턴스 내에서 RGB 채널을 손쉽게 전환할 수 있도록 Mask Channel 파라미터를 추가했습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
다음은 DistanceFieldGradient의 실전 사용 예시입니다. 아래 이미지는 다양한 RGB 옵션을 활성화했을 때 DistanceFieldGradient가 어떤 데이터를 사용할 것인지 보여줍니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
숫자 | 설명 |
---|---|
1 | R 채널을 활성화하고 다른 모든 채널을 비활성화합니다. |
2 | G 채널을 활성화하고 다른 모든 채널을 비활성화합니다. |
3 | B 채널을 활성화하고 다른 모든 채널을 비활성화합니다. |
DistanceToNearestSurface
Distance To Nearest Surface 머티리얼 표현식 노드를 사용하면 머티리얼이 레벨의 글로벌 디스턴스 필드 내 아무 지점이나 샘플링할 수 있습니다. 이 머티리얼 표현식은 씬의 디스턴스 필드에서부터 가장 가까운 오클루더까지 표시된 거리를 월드 스페이스 단위로 출력하는 식으로 작동합니다.
이 표현식이 올바르게 작동하려면 프로젝트 세팅 의 렌더링(Rendering) 에서 메시 디스턴스 필드 생성 이 활성화되어 있어야 합니다.
항목 | 설명 |
---|---|
Position | 입력이 없으면 현재 월드 포지션이 디폴트값입니다. |
다음은 Distance To Nearest Surface 머티리얼 표현식의 실전 사용 예시입니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.

이 예시에서는 Distance To Nearest Surface를 머티리얼의 오파시티 입력에 연결하고, 해당 머티리얼을 레벨 바닥 바로 위에 배치한 스태틱 메시 평면에 적용하였습니다. Distance To Nearest Surface의 역할은 스태틱 메시 평면이 씬에 배치된 다른 스태틱 메시와 교차되기 시작하면 머티리얼에 그 영역을 빨갛게 만들도록 지시하는 것입니다.
FeatureLevelSwitch
Feature Level Switch 노드를 사용하면 저사양 디바이스용의 단순화된 머티리얼을 만들 수 있습니다.
사용 예시: 10개의 텍스처가 오버랩되어 복잡한 연산이 필요한 머티리얼이라도 모바일(피처 레벨 ES2)용의 단일 스태틱 텍스처로 만들 수 있습니다.
입력 | 설명 |
---|---|
Default | 디폴트 피처 레벨입니다. |
ES2 | OpenGL ES2의 코어 성능으로 정의된 피처 레벨입니다. |
ES3.1 | Metal 레벨 디바이스의 성능으로 정의된 피처 레벨입니다. |
SM4 | DX10 Shader Model 4의 코어 성능으로 정의된 피처 레벨입니다. |
SM5 | DX11 Shader Model 5의 코어 성능으로 정의된 피처 레벨입니다. |
Fresnel
Fresnel 표현식은 표면 노멀과 카메라를 향하는 방향에 대한 내적에 따라 감쇠를 계산합니다. 표면 노멀이 카메라를 똑바로 가리킬 경우 출력 값은 0입니다. 표면 노멀이 카메라와 직각일 경우 출력 값은 1입니다. 중앙에 음의 컬러가 없도록 결과는 [0,1]로 범위제한됩니다.
항목 | 설명 |
---|---|
프로퍼티 | |
익스포넌트(Exponent) | 출력 값의 감쇠 속도를 지정합니다. 값이 클수록 더 조밀하거나 빠르게 감쇠됩니다. |
베이스 리플렉트 프랙션(Base Reflect Fraction) | 표면을 수직으로 볼 때의 스페큘러 리플렉션 부분을 지정합니다. 값이 1이면 사실상 프레넬 이펙트를 비활성화합니다. |
입력 | |
ExponentIn | 출력 값의 감쇠 속도를 지정합니다. 값이 클수록 더 조밀하거나 빠르게 감쇠됩니다. 사용되면 이 값은 항상 익스포넌트 프로퍼티 값을 대체합니다. |
베이스 리플렉트 프랙션(Base Reflect Fraction) | 표면을 수직으로 볼 때의 스페큘러 리플렉션 부분을 지정합니다. 값이 1이면 사실상 프레넬 이펙트를 비활성화합니다. 사용되면 이 값은 항상 익스포넌트 프로퍼티 값을 대체합니다. |
Normal | 월드 스페이스에서 표면의 노멀을 나타내는 3채널 벡터 값을 받습니다. 프레넬 오브젝트의 표면에 적용된 노멀 맵 결과를 확인하려면, 노멀 맵을 머티리얼의 노멀 입력에 연결한 다음 PixelNormalWS 표현식을 프레넬의 이 입력에 연결하면 됩니다. 지정된 노멀이 없는 경우 메시의 탄젠트 노멀이 사용됩니다. |

GIReplace
GIReplace 는 머티리얼이 GI용으로 사용될 때 아티스트가 보통 더 단순한, 다른 표현식 체인을 지정할 수 있도록 합니다.
사용 예시: 라이트매스 스태틱 GI 및 LPV 다이내믹 GI에서 사용합니다.
입력 | 설명 |
---|---|
Default | 디폴트 GI입니다. |
StaticIndirect | 구워진 간접광에 사용됩니다. |
DynamicIndirect | 다이내믹 간접광에 사용됩니다. |
LightmassReplace
LightmassReplace 표현식은 일반적인 렌더링 용도로 머티리얼을 컴파일할 때는 Realtime 입력을 통과시키고, 글로벌 일루미네이션 용도로 머티리얼을 라이트매스로 익스포트할 때는 Lightmass 입력을 통과시키는 단순한 표현식입니다. WorldPosition처럼 익스포트된 버전으로는 제대로 처리할 수 없는 머티리얼 표현식에 대한 해결책으로 유용합니다.
입력 | 설명 |
---|---|
Realtime | 일반적인 렌더링 시 통과시킬 값을 받습니다. |
Lightmass | 머티리얼을 라이트매스로 익스포트 시 통과시킬 값을 받습니다. |
LinearInterpolate
LinearInterpolate 표현식은 마스크로 사용된 세 번째 입력 값을 바탕으로 두 입력 값을 블렌딩합니다. Photoshop의 레이어 마스크처럼 두 텍스처 사이의 트랜지션을 정의하는 마스크라고 생각하면 됩니다. 마스크 알파의 강도는 두 입력 값에서 취할 색의 비율을 결정합니다. 알파가 0.0이면 첫 번째 입력이 사용됩니다. 알파가 1.0이면 두 번째 입력이 사용됩니다. 알파가 0.0~1.0 사이이면 출력은 두 입력 간의 블렌드가 됩니다. 블렌드는 채널별로 일어난다는 점에 유의하세요. 따라서 알파가 RGB 컬러인 경우 알파의 빨강 채널 값이 A와 B의 빨강 채널 간의 블렌드를 알파의 초록 채널과는 별개로 정의합니다. 알파의 초록 채널은 A와 B의 초록 채널 간 블렌드를 정의합니다.
항목 | 설명 |
---|---|
프로퍼티 | |
상수 A(Const A) | 0.0에 매핑된 값입니다. A 입력이 연결되지 않은 경우에만 사용됩니다. |
상수 B(Const B) | 1.0에 매핑된 값입니다. B 입력이 연결되지 않은 경우에만 사용됩니다. |
상수 알파(Const Alpha) | 마스크 알파로 사용할 값을 받습니다. 알파 입력이 연결되지 않은 경우에만 사용됩니다. |
입력 | |
A | 0.0에 매핑된 값을 받습니다. |
B | 1.0에 매핑된 값을 받습니다. |
Alpha | 마스크 알파로 사용할 값을 받습니다. |
프로그래머: LinearInterpolate는 알파의 파라미터 값에 따라 A와 B 간에 채널별로 선형보간합니다.

Noise
Noise 표현식은 프로시저럴 노이즈 필드를 생성하여 필드 생성 방식을 제어할 수 있게 해줍니다.
항목 | 설명 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
프로퍼티 | |||||||||||||||||||||||
스케일(Scale) | 노이즈 셀의 전체 크기를 변경합니다. 값이 낮을수록 노이즈가 커집니다. | ||||||||||||||||||||||
퀄리티(Quality) | 룩/퍼포먼스 세팅입니다. 값이 낮을수록 빠르지만 퀄리티는 떨어져 보일 수 있으며, 값이 높을수록 느리지만 퀄리티는 나아 보일 수 있습니다. | ||||||||||||||||||||||
함수(Function) |
|
||||||||||||||||||||||
터뷸런스(Turbulence) | 터뷸런스를 켜면 노이즈 옥타브마다 결과에 절대값만 더합니다. 비주얼 특성에 변화를 주고 가파른 능선과 같은 모양을 만들 수 있습니다. | ||||||||||||||||||||||
레벨(Levels) | 서로 다른 스케일의 노이즈 레벨을 얼마나 많이 결합할지, 계산 비용을 레벨 수로 곱합니다. | ||||||||||||||||||||||
출력 최소(Output Min) | 노이즈 계산으로 가장 낮은 값을 출력합니다. | ||||||||||||||||||||||
출력 최대(Output Max) | 노이즈 계산으로 가장 높은 값을 출력합니다. | ||||||||||||||||||||||
레벨 스케일(Level Scale) | 레벨 스케일은 항상 활성 상태이며, 새 옥타브마다 스케일 변경량을 결정합니다. | ||||||||||||||||||||||
타일링(Tiling) | 이를 지원하는 노이즈 함수에 노이즈 타일링을 허용합니다. 비용은 더 많이 들지만, 노이즈를 끊김없는 래핑 텍스처에 구울 때 유용합니다. | ||||||||||||||||||||||
반복 크기(Repeat Size) | 타일링할 때 노이즈를 반복해야 하는 빈도입니다. | ||||||||||||||||||||||
입력 | |||||||||||||||||||||||
Position | 3D 벡터를 통해 텍스처 크기를 조정할 수 있습니다. | ||||||||||||||||||||||
FilterWidth | 노이즈 텍스처에 적용할 블러의 양을 실질적으로 제어합니다. |

Previous Frame Switch
Previous Frame Switch 머티리얼 표현식은 템포럴 AA 및 모션 블러와 함께 올바르게 작동하는 모션 벡터를 생성하는 방법을 제공하여 머티리얼의 복잡한 버텍스 애니메이션 구현을 보조합니다.
시간 함수만 있는 머티리얼은 변경 없이도 작동하지만, 런타임에 애니메이션에 영향을 줄 수 있는 머티리얼 파라미터 같은 다른 변수를 처리하지 못합니다. Previous Frame Switch 머티리얼 표현식은 파라미터가 변경되는 방식을 트래킹하여 이러한 문제를 수동으로 해결하는 수단을 제공합니다. 예를 들어, 블루프린트에서 프레임 간에 월드 포지션 오프셋이 변경됨에 따라 발생하는 모션 벡터 생성에 대한 표현식을 수동으로 제공할 수 있습니다.
이 표현식이 작동하려면 프로젝트 세팅 의 렌더링 에서 버텍스 디포메이션의 속도가 활성화되어 있어야 합니다.
- 4.24 이상 버전은 버텍스 디포메이션의 정확한 속도(Accurate velocities from Vertex Deformation) 를 사용합니다.
- 4.25 이상 버전은 버텍스 디포메이션으로 인한 출력 속도(Output velocities due to vertex deformation) 를 사용합니다.
항목 | 설명 |
---|---|
현재 프레임(Current Frame) | 시작 위치 레퍼런스로 사용되는 방향 벡터입니다. |
이전 프레임(Previous Frame) | 추가할 블러 양에 대한 XYZ 레퍼런스로 사용되는 방향 벡터입니다. |
다음은 머티리얼에서 Previous Frame Switch 머티리얼 표현식을 사용한 예시입니다.

이 예시에서 Previous Frame Switch는 상수 값을 사용하여 Multiply 노드를 통해 방향 블러를 제어하고 있습니다.
이 예시에서는 포트나이트와 같이 에픽이 자체 개발한 게임에서 이 표현식을 사용하여 화면을 이루는 버텍스 애니메이션의 모션 블러를 제어하는 방식을 확인할 수 있습니다. 오른쪽의 애니메이션은 Previous Frame Switch를 사용하여 약간의 모션 블러를 추가한 반면, 왼쪽의 애니메이션은 모션 블러를 적용하지 않았습니다.
뷰포트 표시 플래그
에디터 뷰포트에서 표시(Show) > 시각화(Visualize) > 이전 프레임의 재투영(Previous Frame's Reprojection) 을 선택하면 Previous Frame Switch 와 함께 사용하여 현재 및 이전 프레임의 방향 벡터에 있는 편차를 진단 및 보정할 수 있는 표시 플래그가 생깁니다.

이 시각화 툴을 활성화하면 현재 프레임 컬러를 이전 프레임 컬러와 비교하여 두 프레임 간의 차이를 반환합니다. 차이가 0인 경우 왼쪽 이미지와 같이 뷰포트에 머티리얼이 회색으로 표시됩니다. 방향 벡터가 일치하지 않으면 오른쪽 이미지와 같이 머티리얼이 컬러 오버레이를 표시합니다.

QualitySwitch
QualitySwitch 표현식은 저사양 디바이스에서 낮은 퀄리티를 사용하는 것처럼 엔진의 퀄리티 레벨 전환에 따라 다양한 표현식 네트워크를 사용할 수 있도록 해 줍니다.
입력 | 설명 |
---|---|
Default | 디폴트 비주얼 퀄리티용 네트워크에 사용되는 입력입니다. |
Low | 낮은 비주얼 퀄리티용 네트워크에 사용되는 입력입니다. |
High | 높은 비주얼 퀄리티용 네트워크에 사용되는 입력입니다. |
RotateAboutAxis
RotateAboutAxis 표현식은 주어진 회전 축, 축 위의 포인트, 회전 각도에 따라 3채널 벡터 입력을 회전합니다. 단순 비틀기보다 퀄리티가 더 나은 WorldPositionOffset을 사용하는 애니메이션에 유용합니다.
입력 | 설명 |
---|---|
NormalizedRotationAxis | 오브젝트가 회전할 중심축을 나타내는 정규화된 (0-1) 벡터를 받습니다. |
RotationAngle | 회전 각도입니다. 값이 1이면 360도를 완전히 회전합니다. |
PivotPoint | 오브젝트가 회전할 중심 피벗 포인트를 나타내는 3채널 벡터를 받습니다. |
Position | 오브젝트의 위치를 나타내는 3채널 벡터를 받습니다. RotateAboutAxis 표현식이 생성되면 WorldPosition 표현식이 자동 생성되어 이 입력에 연결됩니다. |

위 예시에서는 프리뷰 평면이 세로 축으로 회전하는 것처럼 보일 것입니다.
SphereMask
SphereMask 표현식은 거리 계산에 따라 마스크 값을 출력합니다. 하나의 입력이 한 점의 위치이고 다른 입력이 일정 반경을 가진 스피어의 중심이라면, 마스크 값은 약간의 트랜지션 영역을 두고 외부는 0, 내부는 1입니다. 1, 2, 3, 4개 컴포넌트로 구성된 벡터에 작동합니다.
항목 | 설명 |
---|---|
프로퍼티 | |
어테뉴에이션 반경(Attenuation Radius) | 거리 계산에 사용할 반경을 지정합니다. |
선명도 퍼센트(Hardness Percent) | 트랜지션 영역 크기를 지정합니다. 이 프로퍼티는 Photoshop 브러시 선명도 값처럼 작동합니다. 값이 0이면 트랜지션이 거칠고, 100이면 최대로 부드러워집니다. |
입력 | |
A | 검사할 지점의 위치를 나타내는 값을 받습니다. |
B | 스피어의 중심을 나타내는 값을 받습니다. |


노드는 카메라가 특정 거리를 벗어날 때까지 값 1을 출력하며, 그 이후에는 0을 출력합니다.
Thin Translucent
Thin Translucent Material Output 표현식은 단일 패스에서 물리 기반 투명 머티리얼을 정확하게 나타냅니다. 이 표현식을 사용하면 라이팅과 셰이딩에 정확하게 반응하는 참된 유색 투명 머티리얼을 생성할 수 있습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
유색 유리 머티리얼을 생성할 때는 흰색 스페큘러 하이라이트와 유색 배경이 필요합니다. 이는 공기에서 유리로, 그리고 유리에서 공기로 반사되는 라이트를 고려하는 물리 기반 셰이더를 통해 단일 패스에서 렌더링됩니다.


머티리얼 디테일 패널에서 다음과 같이 설정하여 Thin Translucent 머티리얼 출력을 활성화합니다.
- 블렌드 모드(Blend Mode): 반투명(Translucent)
- 셰이딩 모델(Shading Model): 얇은 반투명(Thin Translucent)
- 라이팅 모드(Lighting Mode): 표면 포워드 셰이딩(Surface ForwardShading)
Vector Noise

Vector Noise 머티리얼 표현식은 머티리얼에서 사용하기 위한 3D 또는 4D 벡터 노이즈 결과를 몇 가지 더 추가합니다. 이 함수의 런타임 비용으로 인해, 일단 해당 표현식으로 룩 개발을 하고 나면 렌더 타깃 기능을 사용하여 연산 전체 또는 일부를 텍스처에 굽는 것이 좋습니다.
외부 툴을 이용하여 텍스처를 절차적으로 생성하는 대신 이러한 머티리얼 그래프 표현식을 통해 엔진에서 최종 에셋의 프로시저럴 룩을 개발할 수 있습니다. Vector Noise 머티리얼 표현식에는 다음과 같은 Vector Noise 타입이 있습니다.
이미지 | 항목 | 설명 |
---|---|---|
![]() |
Cellnoise | 3D 그리드(즉, 노드 입력에 적용되는 수학적 floor 연산)의 각 셀에 랜덤 컬러를 반환합니다. 결과는 항상 주어진 위치에 대해 일관적이므로, 머티리얼에 무작위성을 더하는 안정적인 방법이 될 수 있습니다. 이 Vector Noise 함수의 연산 비용은 매우 저렴하므로 굳이 퍼포먼스를 위해 텍스처에 굽지 않아도 됩니다. |
![]() |
Perlin 3D Noise | 3D 그리드(즉, 노드 입력에 적용되는 수학적 floor 연산)의 각 셀에 랜덤 컬러를 반환합니다. 결과는 항상 주어진 위치에 대해 일관적이므로, 머티리얼에 무작위성을 더하는 안정적인 방법이 될 수 있습니다. 이 Vector Noise 함수의 연산 비용은 매우 저렴하므로 굳이 퍼포먼스를 위해 텍스처에 굽지 않아도 됩니다. |
![]() |
Perlin Gradient | 스칼라 Perlin Simplex Noise의 분석적 3D 그레이디언트를 계산합니다. 출력은 4채널로, 첫 3개 채널(RGB)은 그레이디언트이고 네 번째 채널(A)은 스칼라 노이즈입니다. 이 노이즈 타입은 표면의 범프나 플로 맵에 유용합니다. |
![]() |
Perlin Curl | 벡터 Perlin Simplex Noise(일명 Curl Noise)의 분석적 3D 컬을 계산합니다. 출력은 부호가 있는 3D 컬 벡터로, 플루이드 또는 파티클 플로에 유용합니다. |
![]() |
Voronoi | 스칼라 Noise 머티리얼 노드와 동일한 Voronoi 노이즈를 계산합니다. 스칼라 Voronoi 노이즈는 3D 스페이스에 시드 포인트를 스캐터링하고 가장 가까운 시드 포인트까지의 거리를 반환합니다. Vector Noise 버전은 RGB에서는 가장 가까운 시드 포인트 위치를, 알파(A)에서는 해당 시드 포인트까지의 거리를 반환합니다. 특히 Cellnoise와 함께 사용하면 Voronoi 셀별로 어느 정도의 랜덤화된 비헤이비어가 가능합니다. |
아래는 단순한 암석층 머티리얼로, Voronoi Vector Noise의 거리 컴포넌트를 사용하여 일부 표면 범프를 변조하고 갈라진 틈에 이끼를 블렌딩했습니다. 시드 위치는 Vector Noise > Cellnoise와 함께 암석당 컬러와 범프 높이를 변경하는 데 사용되었습니다.

도함수 기반 연산인 Perlin Curl 및 Perlin Gradient 는 일반적인 펄린 노이즈와 마찬가지로 옥타브 단위로 함께 추가할 수 있습니다. 표현식이 보다 복잡한 도함수의 경우 표현식 결과의 그레이디언트를 계산해야 합니다. 계산할 표현식을 머티리얼 함수에 배치하고 다음과 같은 헬퍼 노드와 함께 사용하면 계산에 도움이 됩니다.
항목 | 설명 |
---|---|
Prepare3DDeriv | 4면체 패턴의 위치 오프셋을 사용하여 3D 도함수를 계산합니다. 이 함수로 생성한 각 오프셋 위치에서 동일한 3D 함수를 평가한 다음 결과 값을 Compute3DDeriv로 전달합니다. |
Compute3DDeriv | 4면체 패턴의 위치 오프셋을 사용하여 3D 도함수를 계산합니다. Prepare3DDeriv와 함께 사용합니다. |
GradFrom3DDeriv | Prepare3DDeriv/Compute3DDeriv의 결과에서 3D 그레이디언트 벡터를 계산합니다. |
CurlFrom3DDeriv | Prepare3DDeriv/Compute3DDeriv의 결과에서 3D 벡터 필드의 컬을 계산합니다. |
이러한 헬퍼 머티리얼 함수는 4면체 패턴으로 배치된 베이스 표현식의 4가지 평가를 사용하여 이와 같은 도함수 기반 연산의 근사치를 계산합니다.
Vector Noise 머티리얼 표현식에서 찾을 수 있는 다양한 노이즈 함수의 설명은 다음과 같습니다.
항목 | 설명 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
프로퍼티 | ||||||||||||||
함수(Function) |
|
|||||||||||||
퀄리티(Quality) | 룩/퍼포먼스 세팅입니다. 값이 낮을수록 빠르지만 퀄리티는 떨어져 보일 수 있으며, 값이 높을수록 느리지만 퀄리티는 나아 보일 수 있습니다. | |||||||||||||
타일링(Tiling) | 타일링을 지원하는 노이즈 함수에 노이즈 타일링을 허용합니다. 비용은 더 많이 들지만, 끊김없는 래핑 텍스처에 노이즈를 구울 때 유용합니다. | |||||||||||||
타일 크기(Tile Size) | 타일링할 때 노이즈를 반복해야 하는 빈도입니다. 펄린 노이즈 베리언트의 경우 타일 크기는 3의 배수여야 합니다. | |||||||||||||
입력 | ||||||||||||||
Position | 3D 벡터를 통해 텍스처 크기를 조정할 수 있습니다. |
-
Cell Noise 머티리얼 예시:
이미지를 클릭하면 전체 크기로 표시됩니다.
-
Perlin Gradient 머티리얼 예시:
이미지를 클릭하면 전체 크기로 표시됩니다.
-
Voronoi 머티리얼 예시:
이미지를 클릭하면 전체 크기로 표시됩니다.