프리컴퓨티드 라이팅 시나리오

UE4 의 프리컴퓨티드 라이팅 시나리오에 대한 개요입니다.

Windows
MacOS
Linux

언리얼 엔진 4 (UE4) 에는 레벨에 다양한 Precomputed Lighting Scenarios (프리컴퓨티드 라이팅 시나리오)가 지원됩니다. 하나의 레벨에서 다수의 라이팅 셋업을 저장하고 표시하도록 하여, 다이내믹 라이팅의 유연함과 프리컴퓨티드 라이팅의 고정비를 동시에 누릴 수 있습니다. 다양한 프리컴퓨티드 라이팅 시나리오를 변경할 수 있는 기능은 가상 현실(VR) 또는 건축 시각화 프로젝트에 특히나 중요한데, 빠른 퍼포먼스 이점을 누리면서 높은 퀄리티의 렌더링이 필요하기 때문입니다. 이 레퍼런스를 통해 UE4 프로젝트의 프리컴퓨티드 라이팅에 대해 배우실 수 있을 것입니다.

PCLS_Comp_Image_00.png

위 그림에서 디렉셔널 라이트, 스카이 라이트, 스카이박스가 Day Scenario 라는 라이팅 시나리오 레벨에 배치되었습니다. 가로수의 스포트라이트는 Night Scenario 라는 다른 라이팅 시나리오에 배치되었습니다.

기능적 한계

프리컴퓨티드 라이팅 시나리오에는 장점이 많지만, 사용 시 주의해야 하는 단점과 한계점이 몇 가지 있습니다. 여기서는 그 한계점 몇 가지와 해결( 또는 우회)법을 알아보겠습니다.

  • 게임의 특정 시점에 하나의 라이팅 시나리오반 보여야 합니다.

  • 라이팅 시나리오 레벨이 존재하면, 모든 서브레벨에서의 라이트맵이 그 안에 놓여 낮일 때는 Day Scenario 라이트맵만 사용됩니다. 그 결과 라이트맵을 더이상 서브레벨에서 스트리밍할 필요가 없는 것입니다.

  • 라이팅 시나리오 레벨을 보이게 만들 때 리플렉션 캡처가 강제 업데이트되는데, 레벨 로드 시간이 늘어날 수 있습니다.

라이팅 시나리오 사용

UE4 프로젝트에서 라이팅 시나리오를 사용하는 방법은 다음과 같습니다:

  1. 먼저 > 레벨레벨 매니저 를 엽니다.

    PCLS_Open_Levels.png

  2. 레벨 매니저 를 연 상태로 레벨 메뉴의 서브레벨에 우클릭, 라이팅 시나리오 로 가 라이팅 시나리오로 변경 옵션을 선택하여 레벨을 라이팅 시나리오 레벨로 만듭니다.

    PCLS_LS_Level_Option.png

    라이팅 시나리오 레벨이 보이면, 그 라이트맵이 월드에 적용됩니다.

  3. 레벨 스트리밍 메서드가 블루프린트로 설정되어 있는지 확인합니다. 서브레벨에 우클릭한 후, 스트리밍 메서드 변경 후 (이미 선택되어 있지 않다면) 블루프린트 를 선택하면 됩니다.

    PCLS_Level_Streaming_Method.png

  4. 이제 프로젝트에 필요한 라이트나 스태틱 메시 를 배치한 뒤 다른 레벨과 마찬가지로 각 레벨의 라이팅을 빌드합니다.

    PCLS_Build_Lighting.png

  5. 라이팅 빌드가 완료되었으면, 퍼시스턴트 레벨 의 블루프린트를 열어 Load Stream Level 노드를 추가하고 Event Begin Play 노드에 연결합니다.

    PCLS_Level_Load_Nodes.png

  6. Event Begin Play 노드를 Load Stream Level 노드에 연결한 뒤 로드하고자 하는 레벨 이름을 입력합니다. 또, Make Visible After LoadShould Block on Load 도 체크하여 새로 로드된 레벨이 보이도록 합니다.

    PCLS_Steam_Setup.png

  7. 플레이 버튼을 눌러 프로젝트를 실행시키고 첫 레벨이 로드되면, 이제 Day 레벨 라이팅을 사용할 것입니다. Night 레벨 라이팅을 사용하려면, 같은 구성을 사용하지만 레벨 이름을 밤 레벨 이름으로 바꿔줘야 할 것입니다.

    낮 라이팅

    밤 라이팅

눈에 띄는 한계가 몇 가지 있지만, UE4 에서 프리컴퓨티드 라이팅 시나리오를 사용하면 프로젝트에 여러가지 장점이 생깁니다. (프로젝트의 요구에 따라) 구은 라이팅을 바꿀 수 있으면서 퍼포먼스도 향상되는 것입니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback