SEGI
SEGI copied to clipboard
Feature: Single-Pass Stereo Rendering for VR
If someone digging into the code can figure out how to get SEGI working in VR that would be a huge boon :)
I second this, it would be awesome to use it in VR...
yes please, for the love of god, i want to use this in my procgen map VR game :)
+1 for Single Pass Stereo rendering for me as well
I would need it so much, willing to pay again for the asset just to get it :D
So, I just implemented SPS. Performance isn't great though. Expect to need at a GTX1080 to stay out of re-projection
https://github.com/ninlilizi/SEGI.
Any insight into where the performance problems lie and if there's any potential solutions?
Looks like it was the uFPS VR camera controller I'd dropped in to test the scene that was rocking up against it in a weird way.
Discovered that while working on adding GPU Instancing support today. On my system with GPU Instancing enabled, and the problem controller removed. I'm at 1ms GPU overhead with a GTX1060.
Bear with me. I'm using this as a learn to shader experience. But now confident I can make this thing work well.
This is currently where performance is at with my local copy on a GTX1060.
I'll push when I've fixed a few bugs I found and tidy up my changes.
Ok, the performance issue seems to only occur when using the Oculus runtime... Works perfectly using OpenVR.
It's certainly weirdly pernicious. I'll continue to investigate when I have time. I've a pretty strong incentive to fix this thing as using Voxel Farm for my world building and that means it's either fix this or boring flat lighting everywhere.
In the mean time. We now have both SPS and SPS/Instanced rendering looking beautiful ^_^
Amazing work.
Another question - is this still deferred-only? How are you finding aliasing issues in light of the lack of MSAA? Does the performance hit scale linearly with resolution (or more usefully - how costly is supersampling and SEGI in combination?)
Still deferred only. That's pretty hard to avoid. I've been using CTAA as my anti-aliasing solution (They added SPS this week actually).... It's somewhat pricey. But seems to be the best performing and looking solution outside of MSAA. The screenshot above is taken with CTAA in the post processing stack.
I've not tried it with super sampling. But the biggest performance hit comes from the voxel resolution, scene complexity has an impact on the voxelisation compute shader, so that's a consideration. In the voxel resolution dropdown, 'Medium is now analogous with the previous Low setting... And I added a Low and Potato option below that. They kind of muddy the lighting going that low, but I figured it prudent to at least give people the option.
I have tried sub-sampling, as was using it to get somewhat workable framerates that didn't make me ill while working on the fork. With OpenVR, performance vs resolution seemed negligible. But made a big difference with whatever is going on with the Oculus runtime. I'm at this stage leaning towards the performance discrepancy being something going on with Oculus, rather than SEGI itself. I'll be filing bug reports in all the relevant places to see if that yields some results alongside trying to reverse engineer the source of the problem myself. But I feel that's going to be a time consuming process, so might take a bit to get to the bottom of it.
Instanced vs standard SPS from testing cut's the SEGI overhead in almost half while above 90fps.... But the performance benefit vanishes as soon as you hit re-projection.
Regarding known issues, there's a tiny bit of glitchiness in the shadow mapping. Which is on my todo list to tackle. If that pops up for you, you can just set shadow distance to zero as a temporary workaround till I find a large enough stick to slap it about with.
Been busy the last few days. I've added support for forward rendering. You loose some visual fidelity and can't use the reflection tracer in forward. But otherwise it's shiny.
Give Forward + SPS/Instanced mode a spin... It's speedy. Speedy enough to stay out of reprojection on my GTX1060.
I've also added a few extra tunables and a new demo profile that shows maximum VR performance with the extra tunables I've exposed.
Speedy enough to stay out of reprojection on my GTX1060.
Crikey. That opens up a world of possibilities. Good work, sir...
I'm actually sitting at 50% GPU utilisation in testing.
But consider it still a work in progress. Got lots of experimenting to do.
ps, Madam ;-)
hello, will you plz plz make segi work with latest hd pipline unity 2018.2 /.3 plz :)
On Sat, 15 Sep 2018 at 02:03, ninlilizi [email protected] wrote:
I'm actually sitting at 50% GPU utilisation in testing.
But consider it still a work in progress. Got lots of experimenting to do.
ps, Madam ;-)
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/sonicether/SEGI/issues/22#issuecomment-421513793, or mute the thread https://github.com/notifications/unsubscribe-auth/AKxfMd--eK0tUsgq-ag5h13CJFujBkf4ks5ubEO4gaJpZM4QZk_Q .
ps, Madam ;-)
Profuse apologies! :-)
I'd love to port to HDRP. But right now it's a bit to experimental and massive refactoring is likely for it in the near future. When its pipeline becomes a little more mature I'll certainly look into it.
My current implementation of SPS/Instance and forward support is quite rough and ready. It was created more as a proof of concept than a solution ready for production. Also the current forward and instanced rendering support has a lot of short comings.
My plan going forward is refine my SPS/Instance implementation and finish the forward rendering portion to support all the feature with a degree of polish.
I spent yesterday examining the sources for LWRP and HDRP to get a feel for what would be required to make it work there... I'm looking to make SEGI a production ready solution from it's current state of cool to play with but impractical to adopt whole-heartedly. After spending a few days building a mixed mode rendering solution using the standard pipeline to get a feel for what is realistically achievable I came up with a clunky solution that gave me forward rendered geometry (with MSAA awesomeness) along with deferred rendered lighting that looked rather beautiful and came in at 50% GPU load even with the rendering to Rift overheads that made my head hurt. From this I recon I can eventually produce a decent SRP of my own, which integrates SEGI natively into the render pipeline rather than just having it as a post effect that would take it to the next level. Short term though.... I'm gonna finish the forward path support... Then when that's perfected, port to the LWRP... As I'm a VR nerd, and a decent GI solution would provide the biggest benefit there.... Then look into HDRP, which the port should be easy from knowledge gained thru porting to the much simpler SRP
Going forward, with regards to my fork. It might make more sense for people to file issues and continue the discussions on my own Github page than here. I'm open to feature requests and general suggestions as this is my idea of having a good time ^_^
My first stable release suitable for actual use is now ready https://github.com/ninlilizi/SEGI/releases/tag/v0.9.1
This release has feature complete support for both SPS and Forward rendering. Along with a pleathora of changes and optimizations.
There is limited support for SP/Instanced rendering... It 'works', but currently lacks a number of features
Any chance of a demo scene? I'm trying to get the old demo scene working but the results are underwhelming. It would really help me figure the various parameters to start with a working example.
Heh, sorry about that. I'm the type that really dislikes extra fluff that needs stripping out of packages so I removed all that without really considering the need for a demo.... I'll sort out a demo package :)
The 2 included profiles are basically performance profiles rather than pretty ones. I'll add to them too.
Weird 'wheres the gi' bug fixed... That was fun... Also added 2 demo scenes. I ported the original low poly scene, and quickly threw together a sexier one to go with it.
The colour saturation is a little lower than it should be. And this isn't my experimental speedy instanced branch.... I'll roll those things in soon.
https://github.com/ninlilizi/SEGI/releases/tag/v0.9.2