텍스처링

Texturing, 텍스처링 카테고리 아래 있는 머티리얼 함수에 대한 설명과 예제입니다.

Choose your operating system:

Windows

macOS

Linux

Texturing (텍스처링) 함수는 텍스처의 UV 조절, 텍스처 잘라내기(crop) 등의 전문 처리 기능을 제공합니다. Texturing Functions 목록은 다음과 같습니다.

CylindricalUVs

오브젝트의 중앙 기준 원통형으로 투영된 UV 를 사용하여 오브젝트 주변에 텍스처를 타일링하는 함수입니다.

항목

설명

입력

TextureObject (Texture Object)

CylindricalUVs 를 통해 투영시킬 텍스처입니다.

In (Scalar)

투영 원통의 높이를 월드 스페이스 유닛 단위로 받습니다.

Normal (Vector3)

투영 실린더를 회전시킬 벡터 입력입니다.

출력

Cylinder Projection

결과 텍스처를 원통에서 투영된 것인양 출력합니다. 그러나 캡 부분이 없어 텍스처 위아래가 너무 꽉 죄는 경향이 있을 것입니다.

Cylinder Projection w Top

결과 텍스처를 캡 부분까지 제대로 원통에서 투영된 것인양 출력합니다.

CylindricalUVs

DetailTexturing

머티리얼에 쓰이는 디테일 텍스처를 만드는 과정을 단순화시켜 주는 함수입니다. 이를 통해 텍스처의 디테일한 느낌을 살릴 수 있는데, 오브젝트의 원래 디퓨즈와 노멀 위에 좀 더 고도로 반복되는 디퓨즈와 노멀맵 조합을 들여놓아 겹쳐 놓는 식입니다. 그렇게 하여 가까이서도 디테일한 느낌을 크게 살릴 수 있습니다.

항목

설명

입력

Scale (Scalar)

디테일 노멀과 디퓨즈의 타일링을 조절합니다.

Diffuse (Vector3)

추가 디테일을 요하는 원본 디퓨즈 텍스처입니다.

DetailDiffuse (Texture Object)

추가 디테일에 쓸 디퓨즈 텍스처입니다.

DiffuseIntensity (Scalar)

디테일 디퓨즈를 원본 디퓨즈와 얼마만큼 섞을 것인지 입니다.

Normal (Vector3)

추가 디테일을 요하는 원본 노멀입니다.

DetailNormal (Texture Object)

원본 노멀맵에 디테일을 추가하는 데 사용될 디테일 노멀입니다.

NormalIntensity (Scalar)

원본 노멀 뒤에 디테일 노멀을 얼마만큼 비춰 보이게 할지 입니다.

출력

Diffuse

원본 디퓨즈 텍스처와 디테일 디퓨즈 텍스처를 블렌딩한 결과입니다.

Normal

원본 노멀 텍스처와 디테일 노멀 텍스처를 블렌딩한 결과입니다.

DetailTexturing

LocalAlignedTexture

로컬 스페이스에서 오브젝트 위에 텍스처를 타일링하는 함수입니다.

이 함수에 노멀 입력이 있기는 하지만, 현재 작동하지 않습니다.

항목

설명

입력

Normal (Vector3)

오브젝트의 표면 기준(reference)으로 사용할 노멀을 받습니다. 현재 이 입력은 작동하지 않습니다.

TextureObject (Texture Object)

월드 스페이스에 타일링될 텍스처를 받습니다.

출력

XY Texture

월드 X, Y 축에 걸쳐 타일링되는 텍스처 결과입니다.

XYZ Texture

월드 X, Y, Z 축에 걸쳐 타일링되는 텍스처 결과입니다.

Z Texture

월드 Z 축에 걸쳐 타일링되는 텍스처 결과입니다.

LocalAlignedTexture

ZWorldSpaceFlow

오브젝트의 탄젠트 스페이스를 따라 텍스처를 밀어주는 함수로, 그 텍스처가 해당 표면 위에 흐르는 것처럼 보이게 만듭니다. 서로간에 약간의 거리를 두고(offset) 같은 방향으로 움직이는(pan) 텍스처 변종을 둘 만드는 식으로 작동합니다. 그런 다음 하나 위에 다른 하나를 반복적으로 블렌딩합니다.

항목

설명

입력

FlowTexture (Texture Object)

오브젝트 표면에 걸쳐 흐르게 하고자 하는 텍스처입니다.

FlowStrength (Scalar)

두 가지 패닝 버전 텍스처를 서로 블렌딩할 때 그 블렌딩되는 정도를 조절합니다.

