Coordinates 머티리얼 표현식

텍스처 좌표를 수정하거나 텍스처 좌표로서 사용할 수 있는 출력값 및 텍스처 좌표에 작업을 수행하는 표현식입니다.

Choose your operating system:

Windows

macOS

Linux

ActorPositionWS

ActorPositionWS 는 월드 스페이스에서 이 머티리얼을 가진 오브젝트의 위치를 나타내는 Vector3 (RGB) 데이터를 출력합니다.

ActorPositionColors.png ActorPositionNetwork.png

이 예제에서는 ActorPositionWS 가 Material 의 베이스 컬러에 바로 물리는 것을 볼 수 있습니다. 그 결과 이 머티리얼이 적용된 각각의 구체는 3D 공간의 다른 위치로 이동함에 따라 다른 색을 내는 것을 볼 수 있습니다. 참고로 ActorPositionWS 노드의 결과에 1600 을 나눠서 색이 그냥 튀지 않고 멋지게 블렌딩되고 있습니다.

CameraPositionWS

CameraWorldPosition 는 월드 스페이스에서의 카메라 위치를 나타내는 3채널 벡터값을 출력하는 표현식입니다.

미리보기 구체는 카메라가 회전하면서 색이 바뀝니다.

CameraPositionWSExample.png CameraPositionWSNetwork.png

LightmapUVs

LightmapUVs 표현식은 2채널 벡터값 형태로 라이트맵 UV 텍스처 좌표를 출력하는 표현식입니다. 라이트맵 UV를 사용할 수 없으면 2채널 벡터값 (0,0)을 출력합니다.

ObjectOrientation

ObjectOrientation 는 오브젝트의 월드 스페이스 업 벡터를 출력하는 표현식입니다. 다른 말로 오브젝트의 로컬 양수 Z 축이 이 방향을 가리킨다는 것입니다.

ObjectOrientationExample.png

ObjectPositionWS

ObjectPositionWS 는 오브젝트 바운드의 월드 스페이스 중심 위치를 출력하는 표현식입니다. 예로 폴리지에 대한 구체형 라이팅을 만든다든가 할 때 좋습니다.

WorldPositionWSScene.png WorldPositionNetwork.png

ObjectRadius

Object Radius 표현식은 주어진 오브젝트의 반경과 동일한 값을 언리얼 유닛 단위로 출력합니다. 스케일을 적용하여 계산하기 때문에 오브젝트마다 다를 수 있습니다.

Object Radius 표현식

이 예시에서는 두 메시 모두 ObjectRadius가 Diffuse에 물려 있는 이 머티리얼을 받고 있습니다. 시각적으로 더 의미 있는 결과를 얻기 위해 ObjectRadius 출력값을 512로 나눕니다.

Panner

Panner 표현식은 텍스처를 패닝 또는 이동하는 데 사용할 수 있는 UV 텍스처 좌표를 출력합니다.

항목

설명

프로퍼티

SpeedX

좌표를 U 방향으로 패닝할 속력을 나타냅니다.

SpeedY

좌표를 V 방향으로 패닝할 속력을 나타냅니다.

입력

Coordinate

표현식으로 변경하게 될 베이스 UV 텍스처 좌표를 받습니다.

Time

현재 패닝 위치를 결정하는 데 사용되는 값을 받습니다. 보통은 일정한 패닝 이펙트를 구현하기 위해 Time 표현식을 사용하지만, 특정 오프셋을 설정하거나 마티네 또는 블루프린트를 통해 패닝을 제어하려면 ConstantScalar Parameter를 사용할 수도 있습니다.

Panner는 Time 입력에 따라 변하는 UV를 생성합니다. Coordinate 입력은 Panner 노드에서 생성한 UV를 조작(오프셋 등)하는 데 사용할 수 있습니다.

ParticlePositionWS

ParticlePositionWS (파티클 위치 월드 스페이스)는 각 개별 파티클의 월드 스페이스 위치를 나타내는 Vector3 (RGB) 데이터를 출력합니다.

ParticlePositionWS.png

이 이미지에서는 이미시브 컬러에 ParticlePositionWS 를 물려 데이터를 시각화시키고 있습니다. 파티클 시스템의 위치에 따라 색이 어찌 변해가는가 보이기 위해 스케일을 올려 놨습니다.

PixelNormalWS

PixelNormalWS 는 현재 노멀에 따라 픽셀이 향하고 있는 방향을 나타내는 벡터 데이터를 출력합니다.

PixelNormalWSExample.png

이 예제에서 PixelNormalWS 는 베이스 컬러에 물려 있습니다. 픽셀별 결과를 내기 위해 노멀 맵을 어찌 사용했는지 눈여겨 보세요.

Rotator

Rotator 표현식은 회전하는 텍스처를 만드는 데 사용할 수 있는 2채널 벡터값 형태로 UV 텍스처 좌표를 출력합니다.

항목

설명

프로퍼티

CenterX

회전의 중심으로 사용할 U 좌표를 나타냅니다.

CenterY

회전의 중심으로 사용할 V 좌표를 나타냅니다.

