I was wondering: NvFlow is based on some low order approximation of Navier/Stokes flow solving ?
In which file can i look into for the main math computation?
Is the future of NvFlow some neural network based solution? ^^
I was wondering: NvFlow is based on some low order approximation of Navier/Stokes flow solving ?
In which file can i look into for the main math computation?
Is the future of NvFlow some neural network based solution? ^^
I also have a 4.16.2 build working so Iām pulling yours down to compare. Iāve looked at a few key files and we seem to have patched the RHI code in much the same way so thatās gives me hope I wasnāt to far off the mark. Still stuck with those few depreciated function calls in D3D11NvRHI.cpp applyState. Iāll be interested to see if Iāve missed anything big that you havenāt.
I have my version packaging and building for distribution, mostly came down to the new approach to headers and including the x86 libs/dlls for the distribution build. Iāve also resolved most of the issues to do with VR support although Iām sure much more can be done in department but it works and with carefully tweaked settings the results are good.
In my content I could never get the result I was after when it came to the skylight and the voxel reflections never matched the screen space reflections. I tried all sorts of hacky solutions, messing around with the vxgi voxel shader and reflection shader to try and occlude the skylights influence and got mixed results. In the end I realised I was being an idiot and patched the skylight texture into the vxgi diffuse and spec environment maps and stopped all other forms of skylight influence except the reflection sample. I also put some constants in to adjust the results from the vxgi specular reflection buffer (Iām not happy with these but they seem to work on a superficial level).
is a shot from our dirt simple VR test map.
@Joti
VXGI Specular really cost a lot of performance and only fit some specific kind of reflections, i wonder which kind of performance you achieve in VR ^^.
I usually only use the diffuse and some 75+quality screen-space reflection.
At the time i did the VXGI port to 4.16 (in pre-release, might have been back in March, i donāt remember) i tried to implement as much as possible the new Graphic Pipeline Interface as i wasnāt sure the actual released 4.16 would still support legacy pipeline. I built on top of what i did on march when i made new 4.16.2 version the other day, just had to update 2 function definitions.
If you can package i would love check what iāve missed ^^.
Your render looks great!
Try adding collision shapes to those other meshes. At the moment, the Flow integration finds emitters using collision shapes. A simple box collision shape will work.
Iām sure itās navier stokes type stuff. The visual results and a lot of the parameters are too similar to other systems Iāve seen, usually based on navier-stokes simulation techniques and making use of 3d textures and compute shaders, for me to assume anything else. The main difference with flow is the āadaptive sparse voxel gridā stuff that allows the simulation cell grid to expand on demand without totally destroying performance. Perhaps I describe wrongly and its better to think of it as not needing to run lots of unnecessary math on cells within the overall grid that dont actually contain anything useful at that frame of simulation. (since there is still an overall grid that means the simulation work only within limited bounds, albeit grid is now moveable)
As for which file to look in, as best Iām aware stuff is not open-source, so we dont get to see inside the flow āblack boxā.
Hey all, Iām new to the VXGI branch of UE4. Been curious about it for some client work that needs to push the visual quality on a quick turnaround since I donāt want to deal with lightmaps and lightmass.
Question: does the VXGI build support SLI? Clients have no issues spending money on an SLI system if it means their projects look good.
Is it safe to target 45 FPS with VXGI and use Async Reprojection to get them to 90FPS in Steam VR for a strictly architectural rendering with no actual āgameplayā?
I was hoping to outfit systems with a 1080ti to run the renderings, and go SLI if I REALLY have to.
Curious to know if it would even work. Thanks!
A.
Also side note: does VXGI work with the forward renderer? Thanks!
Following on from my previous reply, if you are still interested in whats going on despite not having access to the code that makes it happen, you could do a lot worse than look at stuff from a couple of years ago. I dont know how much Dunn was actually involved with flow, or to what extent the actual implementation varies from the detail he gave in 2015, but at the very least its clearly a strong inspiration for flow with a large overlap in terms of theory.
://on-demand.gputechconf/siggraph/2015/video/SIG506āDunn.html
://developer.download.nvidia/assets/events/GDC15/Dunn_Alex_SparseFluidSimulation.pdf
Thanks for all those precious information !
Well you got me started on a subject close to my heart - Iāve been obsessed with such simulations for years, albeit flow is the only one I know that has taken leap towards trying to be performant enough that sort of simulation actually gets used in some more games.
Most of what Iāve said and linked to in recent posts covers aspects of the computational & memory performance stuff that the likes of Flow bring to the table. For more information about the actual simulation steps, minus the efficiency stuff, there are various resources around on the net and have been for quite a number of years now. Since is a UE4 forum I should probably try to come up with an example that runs in engine and that you can actually look at the guts of. Happily I can actually do that year, albeit with something that gives very pretty results but not even designed with the idea of running the simulation at the sort of framerates weād want in a game (he envisages baking the results in flipbook form). Great for understanding the simulation technique though if you are familiar with UE4 material node graph stuff:
Without the performance-enhancing techniques discussed earlier, it is still possible to get a simulation you can use with the desired framerates, the thing I just linked to is not representative of how quite fast things can be done using compute shaders and the old non-adapting grid stuff. But all the limitations of the older, simpler approach are covered in the talk I linked to anyway and I dont have a more performant example for UE4, so thats enough of my rambling for now!
Brucks work is always a pleasure to look at, learning a lot about Unreal Engine thanks to his work. Itās rather funny because while i come from a Math higher education background iām still figuring out how it ends up in such wonderful 3D work.
The most advanced stuff iāve done outside of UE4 regarding 3D is coding a GPU CUDA-based renderer+raytracer using Monte-Carlo. I assume the Nvflow solving is along those lines.
No forward rendering support yet and it would be hard to implement it with the current SDK. Maybe a hybrid render that created the buffer VXGI requires and applied it in post could work and would be cheaper than full differed rendering.
No SLI support yet but also possible.
The best you can do at point is one 1080ti which is only just enough.
Sorry been a bit distracted. Yeah spec reflection is about twice as expensive as diffuse, iām maxing out a 1080ti to get VR performance although the simple scene does work on a stock 980. Iām getting a little over 18ms per frame with my simple scene and good chunk of that is convolution bloom which I like too much to turn off. Without out it I get my 90fps, just.
I see you patched the directx12 rhi code, I havenāt tested it yet I read a post a while back saying was actually slower with VXGI is that still true? I had missed a few modernisationās in some of the function parameter definitions and we had some different assumptions in the Graphic Pipeline Interface conversions but mostly on the same page. My version also has a working version of cone tracing material node for reflections on transparent materials. Iāve made a hybrid version in my branch and done a bit of testing and tweaking of some the reflection changes I had made. When Iām happy Iāve not done anything two silly and I get a moment Iāll commit a bunch of features and fixes to your branch if your cool with it.
Looks fantastic, please feel free to commit any update on my VXGI branch. Not sure if youāve seen bit too, but iāve added a Tesselation fix in the VXGI shaders for a that got broken last summer.
Iāve not tried the part, but indeed as far as i remember i updated it. For the new Graphic Pipeline interface, itās just been a whole lot of trial and error, a lot.
yeah same . I suspect the rhi integration could do with a rewrite but that would require a clearer understanding of the systems than I have at point. Messing around with sort of code certainly helps though. Iād also like to redo the voxelization rendering to have itās own veiw so that it could collect lower level LODs or proxy meshes and be isolated from the vertex buffers of the main views. Although Iām not sure Iām understanding how that works properly yet either.
With SLI there a bunch of approaches that could work:
The next step for me is to put VRWorks back in to get the SLI fundamentals and the improved frame clipping as well. I say back in because I had them together in a 4.13 version I had awhile back. Any reduction in frag fills is essential.
" 4.16.2 (no packaging): VXGI - "
Any reason why the link isnāt working anymore? Iād love to test things out :)!
Works fine for me. Are you logged in and registerred with UnrealEngine?
Hi , I tried out your latest Gameworks 4.16.2 build, but wasnāt able to get it to build in Visual Studio Community 2017. So basically I did-
://i.imgur/WEmOgtE.jpg
How can I fix ? Thanks
You indeed need your github account to be linked with Unreal and Nvidia to access the repo.