FlowDirection (Vector2)

텍스처가 흐르는 방향을 조절하는 2D 벡터입니다.

UVs (Vector2)

타일링 조절을 위한 텍스처의 기존 UV 입니다.

FlowSpeed (Scalar)

표면에 걸쳐 텍스처를 얼마나 빨리 흐르게 할 것인가 입니다.

TangentSpaceFlow

TextureCropping

주어진 텍스처를 작은 크기로 잘라내고, 텍스처 좌표 평면상의 위치를 오프셋시키는 함수입니다. 발광(emissive) 텍스처 부분 위에 다른 색 블록을 놓는 데 딱 좋습니다.

이 함수는 포토샵 같은 이미지 편집 프로그램에서 사용되는 진짜 잘라내기(crop) 작업을 하지는 않습니다. 그보다는 기존 텍스처를 UV 텍스처 스페이스 내 새로운 좌표에 리매핑하는 것으로, 잘라내기 보다는 스케일 조절에 가깝습니다. 그래도 마스크를 생성하고 텍스처의 일정 구역에 색을 덧입히는 데는 여전히 매우 좋습니다.

항목

설명

입력

UVs (Vector2)

새로이 잘라낸 텍스처에 사용할 텍스처 좌표입니다.

TextureIn (Texture Object)

잘라낼 텍스처입니다.

UpperLeftCorner (Vector2)

텍스처의 새로운 좌상단 위치를 0 에서 1 사이 텍스처 스페이스로 나타냅니다.

LowerRightCorner (Vector2)

텍스처의 새로운 우하단 위치를 0 에서 1 사이 텍스처 스페이스로 나타냅니다.

출력

Cropped

잘라내기 함수 결과입니다. 타일링 작업과 매우 비슷해 보입니다.

CroppedMasked

잘라내기 함수 결과에 UpperLeftCorner LowerRightCorner 로 정의된 구역 밖은 걸러냅(마스킹합)니다.

Crop UVs

새로이 잘라낸 구역의 UV 좌표입니다.

Crop Mask

검정 배경 (마스크) 상의 하양 구역으로, 잘라내는 영역을 나타냅니다.

TextureCropping

WorldAlignedNormal

노멀맵을 받아 그 텍스처를 오브젝트 로컬이 아닌 월드에 정렬시킵니다. 텍스처 크기의 일정 비율이 아닌, 월드 유닛 단위 스케일도 가능합니다.

이 함수는 월드 스페이스에서 텍스처를 타일링하기에, 이런 식으로 텍스처를 입힌 애니메이션 오브젝트는 "스위밍" (swimming), 즉 텍스처는 제자리에 있는데 오브젝트가 그 아래로 미끄러져 가는 현상을 경험할 수 있습니다.

항목

설명

입력

TextureObject (Texture Object)

월드 스페이스에서 타일링할 텍스처를 받습니다.

TextureSize (Vector3)

X, Y, Z 축에 따른 월드 유닛 단위의 텍스처 크기입니다.

Normal (Vector3)

월드의 위쪽 축에 대한 노멀 방향을 지정하여, 이 함수가 사용하는 좌표를 회전시킬 수 있습니다. 기본값은 0,0,1 또는 Z 축이 위 입니다.

WorldPosition (Vector3)

3D 월드 스페이스에서 텍스처 시작점에 대한 오프셋 입니다.

출력

XY Texture

월드 X, Y 로 투영된 텍스처 결과입니다.

XYZ Texture

월드 X, Y, Z 로 투영된 텍스처 결과입니다.

XYZFlatTop

월드 X, Y, Z 로 투영된 텍스처에 결과에 대비를 증폭시킨 것입니다.

Z Texture

월드 X 로 투영된 텍스처 결과입니다.

WorldAlignedNormal

바닥이 회전되어도 텍스처는 여전히 월드 좌표계에 수평인 것을 볼 수 있습니다.

WorldAlignedTexture

오브젝트의 크기나 방향과는 무관하게 월드 스페이스에서 오브젝트의 표면에 걸쳐 텍스처를 타일링할 수 있는 방법이 되는 함수입니다. 텍스처를 어느 방향으로 투영시킬 것인지를 지정할 수 있으며, 텍스처 크기의 일정 비율이 아닌 월드 유닛 단위 스케일이 가능합니다.

이 함수는 월드 스페이스에서 텍스처를 타일링하기에, 이런 식으로 텍스처를 입힌 애니메이션 오브젝트는 "스위밍" (swimming), 즉 텍스처는 제자리에 있는데 오브젝트가 그 아래로 미끄러져 가는 현상을 경험할 수 있습니다.

