NVIDIA GameWorks Integration

It should cast shadows from emissive materials. What other lights are in your scene? Do you have a screenshot?

Nevermind its casting shadows. I was expecting sharp shadows xD. By the way What is pixelated, boxed kind of things on speculars? I have all over my scene, if its moving object its really noticeable. What value should i increase?
and is there any we getting NVidia Antialiasing stuff?

Specular reflection is one of the weaker aspects of VXGI currently, and we are working to improve it, but the performance is expensive and it will not look as sharp as a cubemap reflection anytime soon. Weā€™ll post some advice about parameter tuning ASAP, I donā€™t know offhand what is causing artifact, but I would think that the cone sharpness is a factor.

Iā€™ll see what I can find out about a schedule for TXAA integration. We have a new version, TXAA-3, coming out soon.

ā€“

Thank you very much!

The emissive voxels going white most likely means VXGI is using UNORM8 emittance, i.e. non-HDR, and it gets saturated when it gets brighter. To get best results, we recommend to set bVxgiStoreEmittanceInHdrFormat=true in BaseEngine.ini. option changes the emittance format to FP16 (on ) or FP32 (on other GPUs). You can also experiment with VxgiEmittanceStorageScale option (same location) and see if thereā€™s a setting that looks good with non-HDR in your case.

The error with map size = 256 is a bug in the config validation code; itā€™s already fixed in the development version, and the fixed DLL should be out with the next release. Performance with such a large map is really poor though.

We certainly can add a tint for the cubemap, and cubemap support for diffuse ambient lighting. Iā€™m not so sure that the ambient term multiplied by final opacity will look well, though, but itā€™s
easy enough to try.

We also had the idea of using cone tracing instead of shadow maps, and there was an experimental version like that. It was much slower than shadow maps, and the quality was much worse. So I guess weā€™ll need to improve cascaded shadow map sampling during voxelization.

Not sure why itā€™s pixelated, usually when specular looks bad itā€™s either voxels or banding or screen space aliasing. Can you try changing the Specular Filtering setting and material roughness?

Great, thanks! is just for fun, but 's a build: ://www.scheidecker.net/BrickGame-VXGI-2015-06-12-17.00.rar

I actually increased VxgiEmittanceStorageScale already to fix the brightness, and didnā€™t notice it fixed the saturation as well. Sorry, my mistake! FP16/FP32 is way overkill for me.

Thatā€™s what I did in SVOGI, and it worked well. Shadowed sky lights for free! :slight_smile: Though to be clear I multiplied the total transmission of the cone by the ambient lighting.

Iā€™m sure it wouldnā€™t be as sharp, but thatā€™s fine for my purposes. I would actually be happy with softer directional light shadows. Have you considered creating a signed distance field from the voxels and using that to skip samples for the the narrow cone traces? Apparently Tomorrowā€™s Children does that to accelerate tracing reflection cones, but I imagine it would help shadow traces just as well.

Thanks for your help!

@ @ Greetings. No answer about the VXGI problems in colour bleeding and mixing in my comment from the last page? :frowning:

Sorry, I must have missed that. Iā€™ll take a look at the videos.

With the ability to add plugins to the marketplace, do you have any plans on adding the Gameworks files to that? Could make integrating things a lot easier for a lot of people, and lead to more widespread adoption.

ā€œonly the source required for integrating with the engine, so we can work with it ourselves and test it properly. Everything else can remain closed source. We have full respect for code plugin developers wanting to keep their secret sauce secretā€
https://forums.unrealengine/showthread.php?72760-Plugins-now-accepted-What-do-you-need&p=309958&viewfull=1#post309958

Seems like it would be a good fit, assuming itā€™s possible to integrate it through however theyā€™re doing it.

Problem isnā€™t the propriety code, its the actual integration, they are heavily integrated into the renderer, at point in time, there would be no way to convert them into plugins. Unless Epic can expose more of the renderer, such as the main render pass, and such to plugins, it will have to remain as a separate integration.

