프로젝트 개발 과정 중에 자체 발광 머티리얼, 즉 빛나는 머티리얼이 필요해질 수 있습니다. 언리얼 엔진에서 자체 발광 머티리얼은 이미시브 머티리얼이라고 합니다. 이번 튜토리얼에서는 이미시브 컬러(Emissive Color) 입력을 사용하는 머티리얼 생성 방법과 제작 중인 월드에 실제로 라이트를 드리우는 이미시브 머티리얼 생성 방법을 알아봅니다.
이미시브 라이팅
아티스트는 언리얼 엔진에서 이미시브 머티리얼을 사용하여 언리얼 엔진의 표준 라이트 타입을 사용하지 않고도 매우 저렴하고 효과적인 방식으로 표면이 빛나거나 라이트를 드리우는 느낌을 연출할 수 있습니다. 이미시브 머티리얼은 세팅에 따라 주변 환경에 빛을 드리우는 실제 광원의 역할을 할 수도 있고, 씬에 빛을 방출하지 않고 자체적으로 발광할 수도 있습니다.
이미시브 머티리얼은 메인 머티리얼 노드의 Emissive Color 입력에 1.0보다 큰 값을 입력하면 생성됩니다. 이렇게 하면 머티리얼이 HDR 범위에 들어가 블룸 이펙트를 만들어 냅니다.
디폴트 릿 및 언릿 이미시브 머티리얼
이미시브 머티리얼은 자체 발광하므로 디폴트 릿(Default Lit) 및 언릿(Unlit) 셰이딩 모델 을 둘 다 사용할 수 있습니다. 전체 이미시브 머티리얼을 생성할 때는 셰이더 렌더링 비용이 더 저렴한 언릿 셰이딩 모델을 사용할 수 있습니다. 머티리얼의 일부가 씬에서 빛을 받아야 하는 경우에는 디폴트 릿 셰이딩 모델을 사용할 수 있습니다.

