임포스터 베이커(Impostor Baker) 플러그인을 사용하면 원거리 렌더링의 레벨 오브 디테일(LOD) 메시로 사용하기 위해 복잡한 지오메트리의 단순화된 표현을 구울 수 있습니다. 임포스터 베이커를 사용하여 생성할 수 있는 주요 임포스터 타입은 세 가지입니다.
풀 스피어 임포스터(Full Sphere Impostor) - 오브젝트를 중심으로 모든 각도에서 뷰를 캡처하고 렌더링합니다.
상반구 임포스터(Upper Hemisphere Impostor) - 터레인 위쪽에서만 뷰를 캡처하고 렌더링합니다. 이 옵션은 일반적으로 터레인 위에 놓여 있고 아주 멀리서는 아래쪽이 보이지 않는 오브젝트에 대해 더 좋은 퀄리티를 제공합니다. 사용되지 않는 뷰를 렌더링하지 않기 때문에 프로세싱 리소스가 절약됩니다.
기존 빌보드 LOD(Traditional Billboards LOD) - 고정된 수평 각도에서 여러 이미지를 캡처하고 위쪽에서 단일 이미지를 캡처하여 상단 뷰를 표현하는 예전의 기술을 사용합니다. 이러한 이미지는 보기 각도에 따라 자체 스프라이트 카드에 각각 배치됩니다. 벗어난 방향을 향하는 카드는 디더 이펙트를 사용하여 페이드됩니다.
처음 두 타입의 임포스터는 같은 기술을 기반으로 합니다. 툴이 오브젝트를 중심으로 지정된 수의 뷰를 캡처하는 방식입니다. 렌더링 시 임포스터 머티리얼은 현재 카메라 뷰에 가장 가까운 세 개의 캡처된 프레임을 찾아 그 프레임들을 블렌딩하여 실제 뷰 각도에 더 근접한 표현을 만들어냅니다. 이러한 세 개의 프레임은 단일 스프라이트 평면으로 렌더링됩니다.
특정 고정 시점의 스프라이트 평면을 사용하기 때문에 어떤 각도에서는 완전히 제대로 보이지 않을 수 있는 빌보드에 비해, 임포스터는 항상 시청자의 관점에서 하나의 블렌딩된 스프라이트 프레임을 렌더링하여 3D 지오메트리를 더 부드럽고 사실적으로 시뮬레이션할 수 있습니다. 아래의 영상에서 이러한 차이를 확인할 수 있습니다.
왼쪽: 임포스터, 오른쪽: 빌보드
포트나이트 배틀로얄(Fortnite Battle Royale, FNBR)에서는 나나이트가 비활성화되었을 때 모든 나무에 상반구 임포스터를 사용했습니다. 이를 통해 멀리서 바라본 섬에 펼쳐진 나무의 퀄리티를 개선할 수 있었습니다.
임포스터와 빌보드 비교
임포스터와 빌보드의 차이점은 임포스터는 버텍스가 9개인 8개의 트라이앵글로 구성된 하나의 스프라이트 카드를 사용하지만, 빌보드는 버텍스가 총 81개인 72개의 트라이앵글로 구성된 8개의 카드를 사용한다는 것입니다. 즉, 빌보드 표현에서 임포스터보다 8배 많은 버텍스와 트라이앵글을 사용하여 표현합니다.
임포스터는 보통 빌보드보다 렌더링 속도가 훨씬 빠른데, 더 적은 버텍스를 포함하기 때문입니다. 다만, 가장 가까운 세 개 프레임을 블렌딩해야 해서 픽셀 셰이더 비용은 더 많이 듭니다. 모바일 환경에서는 임포스터 렌더링이 단일 프레임 샘플로 예비 전환됩니다. 한편 빌보드는 마스크드 머티리얼 대한 오버드로 문제가 더 심합니다. 빌보드를 사용할 때 주요 장점은 3x3 그리드로 9개의 뷰만 캡처하기 때문에 텍스처 해상도를 개선할 수 있다는 점입니다.
원거리 폴리지의 경우 임포스터의 XY 프레임 분포 값으로 12를 사용합니다. 포트나이트 배틀로얄의 대부분의 에셋에 이 값을 사용합니다. 이렇게 하면 12x12 프레임이 되어 총 144 프레임이 사용됩니다.
임포스터 베이커 플러그인 활성화하기
시작하기 전에 언리얼 엔진 프로젝트에서 ImposterBaker 플러그인을 활성화합니다. 편집(Edit) 메뉴에서 플러그인(Plugins) 브라우저를 열어 활성화하면 됩니다. 이 플러그인은 내장 플러그인(BUILT-IN) > 메시(Mesh) 카테고리에 있습니다.
언리얼 엔진 5.5 이상 버전에서 임포스터 베이커 플러그인 변경사항
더 많은 사용 사례를 처리하고 사용이 쉽도록 임포스터 베이커에 새로운 기능이 추가되었습니다. 이러한 개선 사항은 다음과 같습니다.
이제 임포스터 베이커가 머티리얼 에셋에 머티리얼 스위치를 배치하지 않고도 GBuffer를 사용하여 렌더링할 수 있습니다.
이제 임포스터 베이커가 머티리얼이 사용하는 모든 컬러 맵과 스칼라 맵을 렌더링하고 사용자가 지정한 조합으로 스칼라 맵을 채널 패킹할 수 있습니다.
임포스터 베이커에 이제 데이터 에셋에 '프리셋(Presets)'으로 자동 저장할 수 있는 값 조정 및 렌더링을 위한 전체 에셋 에디터가 포함되어 있습니다.
이제 한 번의 클릭으로 텍스처와 메시 데이터를 소스 에셋에 바로 자동 저장할 수 있습니다.
임포스터 베이커에 이제 지정된 프리셋을 사용하여 여러 개의 메시에 대한 임포스터를 렌더링하고 이를 모두 저장할 수 있는 배치 렌더러가 포함되어 있습니다.
이제 임포스터 에디터(Impostor Editor) 또는 결과 머티리얼 인스턴스에서 바로 시차 없음(No Parallax), 단일 범프 오프셋 시차(Single BumpOffset Parallax), 전체 반복 시차(Full Iteration Parallax) 간에 토글할 수 있습니다.
임포스터 에디터 사용하기
아래 섹션에서는 임포스터 베이커 에디터의 다양한 섹션에 대해 설명합니다.
임포스터 에디터 위젯
임포스터 에디터 위젯을 사용하여 임포스터를 자유롭게 생성하고 커스터마이징할 수 있습니다.
프리셋 위젯
프리셋(Preset) 위젯을 사용하여 임포스터를 생성하면 한 번에 여러 개의 임포스터를 생성하고 저장할 수 있습니다.
이러한 위젯에 액세스하려면 콘텐츠 브라우저(Content Browser)에서 원하는 스태틱 메시(Static Mesh) 에셋을 우클릭한 다음 스크립팅된 에셋 액션(Scripted Asset Actions) > 임포스터 베이커(Impostor Baker) 옵션을 선택합니다.
프리셋 데이터 에셋
프리셋 데이터 에셋(Preset DataAsset)에는 임포스터 에디터를 열 때 초기화되는 모든 디폴트 값이 포함되어 있습니다. 따라서 일관된 세팅을 유지하면서 많은 임포스터를 반복해서 렌더링할 때 시간이 절약됩니다. 아래에서 개별 세팅에 대한 설명을 참조하세요.
세팅 프리셋(Settings Preset) 위에 있는 다음과 같은 버튼을 사용하여 현재 세팅 프리셋을 변경할 수 있습니다.
세팅 로드(Load Settings): 데이터 에셋의 세팅을 임포스터 에디터에 적용합니다.
데이터 에셋에 적용(Apply to DataAsset): 현재 임포스터 에디터 세팅을 데이터 에셋에 적용합니다.
새 데이터 에셋(New DataAsset): 에셋 저장(Asset Saving) 아래 지정된 경로에 새 데이터 에셋을 생성합니다.
임포스터 에디터 또는 프리셋 렌더러를 실행할 때 기본적으로 사용할 데이터 에셋을 프로젝트의 \(사용자의 프로젝트 루트)\config\DefaultEditor.ini에 있는 DefaultEditor.ini에서 지정할 수 있습니다. .ini 파일에 다음 정보를 포함하세요.
[/ImpostorBaker/BP/EUW_Impostor_Editor.EUW_Impostor_Editor_C]
DefaultSettingsAssetPath=/Game/ImpostorPresets
[/ImpostorBaker/BP/EUW_Generate_Impostor_using_Preset.EUW_Generate_Impostor_using_Preset_C]
DefaultSettingsAssetPath=/Game/ImpostorPresets그런 다음, 프로젝트에서 생성한 데이터 에셋이나 플러그인과 함께 설치된 디폴트 에셋을 가리키도록 DefaultSettingsAssetPath를 변경합니다.
베이크 세팅
베이크 세팅(Bake Settings) 섹션에는 임포스터 생성에 영향을 주는 메인 세팅이 포함되어 있습니다.
| 베이크 세팅 | Description |
|---|---|
스태틱 메시(Static Mesh) | 임포스터를 생성할 스태틱 메시 에셋을 결정합니다. |
프레임 XY(FramesXY) | 각 축에 생성할 서브프레임 수를 결정합니다. 예를 들어, 값이 16이면 16x16=256개의 서브프레임을 생성합니다. |
렌더링할 컬러 맵(Color Maps to Render) | 임포스터 베이커가 임포스터에 대해 렌더링할 전체 컬러 맵을 결정합니다. 대다수의 임포스터에는 베이스 컬러(BaseColor)와 노멀(Normal)만 필요합니다. 컬러 맵 출력 옵션의 전체 목록은 다음과 같습니다.
|
채널 패킹된 마스크(Channel Packed Masks) | 커스텀 스칼라 맵을 렌더링하고 그 결과를 단일 텍스처의 여러 색상 채널에 함께 패킹하는 기능을 제공합니다. 이때 사용할 수 있는 옵션은 다음과 같습니다.
|
임포스터 타입(Impostor Type) | 렌더링할 임포스터 타입을 결정합니다. 이때 사용할 수 있는 옵션은 다음과 같습니다.
|
해상도(Resolution) | 결과 텍스처 사용할 텍스처 해상도입니다. 에픽게임즈에서는 포트나이트 배틀로얄 같은 자사 프로젝트에 2048 해상도를 사용합니다. |
머티리얼 세팅
머티리얼 세팅(Material Settings) 섹션에는 임포스터가 사용할 머티리얼에 대한 세팅과 결과 머티리얼에 적용할 다양한 세팅이 포함되어 있습니다.
| 머티리얼 세팅 | Description |
|---|---|
반구 머티리얼(Hemisphere Material) | 임포스터에 사용할 부모 머티리얼을 결정합니다. 일반적으로 이 세팅은 변경할 필요가 없습니다. 이 세팅은 베이크 세팅에서 선택한 임포스터 타입에 따라 각 타입에 대한 올바른 디폴트 값을 표시합니다. |
셰이딩 모델 오버라이드(Shading Model Override) | 현재 셰이딩 모델을 다른 사용 가능한 셰이딩 모델로 변경하는 기능을 제공합니다. |
시차 모드(Parallax Mode) | 다음 세 가지 모드 간에 토글할 수 있습니다.
|
상수 스페큘러(Constant Specular) | 채널 패킹된 마스크 배열에 렌더링되는 스페큘러 맵이 없는 경우 스페큘러에 사용할 값을 설정합니다. 스페큘러 맵이 렌더링되는 경우 이 옵션은 숨겨집니다. |
상수 러프니스(Constant Roughness) | 채널 패킹된 마스크 배열에 렌더링되는 러프니스 맵이 없는 경우 러프니스에 사용할 값을 설정합니다. 러프니스 맵이 렌더링되는 경우 이 옵션은 숨겨집니다. |
상수 오파시티(Constant Opacity) | 채널 패킹된 마스크 배열에 렌더링되는 오파시티 맵이 없는 경우 오파시티에 사용할 값을 설정합니다. 오파시티 맵이 렌더링되는 경우 이 옵션은 숨겨집니다. |
서브서피스 컬러(Subsurface Color) | 렌더링되는 서브서피스 컬러 맵이 없는 경우 서브서피스 컬러에 사용할 값을 설정합니다. 이 컬러 값은 베이스 컬러에 곱해지고 오파시티 마스크의 베이스 컬러 알파에 저장되는 디스턴스 필드 알파를 사용하여 마스크 적용됩니다. 서브서피스 컬러 맵이 렌더링되는 경우 이 옵션은 숨겨집니다. |
스캐터 마스크 최소(Scatter Mask Min) | 스캐터링이 적용되는 최소값을 설정하여 디스턴스 필드 알파를 이 임포스터에 대한 서브서피스 스캐터링 마스크로 사용할 수 있게 합니다. 스캐터링으로 인해 누락될 일부 셀프 섀도잉을 되살릴 수 있다는 추가적인 이점이 있습니다. |
스캐터 마스크 길이(Scatter Mask Length) | 디스턴스 필드 알파를 사용하여 생성된 스캐터링 마스크의 에지 그레이디언트 너비 값을 설정합니다. 스캐터링으로 인해 누락될 일부 셀프 섀도잉을 되살릴 수 있다는 추가적인 이점이 있습니다. |
마스크 오프셋(Mask Offset) | 이 값은 디스턴스 필드 알파를 사용하여 생성된 마스크의 오프셋을 확장하거나 축소합니다. |
빌보드 세팅
빌보드 세팅(Billboard Settings)은 베이크 세팅의 임포스터 타입(Impostor Type)이 기존 빌보드(Traditional Billboards)로 설정된 경우에만 표시됩니다. 임포스터 타입은 빌보드를 구체적으로 조정할 수 있는 몇 가지 세팅을 제공합니다.
| 빌보드 세팅 | Description |
|---|---|
메시 피벗에 XY 중앙(Center XY On Mesh Pivot) | 이 세팅은 기본적으로 비활성화됩니다. 비활성화된 경우, 스태틱 메시 바운드의 중앙을 중심으로 카메라가 회전하면서 스태틱 메시를 캡처합니다. 이렇게 하면 보통 캡처된 프레임 내에 오브젝트가 유지됩니다. 특히 나무와 같은 일부 경우에는 실제 바운드 중앙이 보통 나무줄기가 있는 피벗에 정확히 위치하지 않을 수도 있습니다. 그러면 카메라가 결과 빌보드를 중심으로 회전할 때 약간 오프셋된 나무줄기의 고스트가 잠깐씩 함께 보이는 아티팩트가 발생할 수 있습니다. 이 세팅을 활성화하면 메시 피벗 중심으로 XY 위치 중앙이 설정되어 캡처가 이루어지므로 이러한 아티팩트가 수정됩니다. 피벗이 중앙과 가깝지 않은 메시에서 이 세팅을 사용하면 문제가 발생할 수 있습니다. |
기준면 상단(Reference Plane Top) | 상단을 향한 카드의 기준면을 이동합니다. 이 세팅 값은 0~1로 정규화되며, 0.5는 메시의 중심점을 나타냅니다. 이 세팅을 변경할 때는 스태틱 메시의 가장 넓은 부분에 상단 카드를 배치합니다. 소나무를 사용하는 이 예시의 경우, 상단 카드를 약간 아래로 밀었는데, 이는 아티팩트 감소에 도움이 됩니다. |
기준면 측면(Reference Plane Sides) | 이 세팅은 기준면 상단과 비슷하게 작동하지만, 대신 노멀을 따라 측면 평면을 이동합니다. 사방에서 대부분의 바운드를 점유하는 매우 밀집된 오브젝트를 캡처하고 시차 옵션을 활성화한 경우가 아니라면, 보통은 이 세팅을 조정할 이유가 없습니다. |
스프라이트 버텍스 셰이더 사용(Use Sprite Vertex Shader) | 이 세팅은 시차 옵션을 활성화한 경우에만 활성화해야 합니다. 그렇지 않으면 UV가 지오메트리의 바운드 너머로 오프셋되어 클리핑이 발생합니다. 아래 예시에서는 메시 하단 주변에 클리핑이 발생할 수 있는 극단적인 사례를 보여줍니다. 이 세팅은 신중하게 사용해야 하는데, 적용 시 마스크드 오버드로 문제가 심해지기 때문입니다. |
블루프린트에 노출되지 않는 추가 세팅을 컨트롤하는 추가 빌보드 머티리얼 인스턴스 값이 있지만, 이러한 세팅은 더 고급 사례에서도 조정할 수 있습니다. 메인 카테고리는 트랜지션의 디더링 정도를 정의하는 디더링(Dithering) 세팅과 카드가 카메라 반대편을 향하기 시작할 때 카드를 제거할 한계치를 정의하는 버텍스 셰이더(Vertex Shader) 세팅입니다.
에셋 저장 세팅
에셋 저장 세팅(Asset Saving settings)은 에셋이 저장되는 위치를 정의합니다.
| 에셋 저장 세팅 | Description |
|---|---|
새 에셋 경로(New Asset Path) | 텍스처 및 머티리얼의 폴더 위치입니다. 기본적으로 이 경로는 스태틱 메시의 상대 경로입니다. 경로가 상대 경로이면, |
새 에셋 텍스처 접두사(New Asset Texture Prefix) | 새 텍스처 에셋 이름 앞에 붙는 접두사입니다. |
새 에셋 MIC 접두사(New Asset MIC Prefix) | 새 머티리얼 인스턴스 상수(Material Instance Constant) 에셋 이름 앞에 붙는 접두사입니다. |
상대 경로 사용(Use Relative Path) | 소스 메시를 기준으로 경로를 설정합니다. 활성화하지 않은 경우, 프로젝트 콘텐츠 폴더에 에셋을 배치하려면 이 경로를 |
스태틱 메시 에셋 이름에는 항상 지정된 접두사가 붙고 그 뒤에 각 맵의 이름이 옵니다. 예를 들어, S_Tree_01이라는 스태틱 메시가 있으면, 결과 베이스 컬러는 위의 이미지에 표시된 값에 따라 T_Impostor_S_Tree_01_BaseColor가 됩니다.
Advanced Settings
고급(Advanced) 세팅에는 자주 편집할 필요가 없는 값이 포함되어 있습니다.
| Advanced Settings | Description |
|---|---|
GBuffer를 사용하여 캡처(Capture Using GBuffer) | 활성화하면 GBuffer를 사용하여 임포스터 데이터를 캡처합니다. 모든 불투명 및 마스크드 머티리얼에 작동하지만, 반투명 머티리얼에는 작동하지 않습니다. 소스 메시에 반투명 머티리얼이 포함된 경우, 임포스터 에디터가 뷰포트에 빨간색 텍스트로 경고합니다. 이 플러그인의 이전 버전에서는 각 머티리얼에 '임포스터 캡처 스위치(Impostor Capture Switch)' 머티리얼 함수를 먼저 배치해야 했습니다. 이제는 그럴 필요가 없지만, 경우에 따라 여전히 유용할 수도 있습니다. 예를 들면, 포트나이트 배틀로얄에서 머티리얼을 수정하여 특정 월드 기반 배색 이펙트를 제거하는 데 사용할 수 있습니다. 그러면 임포스터 머티리얼을 생성 후에 동적으로 채색할 수 있습니다. |
직교(Orthographic) | 활성화하면 직교 렌더링을 사용하여 캡처합니다. 이 세팅은 거의 변경할 일이 없습니다. 원근 렌더링은 거의 필요하지 않은데, 시차가 적용된 머티리얼은 나중에 정확한 원근을 재생성하기 때문입니다. 그러나 프레넬처럼 직교 렌더링을 사용하여 제대로 캡처할 수 없는 머티리얼 이펙트가 있으므로, 그런 경우에 이 세팅을 비활성화할 수 있습니다. |
카메라 거리(Camera Distance) | 직교가 비활성화된 경우에만 사용합니다. 캡처 거리를 설정합니다. |
씬 캡처 해상도(Scene Capture Resolution) | 각 서브프레임의 캡처 해상도입니다. 이 세팅 값은 가장 가까운 2의 거듭제곱으로 자동 반올림되는데, 프로세스의 특정 부분, 특히 마지막에 스프라이트 지오메트리 컷아웃을 생성하는 데 씬 캡처 텍스처의 밉맵 체인이 필요하기 때문입니다. 이 값을 최종 텍스처의 각 서브프레임 해상도의 두 배 이상으로 설정해야 결과가 슈퍼 샘플링됩니다. 예를 들어, 최종 텍스처가 4096이고 XY 프레임이 16개인 경우, 각 서브프레임은 256x256이 됩니다. 디폴트 씬 캡처 해상도 512는 서브프레임이 200%의 스크린 퍼센티지로 렌더링된다는 의미로, 더 나은 안티 에일리어싱 결과를 생성하게 됩니다. |
프리뷰 씬에 바닥 표시(Show Floor In Preview Scenes) | 뷰포트에 바닥 메시를 표시할지 여부입니다. 결과에는 영향을 주지 않습니다. |
임포스터 그림자 드리우기(Impostor Casts Shadows) | 임포스터가 프리뷰 뷰포트에 그림자를 드리울지 여부입니다. 캡처 프로세스나 결과로 생성되는 에셋에는 영향을 주지 않습니다. |
셰이더 디버그 모드(Shader Debug Mode) | 캡처된 모든 프레임의 그리드를 표시하는 머티리얼의 디버그 오버레이를 토글하고, 이 그리드로 디더링된 섀도를 확인해 카메라와 햇빛 모두에 대한 카메라 레이의 위치를 정확히 파악합니다. 가장 가까운 뷰 프레임 3개를 포함하는 현재 '트라이앵글'도 표시되며 해당 위치에서 블렌드 웨이트에 따라 컬러가 지정됩니다. |
디버그 값 표시(Show Debug Values) | 임포스터 에디터 내부의 다양한 디버그 정보(사용 중인 머티리얼 인스턴스 다이내믹스, 바운드 및 피벗에 대한 다양한 통계 등)를 보여주는 디버그(Debug)라는 새로운 디테일 세팅 카테고리를 표시합니다. 디버깅 시에만 유용합니다. |
렌더 타깃 표시(Show Render Targets) | 여러 맵 및 씬 캡처 밉에 대한 렌더 타깃의 모든 다양한 배열을 보여주는 렌더 타깃(Render Targets)이라는 새로운 디테일 세팅 카테고리를 표시합니다. 가끔 검사에 유용할 수 있습니다. |
수동 S RGB 리테이너 박스(Manual S RGB Retainer Box) | 임포스터 에디터는 현재 버그 때문에 감마 커브 없이 FPreviewScene을 렌더링합니다. 체크 시 UMG 리테이너 위젯을 사용하여 sRGB 커브를 적용하는 해결 방법이 활성화되며, 이 옵션은 기본적으로 활성화되어 있습니다. |
프리뷰 모드(Preview Mode)
다양한 방법으로 뷰포트를 제어하여 임포스터를 프리뷰할 수 있습니다. 기본적으로 뷰포트는 환경설정 가능한 거리 기준 교체(Swap by Distance) 값에 따라 소스 메시와 렌더링된 임포스터 간에 교체되지만, 나란히(Side-by-Side) 뷰로 표시하거나 강제로 임포스터만(Impostor Only) 표시하도록 설정할 수도 있습니다.
나란히 뷰는 뷰 모드 세팅과 함께 사용하면 소스 메시와 임포스터 간의 차이를 찾아 표시할 수 있어 유용합니다. 이 뷰는 이러한 값을 캡처하지 않고 상수 스페큘러나 러프니스 값의 근사치를 구할 때 특히 유용합니다.
아래는 임포스터와 원본 소스 메시의 노멀을 함께 보여주는 뷰포트 예시입니다.
L을 누른 상태로 마우스를 클릭하고 드래그하여 햇빛을 회전할 수 있습니다. 좌클릭하고 드래그하여 카메라 궤도를 돌 수도 있고, 우클릭하고 드래그하거나 마우스 휠을 사용하여 카메라를 앞뒤로 이동할 수도 있습니다.
부모 머티리얼
임포스터의 베이스 부모 머티리얼은 콘텐츠 브라우저의 Engine/Plugins/ImposterBaker Content/Materials/Parents에 있습니다. M_Imposter라는 머티리얼을 열어 검사해 보세요.
채널 패킹된 마스크 세트 하나를 포함한 임포스터 행동의 핵심은 여기 하나의 함수에 모여 있습니다.
상수 스페큘러에 대한 값을 전달하는 섹션은 아래에 나온 것처럼 이전 이미지에 표시된 함수 바로 오른쪽에 있습니다. 이 함수는 디스턴스 필드 알파에 의해 마스크 적용된 내장 서브서피스 스캐터링도 처리합니다.
선택적 컬러 맵
렌더링할 수 있는 선택적 추가 컬러 맵(이미시브, 서브서피스, 탄젠트)은 이미 이 함수를 통해 머티리얼에 연결되어 있습니다. 이 툴은 스태틱 스위치를 자동으로 플립하여 맵이 렌더링될 때 적합한 스태틱 스위치를 활성화합니다.
아래 표시된 함수(위 이미지에 설명된 함수 아래 머티리얼에 있으며 연결이 끊어져 있음)를 사용하여 현재 어디에도 연결되어 있지 않은 라이팅포함 텍스처와 같은 추가 컬러 맵이나 포함된 채널 패킹된 텍스처를 통해 가져오는 4가지 이외의 추가 스칼라 맵을 머티리얼에 추가할 수 있습니다.
스칼라 맵
러프니스(Roughness), 스페큘러(Specular), 클리어 코트(Clear Coat) 등과 같은 렌더링할 수 있는 추가 스칼라 맵은 이미 이 머티리얼 함수를 사용하여 연결되어 있으며, 역시 스태틱 스위치를 자동으로 플립하여 해당 컬러 채널과 함께 렌더링되는 텍스처를 활성화합니다.
기존 빌보드의 부모 머티리얼은 콘텐츠 브라우저의 Engine/Plugins/ImposterBaker Content/Materials에 있습니다. M_Billboard_01_Inst라는 머티리얼을 엽니다.
/Script/Engine.Material/ImpostorBaker/Materials/Parents/M_Billboard_01_Inst
위의 임포스터 머티리얼과 완전히 똑같이 구성되어 있으니, 해당 이미지를 참조하여 기존 빌보드 머티리얼 레이아웃을 이해할 수 있습니다. 머티리얼 함수는 같은 방식으로 명명되지만, 이름에 _Billboard가 포함되어 있습니다. 로직도 기본적으로 비슷하며, 함수의 내부 디테일만 다릅니다.
GBuffer 없이 렌더링하기
반투명을 캡처하는 경우나 캡처 중에 특정 기능을 비활성화해야 하는 특별한 경우, GBuffer를 사용하여 캡처(Capture Using GBuffer)를 비활성화하고 메시가 사용하는 그래프 끝에 ImpostorCaptureSwitch 머티리얼 함수를 배치해야 합니다.
GBuffer를 사용하여 캡처(Capture using GBuffer)를 비활성화하고 ImposterCaptureSwitch 머티리얼 함수는 배치하지 않으면, 캡처된 임포스터가 잘못 렌더링되어 아티팩트가 많이 발생합니다. 이는 머티리얼이 베이스 컬러와 라이팅을 뎁스로 해석하고 그에 따라 시차를 출력에 적용하여 많은 렌더링 오류가 발생하기 때문입니다.
이 문제의 심각도와 관련하여 개발자가 직접 다음과 같이 언급했습니다.
"GBuffer를 사용하여 캡처(Capture using GBuffer)를 비활성화하고 머티리얼에 위의 함수를 배치하지 않으면, 캡처된 임포스터는 심각한 아티팩트로 가득 찬 깨진 이미지처럼 보이게 됩니다. 베이스 컬러와 라이팅을 뎁스로 해석하여 화면이 깨진 듯한 픽셀 혼돈 상태가 되기 때문입니다.
이런 상태에서는 임포스터가 제대로 작동하지 않으며, 세팅이 유효하지도 않습니다."
프리셋을 사용하여 여러 개의 임포스터 생성하기
여러 개의 스태틱 메시를 선택하고 우클릭한 다음 컨텍스트 메뉴에서 스크립팅된 에셋 액션(Scripted Asset Actions) > 임포스터 베이커(Impostor Baker) > 프리셋을 사용하여 임포스터 생성(Generate Impostor Using Preset)을 선택하여 여러 개의 스태틱 메시에 대한 임포스터를 생성할 수 있습니다.
세팅 프리셋을 설정하고 스태틱 메시의 마지막 LOD에 이미 임포스터가 있는 경우 어떤 작업을 수행할지 결정했다면, 임포스터 생성 및 저장(Generate and Save Impostors)을 클릭합니다.
대화창 표시(Present Dialogue)를 설정한 경우, 기존 임포스터가 탐지되면 이 프로세스가 일시정지됩니다. 이 프로세스는 팝업 대화창에서 마지막 LOD를 교체하거나 새 LOD를 추가하거나 이 단계를 완전히 건너뛰는 등, 수행할 액션을 선택할 때까지 일시정지 상태로 유지됩니다. 이는 임포스터 에디터 내에서도 발생할 수 있습니다.
전체 반복 시차 모드
전체 반복 시차(Full Iterative Parallax) 모드에서는 임포스터가 원본이 사용하는 모든 채널의 데이터를 캡처하는 한 원본 메시와 거의 구별할 수 없는 렌더링을 생성할 수 있습니다. 이웃 프레임에서 각 픽셀에 대해 최상의 레이 결과를 선택하여 기본적으로 이웃 프레임의 모서리 주변을 트레이싱합니다. 이 옵션을 뎁스 파생 웨이트(Depth Derived Weights)라고 합니다.
다음은 스페큘러, 러프니스, 클리어 코트, 메탈릭 맵을 하나의 채널 패킹 텍스처로 캡처하면서 컬러 캘리브레이터를 사용하여 단일 시차와 반복 시차를 비교한 예시입니다. 이는 블렌딩 아티팩트를 확대하여 보여주는 매우 까다로운 테스트입니다.