분할 화면

디테일 모드와 프로파일링 명령을 사용하여 분할 화면용으로 이펙트를 최적화시키는 방법입니다.

Windows
MacOS
Linux

디테일 모드 개요

UE4 는 현재 세 가지 낮음, 중간, 높음 디테일 모드를 지원합니다. 이펙트의 디테일 모드를 중간과 높음으로 설정하는 경우가 있습니다. 분할화면에서 드로콜이 퍼포먼스를 낮추는 수준에 도달할 경우에 주로 쓰입니다. 주요 목표는 컬링이나 방출 속도 감소를 통해 중간 디테일 모드에서 드로 콜을 줄이는 것입니다.

캐스케이드에서 이미터의 Medium Detail Spawn Rate Scale (중간 디테일 스폰 속도 스케일) 필드의 세팅을 변경하면, 게임을 중간 디테일 모드로 실행할 때 방출 속도가 줄어듭니다. 이 세팅은 필요에 따라 오버드로와 드로 콜을 줄이는 데도 사용할 수 있습니다. 분할화면의 경우 드로 콜 감소가 중요합니다.

드로 콜을 어떻게 알아보죠?

디테일 모드는 캐스케이드에서 뷰 메뉴 -> 디테일 모드 세팅을 사용해서 설정할 수 있으며, 전체 언리얼 에디터에 대해서는 퀵 세팅 -> 엔진 퀄리티 세팅 (Engine Scalability) -> 이펙트 퀄리티 레벨을 변경하면 됩니다. 중간으로 바꾸면 Medium Detail Spawn Rate Scale 을 볼 수 있으며, 현재 디테일 모드가 활성화되었다는 빨강 텍스트가 표시됩니다. 중간 디테일 모드 작업은 이 모드에서의 이펙트를 조절할 때만 하는 것이 중요합니다. 프로젝트의 디폴트가 중간 디테일 모드로 되어있지 않은 이상, 변경내용이 게임에서 바로 보이지 않을 것이기 때문입니다.

Medium Detail Spawn Rate Scale 은 배수로, 0-1 범위면 적절한 값을 설정합니다. 본질적으로 세팅이 .5 가 되면 파티클 방출 횟수가 절반이 되며, 1 이 되면 현재 방출 속도입니다. 이 값은 클램핑(제한)되어 1 을 초과하지 않습니다.

앰비언트 이펙트(배경 효과)를 놓는 과정에서도 분할화면을 고려하는 것이 좋습니다. 이펙트가 분할 화면에 필요치 않고 드로 콜 수도 높다면, 특히나 이펙트가 메시 이미터로만 구성되어 있다면, 방출 횟수부터 줄여 보는 것이 좋습니다.

기억하실 것은, 파티클에 대한 드로 콜은 머티리얼에 의해 결정되며, 방출 횟수와는 무관하게 고정된 비용이라는 점입니다. 예를 들어 방출 속도가 30 인 이미터 위의 1 패스 머티리얼은 드로 콜도 1 만 듭니다.

명령

드로 콜 비용 결정에 유용한 명령이 몇 가지 있습니다.

에디터에서 플레이 또는 게임에서 분할화면 모드로 전환하는 콘솔 명령은 **debugCreatePlayer1** 입니다.

컨트롤러가 하나밖에 없다면 **ssswapControllers** 명령으로 플레이어 사이를 오갑니다.

주어진 영역에 대한 드로 콜을 보는 명령은 **DumpParticleFrameRenderingStats** 입니다. 이 명령은 액션이 일어난 곳의 스크린샷과 스프레드시트를 덤프합니다. 이 스크린샷은 데이터가 덤프된 이후 찍힌 것이니 추정치일 뿐이며, 시각적인 참고자료에 가깝습니다.

스프레드 시트로 통계를 보면 간편하며, 이와 같은 모습일 것입니다:

particlestats.jpg

이 경우 픽스는 꽤나 간단합니다. 메시를 한 다발 호출함에 틀림없는 이펙트가 하나 있으며, 게다가 반복 스폰까지 하는 것 같습니다. 그 이펙트 하나가 유력한 용의자기는 한데 그 이펙트의 비주얼은 그대로 유지하고 싶다, 그런 경우엔 조금 까다롭기는 하지만 딱 한가지 방법이 있습니다. 메시를 스프라이트로 바꾸는 것입니다.

그러나 만약 이미터가 분할화면에 필수적이지 않다면, mediumDetailSpawn 속도를 0.00 으로 설정하십시오.

스프레드 시트 통계 열에는 적절한 설명이 붙어 있습니다:

RenderTime ms

이펙트를 렌더하는 데 걸린 ms 입니다.

NumComponents

파티클 시스템의 인스턴스가 몇이나 뷰에 활성화되어 있는가 입니다.

NumPasses

머티리얼의 패스가 몇이나 이미터에 의해 호출되고 있는가 입니다.

NumEmitters

파티클 시스템에 이미터가 몇이나 있는가 입니다.

NumDraws

파티클 시스템의 모든 인스턴스에 대해 누적 드로 콜 횟수 입니다.

태그
Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