언어:
페이지 정보
태그:
엔진 버전:
언리얼 엔진
이 문서가 번역된 이후 업데이트된 내용이 있을 수 있습니다. 자세한 내용은 영문 페이지를 참고하세요.

Vector 표현식

언리얼 엔진

여기서는 RGBA 에 매핑되는 벡터 값을 출력하는 벡터 표현식을 확인할 수 있습니다. 캐릭터가 특정 영역에 들어서면 머티리얼이 그에 반응하여 캐릭터의 색을 바꾸는 것과 같은 여러가지 다양한 이펙트를 만드는 데 사용할 수 있습니다. 공간 로컬 스타일 머티리얼 이펙트를 제어할 수 있는 것들도 여러가지 더 있는데, 아래 예제에서 자세히 살펴볼 수 있습니다.

ActorPositionWS

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

ActorPositionColors.png ActorPositionNetwork.png

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

CameraPositionWS

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

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

CameraPositionWSExample.png CameraPositionWSNetwork.png

CameraVectorWS

CameraVector 는 표면에 대한 카메라의 방향, 다른 말로 픽셀에서 카메라로의 방향을 나타내는 3채널 벡터값을 출력하는 표현식입니다.

사용 예: CameraVector 는 ComponentMask 에 연결한 뒤 CameraVector 의 X, Y 채널을 텍스처 좌표로 사용하는 식으로 인바이런먼트 맵을 속이는 데 사용됩니다.

CameraVectorWSExample.png

Constant2Vector

Constant2Vector 표현식은 2채널 벡터 값, 다른 말로 상수 둘을 출력하는 표현식입니다.

항목

설명

프로퍼티

R

표현식이 출력하는 벡터의 빨강 또는 첫 번째 채널의 실수 값을 나타냅니다.

G

표현식이 출력하는 벡터의 초록 또는 두 번째 채널의 실수 값을 나타냅니다.

예: (0.4, 0.6), (1.05, -0.3)

사용 예: Constant2Vector 는 마찬가지로 2채널 값을 사용하는 텍스처 좌표 변경에 좋습니다.

Constant2Example.png

머티리얼 에디터의 그래프 영역에서 2 키를 누른 채 클릭하면 Constant2Vector 노드를 빠르게 만들 수 있습니다.

Constant3Vector

Constant3Vector 표현식은 3채널 벡터 값, 다른 말로 상수 셋을 출력하는 표현식입니다. 각 채널마다 (빨강, 초록, 파랑) 한 가지씩 색이 할당되는 RGB 컬러를 예로 들 수 있습니다.

항목

설명

프로퍼티

R

표현식이 출력하는 벡터의 빨강 또는 첫 번째 채널의 실수 값을 나타냅니다.

G

표현식이 출력하는 벡터의 초록 또는 두 번째 채널의 실수 값을 나타냅니다.

B

표현식이 출력하는 벡터의 파랑 또는 세 번째 채널의 실수 값을 나타냅니다.

예: (0.4, 0.6, 0.0), (1.05, -0.3, 0.3)

Constant3Example.png

머티리얼 에디터의 그래프 영역에서 3 키를 누른 채 클릭하면 Constant3Vector 노드를 빠르게 만들 수 있습니다.

Constant4Vector

Constant4Vector 표현식은 4채널 벡터 값, 다른 말로 상수 넷을 출력하는 표현식입니다. 각 채널마다 (빨강, 초록, 파랑, 알파) 한 가지씩 색이 할당되는 RGBA 컬러를 예로 들 수 있습니다.

항목

설명

프로퍼티

R

표현식이 출력하는 벡터의 빨강 또는 첫 번째 채널의 실수 값을 나타냅니다.

G

표현식이 출력하는 벡터의 초록 또는 두 번째 채널의 실수 값을 나타냅니다.

B

표현식이 출력하는 벡터의 파랑 또는 세 번째 채널의 실수 값을 나타냅니다.

A

표현식이 출력하는 벡터의 알파 또는 네 번째 채널의 실수 값을 나타냅니다.

예: (0.4, 0.6, 0.0, 1.0), (1.05, -0.3, 0.3, 0.5)

Constant4Example.png

머티리얼 에디터의 그래프 영역에 4 키를 누른 채 클릭하면 Constant4Vector 노드를 빠르게 만들 수 있습니다.

LightVector

언리얼 엔진 4 에서 라이팅 계산이 디퍼드 방식으로 바뀌어서 이 표현식은 폐기상태가 되었습니다.

Object Bounds

Object Bounds (오브젝트 바운드)는 오브젝트 각 축의 크기를 출력하는 표현식입니다. 컬러로 사용되는 경우 X Y Z 축은 각각 R G B 에 해당합니다.

ObjectBoundsScene.png ObjectBoundsNetwork.png

위 예제에서 보면, 오브젝트의 컬러가 오브젝트의 가장 긴 축에 해당하는 것을 볼 수 있습니다.

ObjectOrientation

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

ObjectOrientationExample.png