-
언릿 셰이딩 모델을 사용하는 경우: 이미시브 머티리얼이 레벨의 라이팅과 상호작용할 필요가 없는 경우 언릿 셰이딩 모델을 사용해야 합니다. 예를 들어, 라이트 카드나 전구의 표면 영역과 같은 광원을 시뮬레이션하기 위해 이미시브 머티리얼을 엄격하게 사용하는 경우가 있습니다.
-
디폴트 릿 셰이딩 모델을 사용하는 경우: 이미시브 머티리얼이 메인 머티리얼 노드의 다른 셰이더 입력을 사용해야 하는 경우 릿 셰이딩 모델을 사용해야 합니다. 예를 들어, 텍스처 마스크를 사용하여 머티리얼의 일부만 발광하도록 하는 경우가 있습니다. 라이트가 달린 총에 사용할 머티리얼을 만든다고 가정하면 디폴트 릿 셰이딩 모델을 사용하여 노멀 맵, 베이스 컬러 등의 셰이더 입력이 계속 작동하도록 해야 합니다. 이미시브 머티리얼이 주변 오브젝트를 밝히도록 하고 싶은 경우에는 디폴트 릿 셰이딩 모델을 사용해야 합니다.
전체 이미시브 머티리얼 생성하기
이 섹션에서는 광원을 시뮬레이션하는 데 엄격하게 사용되는 전체 이미시브 머티리얼을 생성하는 방법을 보여줍니다. 머티리얼에는 라이트의 컬러와 밝기를 제어하는 2개의 파라미터가 있습니다.
-
콘텐츠 브라우저에서 우클릭 하고 컨텍스트 메뉴의 기본 에셋 생성(Create Basic Asset) 섹션에서 머티리얼(Material) 을 선택합니다. 새 머티리얼의 이름을 EmissiveLightSource 로 변경합니다.
-
머티리얼 그래프에 다음 노드를 추가합니다.
- Vector Parameter
- Scalar Parameter
- Multiply
벡터 파라미터는 Emissive Color 로, 스칼라 파라미터는 Emissive Strength 로 이름을 변경합니다. 완료 시 그래프는 아래 이미지와 같습니다.
-
아래 이미지에 표시된 대로 노드를 연결하고, Multiply 출력을 Emissive Color 입력에 연결합니다. 각 파라미터를 선택하고 디테일 패널에서 디폴트값을 설정합니다. 아래 예시에서는 Emissive Color 는 빨간색으로, Emissive Strength 는 6으로 설정했습니다.
-
툴바에서 저장(Save) 을 클릭하여 머티리얼을 컴파일하고 에셋을 저장합니다. 머티리얼 에디터를 닫습니다.
-
콘텐츠 브라우저에서 EmissiveLightSource 머티리얼을 우클릭 하고 머티리얼 인스턴스 생성(Create Material Instance) 을 선택합니다.
-
EmissiveLightSource_Inst 에셋을 더블클릭하여 머티리얼 인스턴스 에디터에서 엽니다. 파라미터 이름 옆의 박스에 체크하여 두 파라미터를 모두 활성화합니다. 활성화되면 Emissive Color 및 Emissive Strength 값을 실시간으로 오버라이드할 수 있습니다.
마스크드 이미시브 머티리얼 생성하기
이 예시는 텍스처 마스크를 사용하여 머티리얼의 이미시브 부분을 정의하는 머티리얼 생성 방법을 보여줍니다. 이 머티리얼은 부분적으로만 발광하기 때문에 반드시 디폴트 릿 셰이딩 모델을 사용해야 합니다.
이 튜토리얼에서는 언리얼 엔진 시작용 콘텐츠에 포함된 에셋을 사용합니다. 여기에서 소개하는 기법은 어떤 텍스처에나 사용할 수 있지만, 예시를 그대로 재현해 보고 싶다면 프로젝트에 시작용 콘텐츠 가 포함되어 있어야 합니다. 프로젝트 생성 시 시작용 콘텐츠를 포함하지 않았다면 에셋 이주하기 페이지를 읽고 현재 프로젝트에 콘텐츠를 이주하는 방법을 알아보세요.
-
새 머티리얼을 생성하여 머티리얼 에디터에서 엽니다. 이 머티리얼은 디폴트 릿(Default Lit) 셰이딩 모델을 사용해야 합니다.
-
그래프에 다음 머티리얼 표현식을 추가합니다.
- Vector Parameter x 2
- Scalar Parameter x 2
- Texture Sample - T_Tech_Panel_M
- Texture Sample - T_Tech_Panel_N
- Multiply x 4
- Add x 1
이러한 파라미터는 이전 예시와 마찬가지로 이미시브 강도 및 컬러를 제어하는 용도로 사용됩니다. 벡터 파라미터의 이름을 Emissive Color 1 및 Emissive Color 2 로 변경하고, 스칼라 파라미터의 이름을 Emissive Power 1 및 Emissive Power 2 로 변경합니다. 디폴트값을 원하는 컬러와 강도로 변경합니다.
-
T_Tech_Panel_M 텍스처에는 채널마다 서로 다른 4개의 이미지 마스크가 포함되어 있습니다. 이 머티리얼은 레드 및 블루 채널을 사용하여 머티리얼에 서로 다른 2개의 이미시브 섹션을 생성합니다.
아래 이미지에 표시된 대로 노드를 연결합니다. 이 로직은 텍스처 마스크에 순수한 검은색 및 흰색 값이 포함되어 있기 때문에 작동합니다. 컬러 파라미터가 텍스처 마스크의 값에 곱해지면, 마스크 내 검은색 픽셀이 이미시브 값 0 을 출력합니다. 아래 프리뷰에 표시된 것처럼 마스크의 흰색 부분만 이미시브입니다. 머티리얼 인스턴스에서 두 이미시브 영역의 컬러와 강도를 각각 독립적으로 변경할 수 있습니다.
이미지를 클릭하면 확대됩니다.
-
툴바에서 저장(Save) 을 클릭하여 머티리얼을 컴파일하고 에셋을 저장합니다. 머티리얼 에디터를 닫습니다.
-
콘텐츠 브라우저에서 EmissiveMaterialMasked 에셋을 우클릭 하고 머티리얼 인스턴스 생성(Create Material Instance) 을 선택합니다.
-
EmissiveMaterialMasked_Inst 에셋을 더블클릭하여 머티리얼 인스턴스 에디터에서 엽니다. 4개의 파라미터 옆 박스에 모두 체크하여 머티리얼 인스턴스에서 오버라이드합니다. 활성화되면 두 이미시브 영역의 외관을 개별적으로 제어할 수 있으며, 여기에는 Emissive Power 파라미터를 0 으로 설정하여 영역을 켜거나 끄는 것도 포함됩니다.
테스트 맵 생성하기
예시 나머지 부분에서는 아래에 표시된 단순한 테스트 맵을 사용하여 언리얼 환경에 이미시브 라이트가 전파되는 방식을 보여줍니다.

