October 23, 2017

Unreal Engine 4.18 Released!

By Jeff Wilson

From desktop to mobile in virtual reality or augmented reality, Unreal Engine 4.18 gives you the tools to deliver the types of content users demand. With expanded and improved platform support, you can deliver content wherever users consume it. In our relentless pursuit of a more efficient and streamlined development process, we continue to make updates and improvements to all of our tools so that you can deliver content faster than ever before.

With new lighting features like Volumetric Lightmaps and multi-bounce indirect lighting from Skylights, your worlds can achieve a greater sense of realism and believability. You can even bring the real world into yours with the new Media Framework features that enable real-time compositing. Or, build your world on top of the real world for the ultimate in immersion using Apple's ARKit and Google's ARCore.

Your potential audience is constantly evolving and getting content from new and different platforms. Unreal Engine 4.18 puts your content on every major platform with greater fidelity and higher performance than ever before. We made the desktop forward renderer available on recent iOS devices to enable high quality mobile and AR content that runs blazing fast. WebAssembly is now the default for HTML 5 projects so you can create complex games for the web that load quickly and run smoothly.

Unreal Engine 4.18 enables you to focus your time on the things that matter most. With the new global Find in Blueprints search functionality, you'll never waste time looking for something in multiple Blueprints ever again. We have also added improved Clothing tools, a new Physics Asset Editor, and advanced Material Editor preview support along with a host of other quality of life improvements that significantly speed up the development process.

In addition to hundreds of updates from Epic, this release includes 98 improvements submitted by the incredible community of Unreal Engine developers on GitHub! Thanks to each of these contributors to Unreal Engine 4.18:

Akihiro Kayama (kayama-shift), Alan Edwardes (alanedwardes), Alec Kosik (akosik), Andrey Yamashev (ayamashev), Artem (umerov1999), aziot, Cameron Angus (kamrann), Carsten Neumann (cneumann), Cengiz Terzibas (yaakuro), Chris Conway (Koderz), Christopher Reed (christopherreed), Cody C. (Mumbles4), Courtland Idstrom (Frugality), DaveC79, DavidNSilva, getnamo, Grant Peters (ggpeters), Guillaume Buisson (monsieurgustav), Harry Kim (shuaiharry), Ian Huff (IanMatthewHuff), IHappyDayI, Ilya (ill), Isabela Schulze (Ereski), Jason Calvert (jasoncalvert), Jesse Yeh (jesseyeh), John McBroom (jimbomcb), Jørgen P. Tjernø (jorgenpt), Josef Gluyas (Josef-CL), Kalle Hämäläinen (kallehamalainen), karanseqwb, Konstantin Nosov (gildor2), Kostas Nakos (jubanka), lwdingNT, Masanori Shinkawa, Mathias Hübscher (user37337), Matt Hoffman (LordNed), Maurice Laveaux (mlaveaux), Michael Allar (Allar), Michael Kösel (TheCodez), Mikayla Hutchinson (mhutch), minichris, Nick Pearson (Nick-Pearson), Nick Verenik (nverenik), Patrice Vignola (PatriceVignola), projectgheist, Rama (EverNewJoy), Roman Chehowski (RChehowski), Roman Maksymyschyn (miracle7), Sam Hocevar (samhocevar), Scott Freeman (gsfreema), Sébastien Rombauts (SRombauts), Sertaç Ogan (SertacOgan), steelixb, stfx, Triplelexx, Vivid Games - Engine Team (enginevividgames), Vladimir Ivanov (ArCorvus), XueBing (DarkSlot), Yujiang Wang (Luoshuang), yhase7, YuchenMei, Zeblote

Major Features

New: Volumetric Lightmaps

The new Volumetric Lightmaps enable high quality lighting on movable objects from low cost precomputed lighting! Characters, particle systems, instanced foliage, and other dynamic objects appear more grounded to the environment than ever before.

image alt text image alt text

Volumetric Lightmaps store precomputed lighting at all points in space by covering the entire Lightmass Importance Volume with 4x4x4 bricks of lighting samples. Bricks are placed with higher density near static geometry, where indirect lighting is changing the most. This data structure allows efficient interpolation of indirect lighting to any point in space on the GPU. The Volumetric Lightmap is interpolated to each pixel instead of once for the whole component and has more reliable detail than our previous Indirect Lighting Cache method, resulting in fewer cases of light leaking.

For more information and details on using Volumetric Lightmaps in your project, see the Volumetric Lightmaps documentation.

Precomputed lighting on Volumetric Fog

Volumetric Fog now interpolates precomputed lighting to its position in space using Volumetric Lightmaps enabling Stationary lights - which have their indirect lighting stored in lightmaps - to affect fog. Static and Emissive lights affect fog without costing anything, since they're all merged into the Volumetric Lightmap.

image alt text

Skylights are also now shadowed properly, preventing indoor areas from becoming over-fogged.

image alt text

1 - Skylight on fog is shadowed properly, 2 - Uniform skylight on fog has leaking

Performance

  • Volumetric Lightmaps on a third person character cost .02ms of GPU time on PlayStation 4. All Indirect Lighting Cache Rendering thread cost is removed.
  • Memory usage in Paragon's Monolith map went from 5Mb with the Indirect Lighting Cache up to 30Mb with Volumetric Lightmaps at default DetailCellSize settings. Memory usage can be seen under 'stat memory'.


Detailed Comparison

Volumetric Lightmap Precomputed Light Volumes / Indirect Lighting Cache
Efficient interpolation on GPU Costly interpolation on CPU
Per-pixel interpolation Per-object interpolation, even on instanced components
Applied to Volumetric Fog Cannot affect Volumetric Fog
Placed with high density around all static surfaces Placed with high density only on top of static surfaces, frequent leaking from low density samples
Border voxels are stretched to cover area outside Importance Volume Black indirect outside Importance Volume
Does not currently support level streaming Supports level streaming

 

