Engine Features Preview 7/16/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

Ambient Occlusion Material Mask

The new Ambient Occlusion Material Mask feature lets you access Lightmass calculated AO in your material, which can be useful for procedural texturing, for example to add in aging effects and dirt in areas where it would accumulate.

To use, you need to enable both ‘Use Ambient Occlusion’ and ‘Generate Ambient Occlusion Material Mask’ under World Settings -> Lightmass Settings, and then rebuild lighting. The other AO controls like Occlusion Distance can be useful to tweak the look.

Be sure to set Direct and Indirect Occlusion Fraction to 0, so that this AO will not be applied to the actual level lighting.

image (29).png

Then in your material you can access the AO as a 0-1 mask with the PrecomputedAOMask node

image (17).png

After building lighting in the Sun Temple level, it will look like this:

Here’s an unlit picture of an AO mask used to blend in a dirt layer automatically into corners of the environment.

Use of this feature for procedural texturing requires care - it’s easy to make something that just looks like bad lighting with dark corners. BaseColor should contain the material reflectivity, not lighting.

On the performance side, using the PrecomputedAOMask node is just a standard texture lookup. Enabling the feature adds half a byte per lightmap texel, where the default usage is about 4 bytes per lightmap texel. AOMaterialMask texture memory can be inspected with ListTextures.

Content Browser: Nested Collections

Your collections of assets can now be organized into a hierarchy.

Child collections can be created by choosing the “New…” option from a given collections context menu. Alternatively, collections can be parented via drag-and-drop.

When performing a Content Browser search for a given collection, any child collections will also be included in that search.

Content Browser: Dynamic Collections

Dynamic collections leverage the power of the Advanced Content Browser Search Syntax to allow you to create and share Content Browser filters.

Anything you can do with the Content Browser text search can be saved as a dynamic collection, including referencing other collections (both static and dynamic).

You can create a dynamic collection using the “Save” button to the right of the Content Browser text filter.

image (29).png

Content Browser: Quick Collection Assignment

You can now quickly add an asset to many collections at once using the new Quick Asset Management check boxes.

image (17).png

These are available within the collections view itself, or alternatively, via the context menu of any selected asset(s).

The checkboxes will update based on the current asset selection, where:

  • Unchecked - None of the selected assets exist in the collection.
  • Checked - All of the selected assets exist in the collection.
  • Undetermined - Some of the selected assets exist in the collection.

Content Browser: Collection System Improvements

Improved Collection Robustness

Collections will now automatically follow any redirectors that they contain, which avoids the issue of an asset seeming to vanish from a collection when it was renamed or moved. Additionally, collections are now considered when fixing up (and ultimately removing) redirectors via the Content Browser.

Improved Status Reporting

Each collection now has a little status indicator at the right hand side of its row item. This changes colour depending on the current state of the collection, with each colour meaning:

  • Red - The collection is in some kind of bad or read-only state. See the tooltip for how to resolve the issue.
  • Orange - The collection is not up-to-date with the latest version in source control.
  • Blue - The collection has local unsaved changes. This may happen if a save or auto-checkin fails, or if the collection had its redirectors followed.
  • Green - The collection is non-empty and up-to-date.
  • Grey - The collection is empty and up-to-date.

Improved Asset Tooltips

The static collections for a given object are now shown as part of its tooltip in the Content Browser.

unnamed (6).png

Material Parameter Sliders

Don’t you hate it when you are scrubbing a parameter on a Material Instance like Roughness, which is only valid from 0-1, and you accidentally scrub to a crazy value?

unnamed (7).png

Now you can set the valid range for a scalar parameter on the Scalar Parameter expression node in the base material.

The Material Instance parameter value will now give you a slider, clamping your input to the valid range.

unnamed (9).png

You can still key in any value, this just clamps the slider. Use a clamp in the material graph if you need to prevent out of bounds values.

Custom attenuation curves for sounds

You can now define your own custom curve for attenuating sounds rather than simply being limited to the built in algorithms.

In the attenuation settings set the Distance Algorithm to ATTENUATION_Custom and you will see the custom curve section appear. You can then either specify an external curve asset from the content browser or define a custom curve directly in the details panel yourself.

image (26).png

Really love stuff like the collection improvements that just makes the workflow of working inside unreal even better.

Wow, that’s cool organisation stuff! Also, the AO Material Mask can be used to add realism to quite large scenes.

Wow wow!
With AO material mask all archvis vray guys will be happy! Get your very own vray dirt! :stuck_out_tongue:

I’m happy that collections got a new pass - previously it looked like a placeholder. Now it seems powerful and on par with other organization tools

Ambient Occlusion Material Mask

That’s awesome.
Now what is needed ,is ability to precalculate only this mask using fuly dynamic lighting (IE, I want to calculate mask, but do not bake any visible lightmaps).

That would make it even more usefull! (;.

I really like those nested collections! Would really like it in 4.9! :wink:

I am looking forward to those collection feature changes, looking good :smiley:

I was only just talking about how limited and clunky the Collection Feature was than you guys come out with this puppy which covers its shortcomings and than some :smiley:

P.S. The AO Material Mask feature is a really nice touch as well

AO Material mask looks amazing- this combined with convincing materials could definitely be used to skip the external texturing process for many objects- looks like it could be so useful for dirt, paint scratches on edges, on the bottom of walls etc. Really interested to see this!

I love the new the organization methods for the collections. Thanks!

Nice update. Really enjoying 4.10 so far. Thanks guys!

This thread is half a year old.