ObjectPositionWS

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

WorldPositionWSScene.png WorldPositionNetwork.png

ParticlePositionWS

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

ParticlePositionWS.png

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

PixelNormalWS

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

PixelNormalWSExample.png

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

Pre-Skinned Local Normal

Pre-Skinned Local Normals 벡터 표현식은 스켈레탈 및 스태틱 메시의 로컬 표면 위치를 나타내는 3 채널 벡터 값을 출력합니다. 머티리얼에서 3면형 로컬 축 평행 및 메시 평행 이펙트를 얻을 수 있습니다.

이 예제에서 머티리얼은 메시의 로컬 표면 노멀에 평행인 3면형 텍스처를 사용하고 있습니다.

클릭하면 이미지 원본을 확인합니다.

PreSkinnedTriPlanar.gif

TriPlanarMaterial.gif

Tri-Planar Pre-Skinned Local Normal Vector Expression

Tri-Planar Material

Pre-Skinned Local Position

Pre-Skinned Local Position 벡터 표현식은 버텍스별 출력에서 사용할 수 있는 스켈레탈 메시 기본 포즈 위치 데이터에 접근 가능한 3채널 벡터 값을 출력합니다. 애니메이션 캐릭터에 로컬 이펙트를 만들 수 있습니다. 이 벡터 표현식은 스태틱 메시와도 사용할 수 있는데, 표준 로컬 위치를 반환합니다.

클릭하면 이미지 원본을 확인합니다.

이 예제에서, 스켈레탈 메시의 기본 포즈가 오른쪽의 기본 UV 매핑에 대한 매핑에 사용되었습니다.

PS_LocalPositionMaterial.gif

PS_DefaultMaterial.gif

Pre-Skinned Local Position Vector Expression

Skeletal Mesh's Default UV Layout

ReflectionVectorWS

ReflectionVectorWS 는 CameraVectorWS 와 내면은 비슷하나, 표면 노멀에 반사된 카메라 방향을 나타내는 3채널 벡터값을 출력한다는 차이점이 있습니다.

사용 예: ReflectionVector 는 인바이런먼트 맵에 흔히 사용되며, 리플렉션 벡터의 x/y 컴포넌트는 큐브맵 텍스처로 들어가는 UV 로 사용됩니다.

ReflectionVectorWSExample.png

VertexNormalWS

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

VertexNormalWSExample.png

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

Vector Noise

Vector_Noise_Example.png

Vector Noise (벡터 노이즈) 머티리얼 표현식은 머티리얼에 사용할 수 있는 3D 또는 4D 벡터 노이즈를 추가 제공해 줍니다. 이 함수는 실행시간 비용이 높으므로, 한 번 모양을 개발한 후에는 계산 전체 또는 일부를 언리얼 엔진 4.13 이후 도입된 Draw Material to Render Target Blueprint 기능으로 텍스처에 구워넣을 것을 추천합니다. 이 머티리얼 그래프 노드들을 사용하면, 최종 텍스처의 절차적인 모습을 엔진에서 개발할 수 있으므로, 외부 프로그램에서 절차적으로 생성되는 텍스처를 만들어 엔진의 애셋에 적용하는 것이 가능합니다. Vector Noise 머티리얼 표현식 안에서는, 다음과 같은 벡터 노이즈 유형을 찾을 수 있습니다.

이미지

아이템

설명

Cellnoise.png

Cellnoise

셀노이즈 - (노드 입력에 적용된 수학적 floor 연산에서) 3D 그리드 내 각 셀에 무작위 색을 반환합니다. 그 결과는 주어진 위치에서 항상 일관되므로, 머티리얼에 안정적인 방식으로 무작위성을 추가할 수 있도록 해줍니다. 이 벡터 노이즈 함수는 계산 비용이 매우 싸므로, 퍼포먼스를 위해 텍스처에 구울 필요가 없습니다.

VectorNoise.png

Perlin 3D Noise

펄린 3D 노이즈 - 3D 벡터 출력으로 계산한 Perlin Simplex Noise 의 한 가지 버전입니다. 각 출력 컴포넌트의 범위는 -1 에서 1 입니다. 노이즈 출력 세 채널을 한꺼번에 계산하는 것이 세 개의 스칼라 노이즈 함수 결과를 합치는 것보다 쌉니다.

GradientNoise.png

Perlin Gradient

펄린 그레디언트 - 스칼라 Perlin Simplex Noise 의 분석적 3D 그레디언트를 계산합니다. 출력은 4 채널로, 처음 3 (RGB) 채널은 그레디언트이고, 네 번째 (A) 채널은 스칼라 노이즈입니다. 표면의 범프 및 플로우 맵에 좋습니다.

CurlNoise.png

Perlin Curl

펄린 컬 - 벡터 Perlin Simplex Noise (소위 Curl Noise) 의 분석적 3D 컬 버전을 계산합니다. 출력은 3D 부호화 컬 벡터입니다. 플루이드 또는 파티클 플로우에 좋습니다.

