Engine Features Preview 1/14/2015

We’re excited to share a few of the new features now available on the Master branch on GitHub. To be able to try out these new features, you will need to download the source code for the Master branch and build the Engine yourself. For more information about how to build the Engine from source code, please see this page. The Master branch on GitHub is constantly being updated and is not quality tested so it may be potentially unstable. We do not recommend using the Master branch for project development. If you wish to wait, these features will be made available to all in an upcoming official release.
Engine News
New Features
Improved Screen Space Ambient Occlusion**

The new Screen Space Ambient Occlusion supports a much larger radius and eliminates the “halo” artifact you often see with effects like this. Performance has improved too! The new SSAO has a bit more noise than the old one, but it should hardly be noticeable. If you’ve customized your game’s SSAO settings, you might want to reset those settings to new defaults.

Top: Old SSAO, Bottom: Improved SSAO


Async Framework

We started working on a new framework for asynchronous programming, which is located in the Core module. The goal is to simplify the process of writing code that executes asynchronously or in parallel. The Engine already had several mechanisms for this in place for a long time (threads, thread pool, task graph, etc.), but they required a fair amount of boilerplate code.

The first iteration of this new framework attempts to reduce the amount of boilerplate to an absolute minimum. The two most important additions are the Async<T>() function template and the TFuture<T> type. If you used Java, C# or the newer version of the C++ STL then you may already be familiar with these concepts.

Here is a quick example:

int Foo()
   Future<int> A = Async<int>(EAsyncExecution::Thread, CalculateA);
   Future<int> B = Async<int>(EAsyncExecution::Thread, CalculateB);
   Future<int> C = Async<int>(EAsyncExecution::Thread, CalculateC);

    // other code here

    return A.Get() + B.Get() + C.Get();

Read more about this feature here.

Fast Incremental C++ Builds

UnrealBuildTool now starts up fast and checks dependencies very quickly. After the first time building a target, compiling a change should begin almost instantly.

The first time you try to build a target, we now create a “Makefile” with everything needed to build that target. It will reuse that makefile in subsequent runs. There is some new console output that shows you what’s going on.

Important workflow change: When you add new C++ source files, you now must update your Visual Studio project files! Either add the new file to the project yourself using the IDE, or just regenerate all project files.

Read more about this new feature here

That is one sweet preview! Improved SSAO is great! I never got the current SSAO to look good in our scenes (textures too clean to mask the errors) Loving the ASync framework and continuous improvements you guys are making to the C++ compilation!

Great to see SSAO improvements! Can’t wait!

The improved SSAO looks worse than the older, if the new is in the bottom, i see more “halos” than before, for example at the right-bottom i see floating dark halo and in the left center…

Awesome…looks great…Looking forward to seeing how my levels improve when this comes out…Thanks…

Is there a way that the Anti-Aliasing-Method will be improved for vehicles and other moving objects? Because when it is set to “TemporalAA”, it gives vehicles or probably also other moving objects a timelapse effect. Which means the model gets a “duplicated ghost behind it”. If I change the Anti-Aliasing-Method, it will disable it of course. But I like the TemporalAA Method. :frowning:

best regards!

I agree, I had to disable TemporalAA because of this. But without that “ghost” it looks a lot better than FXAA :slight_smile:

It affect everything that moves quickly, foliage with wind looks awful.