항목

설명

입력

TextureObject (Texture Object)

월드 스페이스에서 타일링할 텍스처를 받습니다.

TextureSize (Vector3)

X, Y, Z 축에 따른 월드 유닛 단위 텍스처 크기입니다.

WorldPosition (Vector3)

3D 월드 스페이스에서 텍스처의 시작점에 대한 오프셋 입니다.

ExportFloat 4 (StaticBool)

들어오는 텍스처의 알파 채널을 활용할 것인지 입니다. 기본값은 False 입니다.

World Space Normal (Vector3)

월드의 윗 축에 대한 노멀 방향을 지정하여, 이 함수가 사용하는 축을 회전시킬 수 있습니다. 기본값은 0,0,1 또는 Z 축이 위 입니다.

ProjectionTansitionContrast (Vector3)

X, Y, Z 로 투영할 때, 두 투영면이 만나는 곳의 블렌딩 대비를 조절합니다.

출력

XY Texture

월드 X, Y 로 투영된 텍스처 결과입니다.

Z Texture

월드 Z 로 투영된 텍스처 결과입니다.

XYZ Texture

월드 X, Y, Z 로 투영된 텍스처 결과입니다.

WorldAlignedTexture

바닥이 회전되어도 텍스처는 여전히 월드 좌표계에 수평인 것을 볼 수 있습니다.

3DSandMayaUVCoordinates

들어오는 UV 의 녹색 채널을 뒤집어 0,0 좌표가 좌상단이 아닌 (3ds Max 나 Maya 처럼) 좌하단에 오도록 하는 함수입니다. 그런 애플리케이션에서 모델을 들여올 때는 중요한 함수인데, 텍스처를 뒤집지 않아도 되기 때문입니다.

항목

설명

입력

  • UVChannel0 - UV 채널 0 에서 V 를 뒤집은 UV 입니다.

  • UVChannel1 - UV 채널 1 에서 V 를 뒤집은 UV 입니다.

  • UVChannel2 - UV 채널 2 에서 V 를 뒤집은 UV 입니다.

  • UVChannel3 - UV 채널 3 에서 V 를 뒤집은 UV 입니다.

3DSandMayaUVCoordinates

CustomRotator

텍스처를 회전시킬 수 있는 함수입니다. 이미지를 회전시킬 중심점이 노출된다는 점에서 Rotate 표현식 노드와는 다른 부분이 있습니다. 로테이션 시스템 역시 0-1 기반으로 변경, 값이 1 이면 한 바퀴 또는 360 도 회전입니다. 표준 Rotator 에서 한 바퀴 회전하는 데는 약 25.1 의 Time 입력이 필요합니다.

항목

설명

입력

UVs (Vector2)

텍스처에 대한 기존 좌표를 받습니다.

Rotation Center (Vector2)

회전 중심이 되는 텍스처 스페이스의 0-1 위치입니다.

Rotation Angle (0-1) (Scalar)

0-1 식으로 나타내는 이미지 회전으로, 1 이면 한바퀴 회전입니다.

CustomRotator

HeightLerp

하이트맵과 전환 단계 (Transition Phase) 값에 따라 두 개의 텍스처를 선형 보간하는 함수입니다. 이를 통해 선형 보간이 일어나는 하이트맵 상의 값을 조절할 수 있습니다.

항목

설명

입력

A (Vector3)

A (벡터3) - lerp 계산의 첫째 텍스처입니다.

B (Vector3)

B (벡터3) - lerp 계산의 둘째 텍스처입니다.

Transition Phase (Scalar)

트랜지션 페이즈 (스칼라) - 트랜지션이 일어하는 하이트맵 구역을 정의하는 값입니다. 0.5 로 놔두면 표준 lerp, 0 이나 1 쪽으로 변경하면 하이트맵 하단 또는 상단쪽으로 각각 편향시킵니다.

Height Texture (Scalar)

하이트 텍스처 (스칼라) - lerp 연산에 사용되는 하이트맵입니다.

Contrast (Scalar)

대비 (스칼라) - CheapContrast 함수를 사용하여 하이트맵에 대비를 증폭시킵니다.

출력

Results

결과 - HeightLerp 함수의 블렌딩된 결과입니다.

Alpha

알파 - 대비 증폭을 적용시켜 lerp 에 사용된 알파 값입니다.

Lerp Alpha No Contrast

