새 소식

언리얼 엔진 4.22 는 몰입도 높은 매력적인 게임, TV 생방송, 혁신적인 제품 시각화, 차세대 블록버스터 등 다양한 분야의 리얼타임 환경에서 포토리얼리즘의 한계를 뛰어넘기 위해 노력하고 있습니다. 하지만 기술의 획기적인 발전으로 인해 그 기술들을 이용하는데 개발 시간을 늘리는 것을 원치 않기에, 모든 사용자들을 위해 워크플로를 더욱 빠르고 접근하기 쉽게 만드는 것을 목표로 하고 있습니다.

언리얼 엔진은 Nvidia RTX 그래픽 카드의 실시간 레이 트레이싱을 통해 다이내믹 글로벌 일루미네이션, 픽셀 단위로 완벽한 리플렉션, 물리적으로 정확한 굴절 표현 등 가장 정확한 실시간 빛과 그림자 효과로 현실 세계를 구축할 수 있는 끝없는 파워를 제공합니다. 부드러운 영역 그림자와 앰비언트 오클루전은 마치 화면이 현실에 단단히 뿌리 내린 듯한 마무리감을 줍니다.

방대한 버추얼 프로덕션 기능으로 복잡한 라이브 연기를 캡처하고 녹화한 뒤 실시간으로 합성 할 수 있어 세트 현장에서의 워크플로가 빨라집니다. 새로운 멀티 유저 편집 기능을 사용하면 전체 팀이 함께 씬을 실시간으로 조정하고 연출할 수 있습니다.

최신 작품의 탄생을 기다리는 일 분 일 초는, 여러분에게도, 여러분의 고객에게도, 그리고 여러분의 비전에 있어서도 비용입니다. 그래서 언리얼 엔진은 새 버전 출시마다 일상의 반복처리를 더욱 쉽고 빠르게 하여, 고객들의 경험을 개선하고 가다듬는 데 더욱 많은 시간을 할애할 수 있도록 노력하고 있습니다. 라이브 코딩으로 언리얼 엔진에 Live++ 가 지원되면 프로젝트를 실행한 상태에서 아이디어를 현실로 단숨에 구현 할 수 있습니다. 전반적인 빌드 시간 최적화를 통해 증분 빌드의 반복처리 시간이 최대 3 배 빨라져 파이프라인의 귀중한 자원을 추가 확보할 수 있습니다.

이번 출시 버전에는 GitHub 의 엄청난 언리얼 엔진 개발자들이 제출한 개선 사항이 174 종 포함되어 있습니다! 언리얼 엔진 4.22 에 기여해 주신 모든 분들께 감사드립니다.