New: Improved Static Skylight Directionality

Skylights used to be represented to Lightmass with a third order Spherical Harmonic, which didn't capture the detail present in a sunrise or sunset. We are now using a filtered cubemap with much higher resolution by default. Lightmass chooses the appropriate mip of the cubemap based on the size of the Final Gather rays to avoid aliasing. You can see the most difference in heavily occluded scenes, with a skylight cubemap that has a lot of brightness and color variation.

image alt text

1 - New filtered cubemap Static Skylight, 2 - Original Static Skylight

The smaller the opening, the more directional sky lighting will become. It is even possible to recreate a pinhole camera effect with a small enough opening.

 

image alt text

image alt text

Skylight source cubemap

Resulting sky lighting

New: Multi-bounce Indirect Lighting from Skylights

We now have support for multiple indirect lighting bounces from static and stationary Skylights through a new 'Num Sky Lighting Bounces' setting in World Settings -> Lightmass. Thanks to forum user Luoshuang for the first implementation of this feature.

image alt text

1 - Multiple skylight bounces, 2 - Single skylight bounce

Your materials need to have a high diffuse value for multiple skylight bounces to be noticeable in most cases. For example, with a diffuse value of .18 (18% grey), the second skylight bounce will only contribute .18^3 = .006 of the light's emitted energy which is very subtle. With a diffuse value of .5, the second skylight bounce will contribute .125 of the light's emitted energy and be noticeable.

As a bonus we also get multiple bounces from Emissive meshes:

image alt text

Lightmass uses a Radiosity Solver to compute multiple bounces for Skylights and Emissive meshes. Each bounce increases non-distributable build times, so use with care.

New: Apple ARKit iOS 11 Support

Unreal Engine 4.18 includes production-ready support for Apple's ARKit in iOS11 based on our collaborations with partners for Apple's keynote announcing the iPhone 8 and iPhone X.

image alt text

image alt text

We've streamlined workflows making use of existing framework components, added robust handling of the passthrough camera, and increased fidelity by improving performance and prediction. Download the updated ARSample project to see what's changed for 4.18.

Note: There have been significant changes since the experimental support for ARKit in Unreal Engine 4.17. ARKit projects created using 4.17 will require updating to work in 4.18.

Getting started

Getting started in now super easy. All you need to do is:

  1. Enable the appropriate ARKit plugin for your project.
  2. Check the bStartInAR property in Project Settings.
  3. Make sure you have a Pawn with a CameraComponent.

Known ARKit Issues

  • Device rotation is not fully supported yet. At the moment you should select Landscape Right as the only supported orientation for your project.
  • The only exposed function for hit-testing is HitTestAtScreenPosition_TrackingSpace. This returns the results in the CameraComponent's parent's space. In the default setup, that is the Pawn's space. To translate to world space we currently need to multiply the result by the parent's (e.g. Pawn's) world transform.
  • The function HitTestAtScreenPosition_TrackingSpace ignores the Types parameter; it will always hit-test against all the available surfaces and return results that can be manually filtered by checking the Types field of the FAppleARKitHitTestResult struct.
  • FAppleARKitHitTestResult does not populate the Anchor property; it is always nullptr.
  • World Scale is currently assumed to be default, and cannot be changed.

New: Google ARCore Developer Preview Support

Unreal Engine 4.18 contains official support for Google's ARCore developer preview which takes advantage of common augmented reality functionality in the engine and features improved handling of the passthrough camera.

SteamVR Support on Mac

We're happy to announce that as of 4.18, UE4 officially supports VR on Mac through SteamVR! All the same interfaces that you're used to on the PC are available on the Mac, so it's easy to transfer your project to Mac to give it a spin. The update comes alongside support for Metal 2 and many other runtime optimizations. Update to the latest release of SteamVR and give it a try!

image_24.png

New: Clothing Tools

We have added a completely revamped toolset for creating and configuring clothing in the Skeletal Mesh Editor!

There is now a Clothing pane for editing an expanded set of clothing-specific properties that provide more control over clothing constraints, self collision vertex culling, inertia scaling. Enhanced paint tools enable painting per-vertex clothing parameters directly on the mesh. The new paint tools include: Brush, Gradient, Smooth, Fill. Painted parameters can be switched out instead of overwriting to aid iteration.

The clothing tools have been Integrated with Physics Assets for collision authoring. A new LOD pipeline for creating and replacing simulation meshes in a Clothing Data object that includes a parameter mapping system for mapping your painted parameters onto new LODs or replacement geometry which estimates lower detail LOD parameters from higher detail LOD parameters! It is also much easier to create clothing data in the Skeletal Mesh Editor by right clicking the mesh section to convert.

This is in addition to all of the smaller bugfixes and improvements highlighted while the tool was experimental / beta.

Note: APEX file import still available for those preferring a DCC pipeline

New: Media Framework Improvements

Media Framework in 4.18 has been significantly updated and extended to support upcoming advanced use cases, such as real-time video compositing, time synchronization, simplified workflows, capture hardware & video-over-IP support, online media streaming, integration with Unreal Editor, and improved stability and performance!

The Media Framework API has been streamlined to improve compile times and updated to make use of modern features in C++11. In addition, high-level media player logic has been refactored from a push-based paradigm to a pull-based methodology and moved into reusable Engine-agnostic classes that enables better separation of concerns in media player interfaces.

Latency and Performance is improved due to a timecode-based sample processing pipeline with high-frequency ticking for time-sensitive samples - such