Engine News
New Features
Rendering
ScreenSpaceSubsurfaceScattering
An Early version of the ScreenSpaceSubsurface Scattering is now available for use!
Not yet production ready but feedback is welcome. This code is in main (CL 2236498 2236396 2236313).
This is where to enable (if you do not hook up a SubsurfaceProfile asset it uses the HumanSkin default):
&stc=1
Here you can create your own SubsurfaceProfile asset.
&stc=1This is the settings we expose on the asset:
&stc=1
The SubsurfaceColor is a filter color that define how much goes though the top layer and participates in SSS.
Black means no SSS, using normal diffuse (Lambert) response, White means all goes into Subsurface scattering, in-between values are possible. A color allows to have some colored contribution entering the surface.
The falloff color defines the material color the light travels through once it’s scattering. The whole effects is made for skin (multilayer) and the colors allow to adjust the profile to be non-skin like.
The whole computation is energy conserving so it’s not possible to create more light through scattering (unlike the other Subsurface method).
Opacity can be used to mask the feature (could be grayscale): left: without SSS, middle: mask, right: with SSS
&stc=1
Test Level: top without, bottom: with (Scatter is in world space size, smaller model appears smaller in light response)
&stc=1Left and right is using the method, middle is Default Lit (notice there is no scattering between the material and that results in a grey outline, I think I need to fix that)
The content here was not tweaked much – especially roughness and specular was not tweaked. The environment is a single point light with a constant ambient.
&stc=1
Not yet done:
- Optimizations/Scalability (can use lower resolution intermediate, less samples, approximate further, use stencil)
- Clamp Radius for better performance and to avoid some artifacts
- Improve quality further e.g. per pixel randomize to get the look of more samples
- Backscatter (ears case)
- Thumbnail/Preview for the SubsurfaceProfile asset
- Fix grey outline when SSS materials are near occluded by non SSS materials
- Specular is removed from the scattering (as it should be) but this is an approximation, a proper solution is possible but more costly – we might do that if needed.
The method is limited but I am curious to see where we need more.
- Scattering in the material is assumed to be very diffuse (milky, not like polished colored glass)
- Getting very near to Mountains having subsurface scattering might never)
The goal is to replace the old Subsurface and Preintegrated skin with that one.
Animation
Importing Custom Curves to Animation
There is now an option available when adding custom attributes for bone objects within a skeleton, and having animated them, they will import as curves.
&stc=1
&stc=1
(Custom attribute in maya for the object b_MF_Root)
Note: The Import Custom Attribute as Curves option is on by Default!
When importing while the option is selected, it will show up as a curve in the animation.
&stc=1
When using vectors, it will appears as “CurveName_ChannelName”
&stc=1
Additional note: if you use the same name in different objects, it will consider as the same curve.
Editor
Force Feedback Improvements
Force feedback is now supported on the PC when using controllers that support it.
Force feedback can be enabled/disabled via a boolean property on the Player Controller.
A latent action has been added that allows the playing and updating of a dynamic force feedback (rather than a pattern defined in the content browser).
It begins playing when Start is called. Calling Update or Stop if the feedback is not active will have no effect.
The Completed output will execute when Stop is called or the duration ends.
When Update is called the Intensity, Duration, and affect Booleans will be updated to the current pin inputs.
The parameters are:
- Intensity - How strong the feedback should be. Valid values are between 0.0 and 1.0
- Duration - How long the feedback should play for. If the value is negative it will play until stopped
- Affects [Left|Right] [Large|Small] - Advanced properties to indicate whether the intensity should be applied to the given servo. By default all servos will be affected.
As with pattern based force feedback, the actual value for a servo in a given frame is the maximum value between all active force feedback effects.
&stc=1
Misc.
Editor
- Added an include for Actor.h to NavigationData.h so that it works with “include what you use” (without Engine.h).
- Disabled code compilation in editor on promoted builds as they don’t have any already-generated code and this causes compilation errors.
- Folder Rename can now be done in the Content Browser Path View.
- New and replacement icons for various UMG widges @ 16x. PNG assets only.
- Added new SKeySelector widget to take care of selecting keys in various situations.
Slate
- Added support for an image widget that dynamically downloads its image content when first drawn.
Mobile
- Added support for OSS connect action in blueprint and response handling.- Adds component for blueprint and interface Contains Android implementation only.