0xmono, Adam Moss (adamnv), Ahsan Muzaheed (muzaheed57), Alessio Sgarro (cmp-), Alexander Stevens (MilkyEngineer), AlexTimeFire, AlSafty, Andrzej K. Haczewski (ahaczewski), Anton Rassadin (Antonrr), Ben Peck (bpeck), BinaryRK, Branislav Grujic (grujicbr), Cameron Angus (kamrann), Cengiz Terzibas (yaakuro), Chris Conway (Koderz), Chris Gallegos (Chrispykins), Clinton Freeman (freemancw), Cristiano Carvalheiro (ccarvalheiro), Dan Ogles (dogles), Daniele Benegiamo (kafumanto), David Aylaian (davidaylaian), David Nadaski (GlassBeaver), David Sauve (notanumber), Deep Silver Dambuster Studios (DSDambuster), Dmitriy Donskoy (sentik), doodoori2, Dorgon Chang (dorgonman), Doug Moscrop (dougmoscrop), Doug Richardson (drichardson), Dzuelu, Erik Dubbelboer (erikdubbelboer), H1X4Dev, Hargreawe, hkozachkov2, Ilyin Aleksey (IlinAleksey), improbable-valentyn, Ivan Popelyshev (ivanpopelyshev), IvanKuzavkov, James Cahill (Prouser123), Jan Kaniewski (getnamo), Jin Hyung Ahn (zenoengine), jkinz3, Joe Best-Rotheray (cajoebestrotheray), joemmett, Josef Gluyas (Josef-CL), Kalle Hämäläinen (kallehamalainen), Kartik Saranathan (Kartiku), korkuveren, Kory Postma (korypostma), Leon Rosengarten (lion03), locus84, lotodore, Marat Radchenko (slonopotamus), Marcel (Zaratusa), Mark Whitty (Mosel3y), mastercoms, Mathias Hübscher (user37337), Michael Kösel (TheCodez), Michael Samiec (m-samiec), Mike Bell (MichaelBell), Mike Slegeir (tehpola), Mimus1, Mitsuhiro Koga (shiena), momboco, Morva Kristóf (KristofMorva), Muhammad A. Moniem (mamoniem), Nick (eezstreet), Nick Edwards (nedwardsnae), Nick Pruehs (npruehs), Ondrej Hrusovsky (skylonxe), Paul Hampson (TBBle), Philippe Chaintreuil (Philippe23), Phillip Baxter (PhilBax), projectgheist, RDIL, Riley Labrecque (rlabrecque), Roman K. (CrispMind), Robin Zoň (ZonRobin), roidanton, ruzickajason, ryugibo, Sam Hocevar (samhocevar), Satheesh (ryanjon2040), Scott Fries (ScottFries), Sébastien Rombauts (SRombauts), ShalokShalom, spoiltos, stanley1108, Stephen A. Imhoff (Clockwork-Muse), stkrwork, sturcotte06, Takashi Suzuki (wankotank), tgroll, Thang To (thangt), Tim Lincoln (Ratherbflyin), TommyTesla, Vladimir Ziablitskii (rainlabs), whoisfpc, YanaPIIDXer, Yannick Comte (demonixis), yhase7, Zeblote

주요 기능

신규: 실시간 레이 트레이싱 및 패스 트레이싱 (베타)

이번 버전부터 Ray Tracing(레이 트레이싱) 및 Path Tracing(패스 트레이싱) 기능이 베타 지원됩니다. Windows 10 RS5 업데이트 이상이 설치된 NVIDIA RTX 시리즈 카드 탑재 시스템에서 DirectX 12 및 DirectX Raytracing(DXR) 을 최대한 활용할 수 있습니다.

실시간 레이 트레이서

레이 트레이싱 기능은 레이 트레이싱 셰이더와 레이 트레이싱 이펙트 시리즈로 구성됩니다. 이 기능을 활용한 자연스럽고 사실적인 라이팅 이펙트는 실시간임에도 최신 오프라인 렌더러의 그림자, 앰비언트 오클루전, 리플렉션 등의 이펙트에 견줄만 합니다.

이미 다수의 레이 트레이싱 기능을 도입했고 계속해서 지원되는 기능을 확장해 갈 예정입니다. 이번 버전에 포함된 기능은 다음과 같습니다.

  • 디렉셔널, 포인트, 스포트, 렉트 라이트 유형에 부드러운 영역 그림자를 그립니다.
  • 카메라 프러스텀 안팎의 오브젝트에 정확한 리플렉션을 그립니다.
  • 씬의 바닥 오브젝트에 부드러운 앰비언트 오클루전을 그립니다.
  • 반투명 표면에 물리적으로 정확한 리프랙션(굴절) 및 리플렉션(반사) 결과물을 그립니다.
  • 광원의 다이내믹 글로벌 일루미네이션에서 간접광을 받습니다.
  • 그 외 여러 기능이 지원됩니다!

자세한 내용은 실시간 레이 트레이싱 문서를 참고하세요.

패스 트레이서

레이 트레이서 이외에도 간접광에 완벽한 글로벌 일루미네이션 패스를 지원하는 비편향(unbiased) 패스 트레이서가 지원됩니다. 익스포트한 뒤 다른 오프라인 패스 트레이서에서 비교할 필요가 없어지므로 언리얼에서 씬의 콘텐츠를 만드는 워크플로가 향상됩니다.