Lerp 알파 대비 없음 - 대비 증폭 적용 없이 lerp 에 사용된 알파 값입니다.

HeightLerp

CameraWorldBlend

카메라 각도에 따라서 세 가지 주요 월드 벡터에 대한 감쇠 결과를 출력합니다. 카메라가 보는 방향에 따라 텍스처끼리 블렌딩하는 데 사용할 수 있습니다.

이 함수는 아직 개발중인 것으로 보이며, 예상된 결과가 나지 않을 수 있습니다.

항목

설명

입력

Blend Power (Scalar)

블렌드 세기 (스칼라) - 한 텍스처에서 다른 텍스처로 블렌딩해 들어가는 속도입니다.

Use Reflection Vector (StaticBool)

리플렉션 벡터 사용 (스태틱 불) - True 면 CameraVector 대신 ReflectionVector 를 사용합니다 (머티리얼의 노멀 입력이 이펙트 결과입니다). 기본값은 False 입니다. 그러나 현재 스위치에 False 입력 데이터가 없기 때문에, False 로 설정한 채 놔두면 결과가 나지 않습니다.

Use Smoothable Normals (StaticBool)

스무딩 가능 노멀 사용 (스태틱 불) - True 면 CameraVector 대신 ReflectionVector 를 사용합니다 (머티리얼의 노멀 입력이 실제 결과입니다). 기본값은 False 입니다. 그러나 현재 스위치에 대한 False 입력 데이터가 없기에, False 로 설정한 채 놔두면 결과가 나지 않습니다.

Smooth Reflection Percentage (Scalar)

리플렉션 스무딩 비율 (스칼라) - 블렌딩 전 표면에 적용되는 노멀을 얼마만큼 부드럽게 만들지 입니다.

출력

XY True

표면이 XY 면에 평행이 되어감에 따라 흰색 쪽으로 블렌딩되는 감쇠 결과입니다.

XZ True

표면이 XZ 면에 평행이 되어감에 따라 흰색 쪽으로 블렌딩되는 감쇠 결과입니다.

YZ True

표면이 YZ 면에 평행이 되어감에 따라 흰색 쪽으로 블렌딩되는 감쇠 결과입니다.

CameraWorldBlend

표면이 XY 면에 수평인 곳은 초록 텍스처가, 나머지 곳에는 빨간 텍스처가 블렌딩되는 것을 볼 수 있습니다.

LocalSpaceSurfaceMirroring

LocalSpaceSurfaceMirroring (로컬 스페이스 표면 미러링) 함수는 주어진 로컬 축 쪽으로 방향이 맞춰진 표면의 모든 면에 미러링을 적용합니다. 표면 영역상의 다른 영역은 마스크로 걸러냅니다. 이 마스크는 스칼라 입력을 통해 오프셋을 적용하여, 전체 계산을 노멀 맵 만큼 동요시킬 수 있습니다. 표면의 토폴로지에 따른 미러링을 만들 필요가 있을 때 좋습니다.

항목

설명

입력

Use NormalMap (StaticBool)

노멀맵 사용 (스태틱 불) - 노멀 맵 적용 후 표면의 방향을 계산할 것인지 설정합니다.

Normal Map (Vector 3)

노멀 맵 (벡터3) - 로컬 토폴로지 계산 전 오브젝트의 표면을 동요시키는 데 사용되는 노멀 맵을 받습니다.

In (Scalar)

인 (스칼라) - 결과 마스크를 이동시키는 오프셋 값입니다.

출력

Local X

로컬 X - 로컬 X 축을 향하는 면에만 영향을 끼치는 마스크 적용된 미러 이펙트를 출력합니다.

Local Y

로컬 Y - 로컬 Y 축을 향하는 면에만 영향을 끼치는 마스크 적용된 미러 이펙트를 출력합니다.

Local Z

로컬 Z - 로컬 Z 축을 향하는 면에만 영향을 끼치는 마스크 적용된 미러 이펙트를 출력합니다.

SubUV_Function

SubUV_Function 은 여러 프레임에 걸친 스프라이트 시트나 텍스처의 애니메이션 처리에 완벽합니다. 이 함수는 텍스처 오브젝트를 받은 다음, 출력에 따라 해당 텍스처의 프레임에서의 블렌딩된 프레임 애니메이션을 표시할 수 있습니다.

항목

설명

입력

Texture (Texture Object)

텍스처 (텍스처 오브젝트) - 들어오는 스프라이트 시트 텍스처입니다.

UVs (Vector2)