VoronoiNoise.png

Voronoi

보로노이 - 같은 보로노이 노이즈를 스칼라 노이즈 머티리얼 노드로 계산합니다. 스칼라 보로노이 노이즈는 3D 공간에 시드 포인트를 분산시키고 가장 가까운 것까지의 거리를 반환합니다. 벡터 노이즈 버전은 가장 가까운 시드 포인트 위치를 RGB 로, 그와의 거리를 A 로 반환합니다. 특히 셀노이즈와 같이 쓰면, 보로노이 셀 단위로 약간의 난수성을 낼 수 있습니다.

아래는 단순한 돌침대 머티리얼로, Vector Noise / Voronoi 의 거리 컴포넌트를 사용하여 표면에 굴곡을 주고, 갈라진 틈에 이끼를 혼합해 넣은 것입니다. 시드 포인트와 Vector Noise / Cellnoise 를 같이 쓰면 돌마다 색과 굴곡 높이를 바꿀 수 있습니다.

Stone_Example.png

파생형 기반 연산 펄린 컬과 펄린 그레디언트는 일반 펄린 노이즈처럼 옥타브에 같이 추가시킬 수 있습니다. 보다 복잡한 표현식의 파생형인 경우, 표현식 결과의 그레디언트를 계산할 필요가 있습니다. 그 작업을 수월하게 하기 위해 표현식을 머티리얼 함수에 넣고, 다음의 헬퍼 노드와 같이 사용하면 됩니다.

항목

설명

Prepare3DDeriv

사면체 패턴의 포지션 오프셋을 사용하여 3D 파생형을 계산합니다. 이 함수로 인해 나온 각각의 오프셋 위치에 동일한 3D 함수를 계산(evaluate)한 뒤 결과 값을 Compute3DDeriv 에 물려줍니다(feed).

Compute3DDeriv

사면체 패턴의 포지션 오프셋을 사용하여 3D 파생형을 계산합니다. Prepare3DDeriv 와 함께 사용합니다.

GradFrom3DDeriv

Prepare3DDeriv/Compute3DDeriv 결과에서 3D 그레디언트 벡터를 계산합니다.

CurlFrom3DDeriv

Prepare3DDeriv/Compute3DDeriv 결과에서 3D 벡터 필드 위치의 컬을 계산합니다.

이 헬퍼 머티리얼 함수는 사면체 패턴으로 배치된 기본 표현식의 계산을 네 번 사용하여 이와 같은 파생형 기반 연산을 추정해 냅니다.

Vector Noise 머티리얼 표현식에서 찾을 수 있는 다양한 노이즈 함수의 설명은 다음과 같습니다.

항목

설명

프로퍼티

Function

함수

설명

Cellnoise

셀노이즈 - 3D 스페이스의 각 정수 그리드 셀에 무작위 색입니다. 약 10 인스트럭션 입니다.

Perlin 3D Noise

펄린 3D 노이즈 - 3D 출력 포함 계산형 펄린 노이즈로, 각 채널 출력 범위는 -1 에서 1 입니다. 빨강 채널만 사용하는 경우 약 83 인스트럭션, 세 채널 모두 사용하는 경우 125 인스트럭션 입니다.

Perlin Gradient

펄린 그레디언트 - 펄린 노이즈 함수의 그레디언트를 계산합니다. RGB 출력에는 그레디언트 벡터가 포함되어 있으며, A 는 스칼라 노이즈입니다. 약 106 인스트럭션 입니다.

Perlin Curl

펄린 컬 - 3D 컬 노이즈를 계산합니다. 출력은 펄린 3D 노이즈의 수학적인 컬이 됩니다. 약 162 인스트럭션 입니다.

Voronoi

보로노이 - Noise 표현식의 Voronoi 함수와 인스트럭션 수나 알고리즘은 같지만, RGB 는 각 Voronoi 셀의 가장 가까운 시드 포인트 위치이며, A 는 그 시드 포인트까지의 거리입니다.

Quality

모양/퍼포먼스 세팅입니다. 값이 작으면 빨라지지만 모양이 떨어지고, 값이 크면 느려지지만 모양은 나아집니다.

Tiling

노이즈를 지원하는 함수에 타일링을 허용합니다. 비용은 올라가지만, 노이즈를 심리스 래핑 텍스처에 구을 때 좋습니다.

Tile Size

타일링할 때, 노이즈를 얼마나 자주 반복시킬지 입니다. 펄린 노이즈 변종의 경우, Tile Size 는 3 의 배수여야 합니다.

입력

Position

3D 벡터를 통해 텍스처 크기를 조정할 수 있도록 합니다.

  • Cell Noise 머티리얼 예제:

    클릭하면 이미지 원본을 확인합니다.

  • Perlin Gradient 머티리얼 예제:

    클릭하면 이미지 원본을 확인합니다.

  • Voronoi 머티리얼 예제:

    클릭하면 이미지 원본을 확인합니다.

태그