Is there a reason why Epic wouldnā€™t want to do that? I was under the impression they were trying to allow users to modify the engine however they need, hence the available source code. Is it just a matter of them not getting around to it yet? (assuming itā€™s even possible)

I would imagine it would only be to their benefit to implement it, not only for plugins like VXGI but for what else people may come up with to extend the engine.

Of course its possible. They would need to refactor stuff and place plugin-usable anchor points into stuff. Some guy on the Forum changed parts of the rendering code (or the shaders?) to be extendable by plugins already. I think Epic didnā€™t do it yet because its the core system and they try to develop one or more commercial games on their own with it already too, seems risky (and laborous) to rearchitecture it now.

Yeah. It would take a lot of time, Iā€™m just thinking of things like TrueSKY, VXGI, AHR, or whatever comes along next. Itā€™s difficult for the average user (or artist without programming knowledge) to integrate multiple plugins themselves without breaking things, and it gets harder to maintain as you start adding more from various sources and branches. Just seems like the logical progression to add when thereā€™s already a marketplace thatā€™s capable of handling all of that.

Of course, I say all from the point of view of someone that wouldnā€™t know the kind of work that would need to go into that. As useful as it would be, it might not be worth the months of effort that it sounds like it might take.

I agree that would be something beneficial to the plugin approach, hell, it would mean I could release some of my stuff as plugins instead of trying to find workaround and I really do hope that Epic take the time to implement more and more functionality overrides into plugins. Right now the ball is in Epics court, or an individual who is willing to put in the effort, much like Temerran (Hope I spelt that right, I apologise otherwise) did for the project dependent shaders.

Ok that pixelated, grid thing on speculars was caused by VXGI Specular Tracing Filter. It was turned on by default. When i turned off it goes away. But it gives me pretty bad result until i set my Spec Tracing Step to 0.5.

Color mixing should work fine, all the math in VXGI is additive in RGB space - and that is physically correct. Unless some saturation in the emittance map is involved, that is.

The page that you reference talks about color mixing in a different color space, like paint on paper. In RGB space, blue (0000ff) + yellow (ffff00) is white (ffffff) - and thatā€™s what you get on that picture, multiplied by some small factor that makes output gray.

Well, when I tried LPV? it was the walls who had difefernt coulours thus when the TOD changed the colour of the walls changed mixing the diffused lights cast on them. The Balls in VXGI were emissive balls meaning they were the light sources. Does that mean, the diffused lights on walls from light emissive sources donā€™t mix up while if I try the same case as in LPV where the walls were painted in some coulours then teh mix will happen like in paint? Or is VXGI diffeernt than LPV and more accurate?

I think VXGI and LPV should behave similarlyā€¦ but the experiments that you describe are different. In the balls case, it looks like the light from the balls is mixed on a white wall. In the screenshot with boxes and daylight, it looks like a yellow box is illuminated by direct and reflected sunlight. The incident color is multiplied by surface albedo color, which is not white, so the output color is different.

Specifically, on picture 2 of set (://imgur/a/VGQnS), the floor reflects cyan (00ffff, well almost) and that cyan is multiplied by yellow albedo of the box (ffff00), which gives green (00ff00). On the third picture, red light from the floor (ff0000) is multiplied by yellow (ffff00) and that gives red (ff0000).

when you update the engine, could you see if merging https://github/EpicGames/UnrealEngine/commit/ef2256631b3a54fb615cafe22662b2f929189de8 would be possible? Itā€™s not in the official 4.8 branch yet, but it is a significant update to LPVs. The main changes are that it adds spotlight support and directional occlusion. Always a good idea to keep both systems up to date, for lower spec machines to be able to run the game.

I also just noticed the Nvidia branch updated with : /tree/Turbulence-4.7.6

I was under the impression that ApeX Turbulenceā€™s functionality was already adapted in some way in-engine for the GPU particles. Does anyone know if thereā€™s a significant difference between them?