UV (벡터2) - 텍스처에 대한 UV 좌표로, 타일링이 필요할 경우입니다.

SubImages (Vector2)

서브 이미지 (벡터2) - 텍스처 상의 가로와 세로 프레임 수입니다.

Frame (Scalar)

프레임 (스칼라) - 애니메이션의 현재 프레임입니다. 0 부터 시작하고, 정수 값에 블렌딩합니다. 예를 들어 2.35 면 셋째 넷째 프레임 사이에 35% 블렌딩이 만들어집니다.

SubUV_Function

TwoSidedTexturing

TwoSidedTexturing (양면 텍스처링) 함수는 양면 머티리얼의 두 면 모두에 대한 개별 텍스처 입력을 제공합니다. 이 함수는 머티리얼의 Two Sided 프로퍼티가 켜져있지 않은 경우 아무것도 하지 않습니다.

항목

설명

입력

Texture Side A (Vector3)

텍스처 면 A (벡터3) - 폴리곤의 양수 (바깥쪽) 면에 사용되는 텍스처입니다.

Texture Side B (Vector3)

텍스처 면 B (벡터3) - 폴리곤의 음수 (안쪽) 면에 사용되는 텍스처입니다.

Use Surface Normals (StaticBool)

표면 노멀 사용 (스태틱 불) - 메시의 양수 음수 면 계산 보조를 위해 들어오는 노멀 맵을 사용할 것인지 셰이더에게 알려줍니다.

TwoSidedTexturing

WorldCoordinate3Way

WorldCoordinate3Way (월드 좌표 3 방향) 함수는 오브젝트의 표면에 월드 좌표로 텍스처를 투영합니다. 사용자는 가장자리에서 다수의 텍스처 블렌딩 방식을 제어할 수 있으며, 노멀 맵을 추가하여 계산 전 표면을 동요시킬 수 있습니다.

이 텍스처는 월드 좌표를 따라 투영되므로, 주어진 오브젝트가 이동이나 회전되면 텍스처가 표면상에서 "헤엄"치게 됩니다.

항목

설명

입력

XY Texture (Texture Object)

XY 텍스처 (텍스처 오브젝트) - XY 면에 투영될 텍스처입니다.

YZ Texture (Texture Object)

YZ 텍스처 (텍스처 오브젝트) - YZ 면에 투영될 텍스처입니다.

XZ Texture (Texture Object)

XZ 텍스처 (텍스처 오브젝트) - XZ 면에 투영될 텍스처입니다.

XY Scale (Scalar)

XY 스칼라 (스칼라) - XY 면에 투영되고 있는 텍스처에 적용할 스케일입니다.

YZ Scale (Scalar)

YZ 스칼라 (스칼라) - XY 면에 투영되고 있는 텍스처에 적용할 스케일입니다.

XZ Scale (Scalar)

XZ 스칼라 (스칼라) - XY 면에 투영되고 있는 텍스처에 적용할 스케일입니다.

Blend Exponent Y Z (Scalar)

블렌드 지수 Y Z (스칼라) - Y 와 Z 를 따라 투영되고 있는 텍스처 사이의 트랜지션 속도를 조절합니다.

Blend Mult Y Z (Scalar)

블렌드 곱 Y Z (스칼라) - 면 사이의 블렌드를 곱합니다.

Blend Exponent X (Scalar)

블렌드 지수 X (스칼라) - X 면을 따라 투영되고 있는 텍스처 사이의 트랜지션 속도를 제어합니다.

Blend Mult X (Scalar)

블렌드 곱 X (스칼라) - 면 사이의 블렌드를 곱합니다.

Single Texture (StaticBool)

단일 텍스처 (스태틱 불) - True 로 설정되면, XY Texture 입력에 적용된 텍스처만 사용하여 모든 세 면에 투영합니다.

Normal (Vector3)

노멀 (벡터3) - 블렌딩 계산에 노멀 맵을 포함시켜, 표면이 향하는 방향을 결정하는 데 사용합니다.

WorldPosition (Vector3)

월드 포지션 (벡터3) - 투영 중심 위치에 오프셋을 적용할 수 있는 옵션 출력입니다.

출력

XYZ Output

XYZ 출력 - 각 면에서 투영된 세 텍스처 모두 가장자리에서 블렌딩하여 출력시킵니다.

XY

XY 면에 투영되고 있는 텍스처만 출력합니다.

XZ

XZ 면에 투영되고 있는 텍스처만 출력합니다.

YZ

YZ 면에 투영되고 있는 텍스처만 출력합니다.

WorldCoordinate3Way

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기