다음 단계를 따라 유사한 테스트 맵을 생성합니다. 이 씬의 모든 에셋은 언리얼 시작용 콘텐츠에 포함되어 있습니다.
-
파일(File) > 새 레벨(New Level) 로 이동하여 새 레벨을 생성하고, 새 레벨 다이얼로그에서 TimeofDay 옵션을 선택합니다.
키보드의 CRTL + N 을 눌러 새 레벨을 생성할 수도 있습니다.
-
데모 씬은 아래에 나열된 에셋으로 생성되었습니다.
- Wall_500x500 - 아래 이미지와 같이 방 모양으로 배치된 5개의 인스턴스
- M_Brick_Clay_New - 5개의 벽 인스턴스에 모두 적용된 머티리얼
- Shape_sphere - 테스트 방의 중앙에 배치됨
-
방이 완성되면 키보드의 CTRL + S 를 눌러 맵을 저장합니다.
루멘을 사용한 이미시브 머티리얼
루멘 글로벌 일루미네이션이 활성화되면, 이미시브 머티리얼의 라이트가 추가적인 퍼포먼스 비용 없이 씬에 자동으로 전파됩니다. 이는 강력하고 매우 동적인 라이팅 접근법이지만, 매우 작거나 매우 밝은 이미시브 광원을 사용할 때 노이즈 아티팩트를 유발할 수 있으므로 주의해야 합니다.
루멘 글로벌 일루미네이션은 새로 생성된 언리얼 엔진 5 프로젝트에서 기본적으로 활성화되어 있습니다. 기존 UE4 프로젝트를 UE5로 변환하는 경우 루멘을 수동으로 활성화해야 합니다. 여기에서 루멘 활성화에 대해 알아보세요.
아래 영상은 루멘이 활성화된 씬에 이미시브 머티리얼이 빛을 드리우는 방식을 보여줍니다. 이미시브 광원의 크기에 따라 빛의 밝기 및 감쇠 거리가 어떻게 바뀌는지 눈여겨보시기 바랍니다.
스태틱 라이팅을 사용한 이미시브 머티리얼
이미시브 머티리얼은 스태틱 라이팅을 사용할 때 레벨에 라이트를 드리울 수 있지만, 이 기능은 기본적으로 활성화되어 있지 않습니다. 씬에 다른 라이팅이 없는 CPU 라이트매스 빌드를 생성하는 경우, 이미시브 머티리얼의 자체 발광 부분이 보이기는 하지만 머티리얼이 주변의 오브젝트를 비추지는 않습니다.

이 머티리얼이 씬에 라이트를 드리우도록 하려면 디테일 패널에서 세팅을 활성화해야 합니다. 이미시브 머티리얼이 적용된 스태틱 메시를 선택합니다. 이 경우에는 큐브입니다.
디테일 패널에서 'emissive'를 검색하고 라이트매스 세팅(Lightmass Settings) 에서 스태틱 라이팅에 이미시브 사용(Use Emissive for Static Lighting) 박스에 체크하여 활성화합니다.

이미시브 부스트(Emissive Boost) 세팅도 있습니다. 라이트매스 빌드를 생성했는데 이미시브 라이트가 너무 어둡다면 1 보다 큰 값을 입력하여 결과를 증폭할 수 있습니다. 밝기를 올리는 또 다른 방법은 머티리얼 인스턴스의 Emissive Power 파라미터 값을 늘리는 것입니다.
아래의 슬라이더는 '스태틱 라이팅에 이미시브 사용' 옵션을 활성화했을 때와 값을 2로 늘렸을 때 스태틱 라이팅이 어떻게 바뀌는지 보여줍니다.



(1) 스태틱 라이팅에 이미시브 사용 비활성화됨, (2) 스태틱 라이팅에 이미시브 사용 활성화됨, (3) 이미시브 부스트 2로 설정됨
이미시브 및 GPU 라이트매스
스태틱 라이팅에 이미시브 사용 세팅은 GPU 라이트매스로 라이팅을 구울 때는 필수가 아닙니다. 이미시브 머티리얼의 라이트는 GPU 라이트매스 결과로 자동 전파됩니다. GPU 라이트매스 굽기에서 이미시브 라이팅의 밝기를 높이거나 낮춰야 하는 경우 머티리얼 또는 머티리얼 인스턴스에서 밝기 값을 수정하면 됩니다.
이미시브 영향 및 블룸
이미시브 머티리얼의 밝기를 늘리면 머티리얼의 이미시브 부분에서 생성되는 포스트 프로세스 블룸 이펙트가 점점 더 밝아집니다. 머티리얼에서 이미시브 값을 늘리되 블룸 이펙트가 이미지를 압도하지는 않도록 하고 싶은 경우가 있을 것입니다.
포스트 프로세스 볼륨(Post Process Volume) 에서 이미시브 파워와 무관하게 블룸 이펙트를 제어할 수 있습니다. 이는 이미시브 밝기를 높이거나 낮추면서 블룸 이펙트를 합리적인 수준으로 유지할 수 있는 한 가지 방법입니다.

이 값을 조정하면 월드 내 이미시브 머티리얼에서 더 많은 스태틱 라이트를 얻기 위해 이미시브 값을 크게 높일 때 보정하는 데 도움이 됩니다.
아래 영상에서는 이미시브 파워 값 중 하나를 100으로 늘려 블룸 이펙트가 상당히 과도해집니다. 이를 보정하기 위해 포스트 프로세스 볼륨을 선택하고 'bloom'을 검색하여 시각적으로 보다 매력적인 결과를 얻을 수 있도록 값을 줄이면 됩니다. 블룸 세팅을 컨볼루션(Convolution) 으로 변경하여 카메라 스타버스트 이펙트를 모방할 수도 있습니다.
간접광의 멀티 바운스
스태틱 라이팅에 이미시브 사용 이 활성화된 경우 간접광의 멀티 바운스를 사용하여 라이팅을 부드럽게 개선할 수 있습니다. 월드 세팅(World Settings) 패널에서 라이트매스 세팅(Lightmass Settings) 을 펼쳐 스카이 라이트 반사 수(Num Sky Lighting Bounces) 값을 늘립니다.


간접광의 멀티 바운스를 제공하는 이미시브 스태틱 라이팅이 있는 예시 씬