NVIDIA GameWorks Integration

Right, those are my GTC slides… The problems mentioned there are:

  • Light leaking: no improvements here, in fact with the new high-order emittance downsampling filter (bVxgiHighQualityEmittanceDownsampling in BaseEngine.ini) light leaking may appear in some places where it didn’t before.
  • Voxels in reflections: nothing new here as well, you can still see the voxels in reflections on flat objects with low roughness. VXGI can add some jitter to sample positions, thus replacing visible voxels with noise, but that’s hardly better.
  • Specular reflections are single bounce: not anymore, with multi-bounce support.

We do not make any distinction between static and moving objects, they are all processed in the same way. The improved emittance downsampling filter that I mentioned above helps with the quality of indirect lighting from moving objects a lot, and it also improves the quality of rough flat reflections.

I don’t think that would be a problem at all. I’ll ask around to see if there are any concerns, but there are no restrictions placed on whose data you feed into UE4 or HW.

Oh no bad news :frowning:

@Alexey thanks for the answer. What about using the new version of VXGI for directional lights like sun in different time of day dynamically? In the previous version, many (including me) were having problems with shadows of dynamic sunlight from certain angles. They seem to not get lit by light bounce and they stay compeletely dark as if GI wasn’t enabled. There are many screens of that problem in previous pages. Was this solved now with this version? can we use directional lights dynamically without bugs or do we stick to spotlights? LPV worked well with directional lights but very badly with directional indoors lights, the total opposite of VXGI.

Sorry, I don’t understand what is the problem you’re describing. We don’t change the shadows from direct lights. Do you mean the shadows in voxelization results?

All kinds of movable lights should work properly now. Please report any issues you find with the new version.

We found one common source of lighting instability, it’s insufficient shadow depth bias - like shadow acne in voxel space. To help users diagnose issues like that, we added “r.VXGI.EmittanceShadowEnable” cvar: if you set it to 0 and everything becomes stable, shadow maps are to blame. You can tune the depth bias with “r.Shadow.PointLightDepthBias” and similar cvars.

If I understand your question about the unlit shadows correctly, then there should have been some directly lit surface that would illuminate those shadows. Now with multi-bounce support, for example light from the floor can illuminate the ceiling, which will in turn illuminate the shadows on the floor (but that will be a very dim light, most likely).

Is it hoped for, in future, to make the depth of field effect on Hairworks more accurate? At present if you have a hairworks object in focus in the foreground there’s a pretty big ‘halo’ that remains in focus around it.

Yes, there is a lot of room for improvement for HairWorks, especially in the rendering. I’ll take note of DOF.

I just compiled the new VXGI build. When I opened SciFi Hallway, I was greeted by those errors:

he’s saying that vxgi doesn’t work when you turn on distance field soft shadows.

Did you download it as a zip, or using Git client?

Thanks Mike, I’m thinking I will work on that, or a tool for creating hair within UE4, so take the functionality of the max or maya hair plugins and integrate directly into UE4.

Zip file. I stopped using git since it is complicated like I said. Is the git version better and doesn’t have those problems and missing files?

I can still see the shadow in your second picture, it’s just very low contrast because VXGI contribution is really bright.

Are you using HDR emittance in VXGI (bVxgiStoreEmittanceInHdrFormat in BaseEngine.ini)? I’m asking because we found a bug in the UE integration and it’s fixed in the latest release. That bug was causing indirect illumination to be much darker than it should be, if RGBA8 textures were used to store emittance. So, if you don’t have HDR emittance enabled, your diffuse tracing intensity setting is probably much higher than it should be, in order to compensate for that bug. Try reducing that intensity in the new version and see if shadows look better after that.

Actually no, what I just said is incorrect, it’s the other way around: non-HDR lighting should’ve become darker. Still, your pictures with the new VXGI look way too bright, multibounce shouldn’t affect the result like that.

I realize that the shadow is created by a distance field, so you want to replace the light with an emissive surface and get shadows from VXGI? It’s technically possible to get a more or less correct shadow, we could trace cones toward a specific area light, but that would be expensive and that is not implemented in UE4. Getting VXGI shadows from a regular light is not possible.

Hi, i have the same issue, when i unzip the unblocked file i get this issue : " ! F:\UE4 releases\PHYSX\unblock\ Erreur de somme de contrôle dans F:\UE4 releases\PHYSX\unblock\UnrealEngine-VXGI\UnrealEngine-VXGI\Samples\UserContent\SciFiHallway\Content\Textures\Door_02_M2.uasset. Le fichier est corrompu "
Door_02M2.uasset. seems to be corrupted …

OK, now I really understand what’s happening :slight_smile: UE is just not my area, sorry - I work on VXGI core primarily.

Distance field shadows currently cannot be used during voxelization. So when you have a DF-shadowed and VXGI enabled light, it will be voxelized as if it had no shadows. It should be technically possible to use DF ray tracing during voxelization, but I’m afraid it will be very slow. Maybe a solution to that would be to make UE render a regular shadow map for those lights as well, and use the shadow map for voxelization instead of the DF.

I have had problems with the zip files, I will test it today to see if the same problem occurs for me.

I just found a quick&dirty solution to make lights with DF shadows properly voxelized - we just need to render regular shadow maps for them. We’ll try to get a proper solution in the next update, but here’s what you can do right now.

  1. In Engine/Source/Runtime/Renderer/Private/ShadowRendering.cpp, replace line 3267:

if (ProjectedShadowInfo->bAllocated && !ProjectedShadowInfo->bTranslucentShadow && !ProjectedShadowInfo->bRayTracedDistanceFieldShadow)

with the following:

if (ProjectedShadowInfo->bAllocated && !ProjectedShadowInfo->bTranslucentShadow)

  1. In Engine/Source/Runtime/Renderer/Private/ShadowSetup.cpp, comment out or remove all 4 lines that mention “bRayTracedDistanceFieldShadow” (655, 1664, 2106, 2144).

  2. Build and run UE4.

Yes. With these changes, you’ll get soft distance field shadows and correct VXGI voxelization, therefore correct indirect lighting. Shadows in the voxel representation of the scene will be sharp, but you shouldn’t notice that normally.