Speed

좌표의 시계방향 회전 속력을 나타냅니다.

입력

Coordinate

표현식으로 변경하게 될 베이스 UV 텍스처 좌표를 받습니다.

Time

현재 회전 위치를 결정하는 데 사용되는 값을 받습니다. 보통은 일정한 회전 이펙트를 구현하기 위해 Time 표현식을 사용하지만, 특정 오프셋을 설정하거나 마티네 또는 블루프린트를 통해 회전을 제어하려면 ConstantScalar Parameter를 사용할 수도 있습니다.

SceneTexelSize

SceneTexelSize 표현식을 사용하면 SceneColor 및 SceneDepth 표현식을 사용할 때와 마찬가지로 텍셀 크기만큼 오프셋할 수 있습니다. 이 표현식은 멀티 솔루션 시스템에서 에지(edge)를 탐지하기 좋은 방법으로, 이러한 계산을 하지 않으면 작은 고정 값을 사용할 수밖에 없어, 해상도가 떨어지며 일관되지 않은 결과가 나옵니다.

ScreenPosition

ScreenPosition 표현식은 현재 렌더링되고 있는 픽셀의 스크린 스페이스 위치를 출력합니다.

ScreenPosition 예시

TextureCoordinate

TextureCoordinate 표현식은 2채널 벡터값의 형태로 UV 텍스처 좌표를 출력합니다. 이 표현식을 사용하면 머티리얼에 다른 UV 채널을 사용하거나, 타일링을 지정하거나, 메시 UV에 작업을 수행할 수 있습니다.

항목

설명

프로퍼티

Coordinate Index

사용할 UV 채널을 나타냅니다.

UTiling

U 방향 타일링 양을 나타냅니다.

VTiling

V 방향 타일링 양을 나타냅니다.

Un Mirror U

true 일 경우 U 방향 미러링 작업을 취소합니다.

Un Mirror V

true 일 경우 V 방향 미러링 작업을 취소합니다.

사용 예시: 메시의 두 번째 UV 채널에 접근하려면, TextureCoordinate 노드를 만들고 그 CoordinateIndex를 1([첫 번째 채널은 0, 두 번째 채널은 1] 또는 [n번째 채널을 n-1로 설정])로 설정한 다음, TextureSample 노드의 UVs 입력에 연결합니다.

TextureCoordinate 예시

VertexNormalWS

VertexNormalWS 는 월드 스페이스 버텍스 노멀을 출력하는 표현식입니다. WorldPositionOffset 처럼 버텍스 셰이더에서 실행되는 머티리얼 입력에서만 사용 가능합니다. 메시를 키우거나 줄이거나 할 때 좋습니다. 노멀을 따라 위치를 오프셋시키면 UV 이음새를 따라 지오메트리가 떨어져 나가게 됨에 유의하시기 바랍니다.

VertexNormalWSExample.png

위 예제에서 미리보기 구체는 사인 곡선과 같은 상하 움직임으로 스케일이 적용되는 것처럼 보이는데, 버텍스 각각이 자신의 노멀 방향으로 움직이기 때문입니다.

VertexTangentWS

VertexTangentWS 표현식은 월드 스페이스 버텍스 탄젠트를 출력합니다. 이 표현식은 VertexNormalWS와 마찬가지로 메시의 버텍스 위치를 조작하여 World Position Offset 입력으로 미세한 앰비언트 애니메이션을 구현할 때 유용합니다.

위의 예시에서는 구체의 각 버텍스가 월드 스페이스의 버텍스 탄젠트에 따라 사인 곡선처럼 움직입니다. 따라서 구체가 좌우로 비틀리는 듯한 느낌을 줍니다. 평면의 경우 버텍스 탄젠트에 따라 좌우로 흔들리게 됩니다.

ViewSize

ViewSize 표현식은 현재 뷰의 픽셀 단위 크기를 나타내는 2D 벡터를 출력합니다. 화면의 현재 해상도에 따라 머티리얼에 다양한 변화를 주고 싶을 때 유용합니다.

이 예시에서는 ViewSize가 Base Color에 연결되었습니다. 결과를 2,400으로 나누어 시각적으로 의미 있는 결과를 도출했습니다. 프리뷰 창의 크기가 커지거나 작아지면 구체의 색이 변합니다.

WorldPosition

WorldPosition 표현식은 현재 픽셀의 월드 스페이스 위치를 출력합니다. 시각화하려면 출력을 Emissive에 연결하기만 하면 됩니다.

WorldPosition 예제

PixelDepth에서 직교(orthogonal)까지의 거리를 구하는 것과 반대로, 주로 카메라에서 픽셀까지의 방사상(radial) 거리를 구할 때 사용됩니다. WorldPosition은 텍스처 좌표로 사용하기 좋으며, 텍스처 좌표를 사용하는 관련 없는 메시들이 서로 가까이 있을 때 매치시킬 수도 있습니다. 다음은 WorldPosition.xy를 사용하여 텍스처를 평면 매핑시키는 기본적인 예제입니다.

평면 투영 WS