[Twitch] Subsurface Scattering and Ray Traced Soft Shadows Demos - Oct. 16, 2014

Thanks :slight_smile:

, thanks for the detailed reply. It seems like it’d be a lot of work. I’ll try and look into it, at least until I get stumped :smiley:

I have one more question.

There is new card Open World in Trello.

Are there any plans to provide precomputed occlusion, which does not depend on lightmaps ? For example using spherical harmonics + probes. It would nice, to have since big accuracy is not needed, but large scale AO would be beneficial.

Using lightmaps for anything bigger than 1km across is, not really option. They just start to take way to much space.

@&: I’d be curious to know which high-end rendering features you look forward to implementing most personally?

Thanks.

Yeah I tried using r.DiffuseFromCaptures, but it either didn’t worked, didn’t worked the way I expected, or worked and I couldn’t tell any difference.
I retract that. I just tried with latest build and I can see the difference very clearly.
I can even say I see it way to clearly, it just booommed with light (;.

Static AO from probes would though! Could the system used for generating lightcache probes be, leveraged for generating probes for capturing and storing SH, without using lightmaps ?

Thanks for all the answers ! You have an amazing amount of in-depth knowledge on the engine. I can certainly see why Epic hired you in the first place!

Repost as this is much more relevant in this thread for potential answering:

Source: Unreal Engine 4.5 Preview! - Announcements - Epic Developer Community Forums

NOTE: Diff multi-line commits was answered and it turns out it was introduced in 4.4

When this stream will be available on YouTube? Missed it…

I typically try and get this uploaded within a day or so. In the meantime, feel free to hop over to twitch.tv/unrealengine. You should be able to watch there.

A direct link Twitch :slight_smile:

Thanks, for some season I couldn’t open recent broadcasts (thought it’s locked).

Neat! Hope someone will make a game or scene in this style…

Thank you for direct link , I missed this event :frowning: and i don’t know why I didn’t find this video.
Thank you so much now it 's work

I will try to answer what falls into my area.
As said is the video I am working on forward rendering as a side project. We simply have too many tasks and it has low priority but because I personally believe it’s important I work on it when I can make the time. At the moment I have a CPU culling data structure setup, passed to the GPU there it traverses through a small subset of lights to compute lighting. As a test I implemented anisotropic lighting and it works quite well.
A few more this need to be done before I can check it in: Support more than 32 lights, optimize data structure upload or compute it on GPU, expose shading code (currently it’s HLSL in common.usf which can cause a recompile of all shaders whenever you change anything), support lit for translucency
Ideally it would also support reflection environments and shadows but that might not be the case for the first version. We currently reuse the shadowmaps (light space depth) and shadowmask (screen space mask) a few times during the frame but for forward lighting we need to keep them around. You see it’s a quite a lot of complications - this is what was mentioning.
If possible the system should even reduce the light count where possible (hair lit by 50 lights might look like hair with only a first few bright ones) - to save performance.

We work on optimizations all the time - I just saved quite a bit on SubsurfaceProfile. Next I will optimize more in post processing. Recently Gil made good improvements on the multithreading side saving CPU performance.
optimized his distance field code - without it wouldn’t have performance. Performance is a wide field and we have a lot of subsystems. If you isolate your issue you are likely to improve by changing the content to be more efficient.

Cached shadow maps is possible but it’s often not a good solution. It helps the best case (no camera movement) but hurts the worst case (we need to render more because a quick rotation can reveal an uncovered area) and cases hitches (fast distant shadow casters are not rendered each frame). For VR we don’t want to drop a frame and there it would just cause more problems. Ideally we have the options for you to decide but we still can optimize the shadow rendering in other areas.

VXGI is like a faster SVOGI (The method we had and removed for performance reasons). It’s faster because it’s less adaptive (using larger volume texture blocks instead of a tree of many 3x3x3 blocks).
SVOGI had to touch a lot of areas and I would SVGI expect to be similar to be fast.
It might end up to be similar to LPV.
It might not run as well on non NVIDIA hardware - but I don’t know about that.
I personally don’t know how we want to proceed there.

Sorry no progress on cascades.

It differs:

But it should be much easier to setup. It has a bit less power in what it can express but if it does human skin well and is per formant we take that.
We could expose a few more properties but the GBuffer space is limited and we also want to compress it more for better performance.
I guess we extend once we see a strong demand.

We recently had it on the task list but something else popped up and moved it down a bit. We haven’t settled on the method. We know we want 2 shifted lobes of specular anisotropic shading, consistency with other lighting models, energy conserving properties, moving geometry and some form of antialiasing. The right technique often depends on the hair type (blond -> better translucent, dark/thick -> masked is ok, flat -> opaque), view distance (near-> tessellation, medium -> sheets, far-> Masked) and the environment (foggy, depth of field -> need depth, many lights -> simplify lighting). Going for masked might mean we need a post process to blur the noise in the hair direction.
It’s likely we need multiple techniques combined to get the best results.

I will look at it soon - might be simple. Keep in mind VR likes resolution and high stable frame rate. Especially if you get near a face you might have to pay a higher cost (texture lookups jump through more memory cause more memory bandwidth).

The backscattering is not yet implemented but that is on the near term task list. We already have similar code in the Subsurface shading model but instead of a large filter fixed kernel we could use a randomized kernel for better performance. The ScreenSpace subsurface scattering can blur the noise a bit without any extra cost.

I want to finish the forward rendering code for UE4.

I consider lighting mostly solved (quality, performance, large light count), texture streaming can also be considered solved (minimal streaming hitches, quality near and far, large texture sizes, sparse textures).
Still in both areas we can improve further.

Antialiasing is much less of a topic because we have very good TemporalAA which works even better with high frame rate. Still there is some problems and I feel using the hardware MSAA with some forward rendering
might because a better option in some cases (VR).

I would like to get shadows solved (fast, scales well with geometry complexity and light count, penumbra, translucency). I did some experiments (http://kosmokleaner.wordpress.com)
but I haven’t tackled the penumbras yet (many rays is too costly).
Daniels recent work in UE4 does a very good job on that. If we get skeletal meshes working and get it a bit faster with that we might have it.

I would like to get level of details solved (fast, simple, works on many mesh types, skeletal meshes, transitions, unique texturing, memory efficient). I have some experiments but a few more problems need to be solved.

, thank you :slight_smile:

I figure even if it’s spendy it will be extremely worthwhile for VR - I don’t mind cutting triangles, complex shaders, etc etc in order to get nice skin.

Thanks for answer!

I have one more question, for anyone able to answer it.

Any plans on improving Atmospheric Fog ? It’s all nice but there few things that bother me, from most important to least:

  1. Sun- Let’s just be honest about it. It looks like **** (;. No matter how high brightness you set, it still looks like flat disk, that is just brighter on the outside. It looks like it is missing HDR.
  2. Night. I mean separate settings for night with moon. I managed to exploit some settings, to have dark sky with bright moon, but that just feels like ugly hack.