UDN
Search public documentation:

AnisotropicLightingKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 홈 > 머티리얼과 텍스처 > 이방성(anisotropic) 라이팅
UE3 홈 > 빛과 그림자 > 이방성(anisotropic) 라이팅
UE3 홈 > 라이팅 아티스트 > 이방성(anisotropic) 라이팅

이방성(anisotropic) 라이팅


문서 변경내역: 잭 포터 작성 홍성진 번역.

개요


브러시 메탈, CD의 빛나는 면, 사람 머리칼 등의 이방성(anisotropic) 표면은, 그 표면상의 미세한 결이나 홈 또는 올 특유의 모습을 냅니다. 일반 머티리얼로 라이팅을 계산할 때는 표면의 노멀 벡터, 라이트쪽 벡터, 카메라쪽 벡터만 고려합니다. 그러나 이방성 표면에 대해서는 정말이지 마땅히 사용할 만한 연속된 노멀 벡터가 없습니다. 각 올이나 홈은 그 방향에 대해 직각인 법선(노멀) 방향이 무수히 다양하기 때문입니다.

MLM_Anisotropic 라이팅 모델에서 라이팅 계산은, 빛이 표면에 의해 반사(reflect)되는 모습을 모델링하기 위해 홈이나 올에 접하는 방향을 활용합니다. 이 방향을 AnisotropicDirection 입력을 사용하여 머티리얼에 쥐어줘야 합니다.

언리얼의 스태틱 라이트맵 데이터는 이방성 방향 정보를 아주 잘 잡아내지는 못하므로, 이방성 머티리얼은 이런 종류의 지오메트리를 피해야 합니다. 그림자는 라이트매스도미넌트 라이트를 가지고 미리 계산할 수야 있지만 스페큘러는 완전히 동적이기에, 이방성 머티리얼이 이런 상황에는 제격입니다.

세팅


이방성 라이팅 모델을 사용하려면, LightingModel (라이팅 모델)을 MLM_Anisotropic 으로 설정하기만 하면 됩니다.

결의 기본 방향은 (0,1)로 UV 공간상 "아래"에 해당합니다. 머티리얼 뷰를 Sphere(구체)로 바꾸면, 밝은 빛 아래 있는 사람들의 머리칼에 원형 스페큘러 효과가 나는 것을 볼 수 있습니다:

aniso1.jpg

탄젠트 스페이스


라이팅 계산은 탄젠트 스페이스, 즉 메시의 UV 좌표에 있는 텍스처 매핑의 U V 방향으로 정의되는 공간에서 이루어집니다. 빨강 채널은 (텍스처 맵에서 좌->우 이동 방향) U를 나타내며, 녹색은 (텍스처 맵의 아래쪽 방향) V를, 파랑은 텍스처의 표면 밖으로의 방향을 나타냅니다.

탄젠트 스페이스 벡터값을 (노멀 맵과 같은) 텍스처 내부에 저장하기 위해, 방향은 텍스처의 색에 인코딩됩니다. 0-255 범위로 -1에서 1까지의 값을 나타내며, 0은 텍스처에 색 값 127로 저장됩니다. 이때문에 노멀 맵은 전형적으로 R=127,G=127,B=255, 벡터로 하면 (0,0,1) 인 것이며, 이는 텍스처 표면 바깥쪽을 가리키는 것입니다.

여기서, 탄젠트 스페이스 맵으로 사용된 텍스처는 TC_NormapMap 압축 세팅 중 하나로 임포트된다는 점이 중요한데, UnpackMin 및 UnpackMax 프로퍼티를 올바르게 설정해 줘야 -1 에서 1 사이의 범위가 되기 때문입니다. 텍스처의 SRGB 세팅도 꺼 줘야 합니다.

AnisotropicDirection(이방성 방향)


AnisotropicDirection(이방성 방향) 인풋에다 지정해 줄 연결은 메시에 대한 UV를 unwrap시킨 방법에 따라 다릅니다. 메시의 텍스처 맵을 볼 때, 결의 방향이 가로 또는 세로 어느 방향으로 나가게 하고 싶습니까? 결의 방향이 전부 가로라면, 방향 표현을 위해 값이 (1,0,0)인 Constant3 를 사용하면 됩니다. 결의 방향이 전부 세로라면, (0,1,0) 값을 사용하면 됩니다.

그러나 결 방향이 어디서는 가로이고 또 어디서는 세로인 경우, 이방성 방향을 표현하려면 텍스처 맵을 사용해야 합니다. 결 방향이 가로인 곳에는 R=255,G=127,B=127 색을, 세로인 곳에는 R=127,G=255,B=127 색을 칠한 다음 이것을 이방성 방향 맵으로 사용합니다. 좀 더 복잡한 방향의 경우, 원하는 방향을 표현하기 위한 색으로 작업을 좀 더 해야 합니다.

anisomap_thumb.jpg

방향이 원 주변의 접선 방향에 일치하는 디렉션 맵의 예입니다. 불행히도 제가 아는 툴 중에는 이런 종류의 맵을 만들 수 있는 것이 없습니다. 이 원 모양은 간단한 C 프로그램을 사용하여 만든 겁니다.

이 맵을 사용한 머티리얼:
브러시 메탈 이방성 맵을 가진 머티리얼

이 머티리얼로 된 표면:
브러시 메탈 머티리얼 표면 스크린샷

노멀 맵 사용하기


평소처럼 노멀맵을 지정하면 법선이 이방성 방향으로 퍼집니다.

aniso_normal.jpg

예제 패키지


  • AnisoTest.upk: 위의 브러시 메탈 머티리얼이 포함된 예제입니다.