자세한 내용은 패스 트레이서 문서를 참고하세요.

신규: 하이 레벨 렌더링 리팩터링

이번 버전에서는 언리얼 엔진의 메시 드로잉 기능을 완전히 새로 작성하여 실시간 레이 트레이싱이 지원되고 드로잉 퍼포먼스가 향상됩니다. 앞으로 계속해서 렌더링 작업을 GPU 로 옮길 계획입니다.

메시 드로잉 파이프라인 리팩터링

새로운 메시 드로잉 파이프라인에서는 정적인 씬 요소에 대한 그리기 정보가 캐시를 더욱 적극적으로 활용하며, 가능한 경우 자동 인스턴싱이 드로 콜을 병합해 줍니다. 새로운 메시 패스(pass) 구현을 위한 코드 줄 수가 4 ~ 6 분의 1 로 줄어듭니다!

이번 리팩터링 대상은 주로 렌더러 내 메시 드로잉 쪽이며 커스텀 씬 프록시와 렌더러로의 인터페이스에 대한 영향은 최소한으로 했습니다. 커스텀 드로잉 폴리시의 경우 새 아키텍처의 FMeshPassProcessors 로 다시 작성해야 합니다. 즉 변화가 너무 커서 드로잉 폴리시의 하위 호환성을 유지할 수 없었다는 뜻입니다.

자세한 정보는, 메시 드로잉 파이프라인 문서를 참고하세요.

신규: C++ 반복처리 시간 개선

라이브 코딩 (실험단계)

모든 개발자가 언리얼 엔진 프로젝트에 Live++ 를 사용할 수 있도록 Molecular Matters 와 라이선스를 체결, 새로운 Live Coding (라이브 코딩) 기능으로 통합했습니다. 이제 개발 환경의 C++ 코드 변경사항을 컴파일하여 실행 중인 에디터나 독립형 게임에 패치로 적용하는 작업이 초 단위로 이루어집니다. 기존 핫 리로드 메커니즘과 달리, 라이브 코딩은 오브젝트 리인스턴싱을 특별히 고려할 필요 없이 개별 함수를 패치하므로, 규모가 큰 프로젝트의 신뢰성과 확장성이 훨씬 높아집니다.

사용하려면 에디터의 컴파일 버튼 옆 드롭다운에서 라이브 코딩 (실험단계) 옵션을 체크하거나, Ctrl+Alt+F11 키를 눌러 변경사항을 컴파일하고 적용하면 됩니다. 쿠킹된 게임에서 사용하려면, 콘솔 창에 "LiveCoding" 을 입력하면 됩니다.

참고:

  • 엔진 실행 도중의 클래스 레이아웃 수정은 지원하지 않습니다. 앞으로 지원할 계획입니다.
  • 현재 Windows 만 지원합니다.

빌드 시간

UnrealBuildTool 및 UnrealHeaderTool 을 최적화하여 C++ 반복처리 시간이 최대 3배 빨라졌습니다!

전체 빌드 (UE4Editor Win64 Development)

 
 

언리얼 엔진 4.21

언리얼 엔진 4.22

개선

총 빌드 시간:

436.90

326.81

30% 개선

UnrealHeaderTool 컴파일:

46.12

46.30

 

헤더 생성

25.05

15.50

60% 개선

UE4Editor 컴파일

323.15

257.97

25% 개선

UnrealBuildTool 오버헤드

42.58

7.04

600% 개선

증분 빌드 (UE4Editor Win64 Development)

 
 

언리얼 엔진 4.21

언리얼 엔진 4.22

개선

총 빌드 시간:

7.47

2.14

340% 개선

Compiling UE4Editor

1.19

1.08

 

UnrealBuildTool overhead

6.28

1.06

590% 개선

코드 변경 없음 (UE4Editor Win64 Development)