Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Stereo rendering in Obi 7
#1
With the Obi 7 release coming closer, I've got a few burning questions that I need to get off my chest:

- You said some time ago that HDRP support was being held back until the Obi 7 rewrite, does this mean HDRP support is coming with Obi 7 or is development only starting after Obi 7 is done?

- Right now the fluid shader only supports multi-pass stereo rendering, is there any chance you could add single-pass support for the HDRP shader?

This is incredibly important for it to be of any real use, because Unity unfortunately has a habit of treating multi-pass as a legacy feature. In the builtin RP and URP it at least works for the most basic setup without any post processing (most importantly no AA), but in the HDRP it is broken to the point of not even being able to enter play mode. You can force Unity to build in spite of the errors, but the result will look like this:

[Image: 96Io5GL.png]

It's fine if it doesn't perform any better than the multi-pass shader, it just needs to be compatible with single-pass rendering so you can dodge all of the catastrophic Unity issues that come with multi-pass, most of which are considered as won't fix (even if they refuse to state that directly) since they have gone completely ignored in the forums and the issue tracker for more than a year now.
Reply
#2
(05-07-2022, 07:49 PM)locque Wrote: - You said some time ago that HDRP support was being held back until the Obi 7 rewrite, does this mean HDRP support is coming with Obi 7 or is development only starting after Obi 7 is done?

Obi 7 will ship with HDRP rendering support.

(05-07-2022, 07:49 PM)locque Wrote: - Right now the fluid shader only supports multi-pass stereo rendering, is there any chance you could add single-pass support for the HDRP shader?

Certainly not at launch, and it's questionable whether it will be possible to do at all in the long run. Screen-space splatting does not lend itself well to single pass stereo rendering.
Reply
#3
Thanks for the quick reply! I suppose that is some good and some bad news.

Is getting anything rendered using screenspace splatting in single-pass prohibitively difficult, or is it only certain parts like lighting and refraction? Would a very basic fluid fluid renderer that supports single pass be possible?

With the current state of multi-pass in Unity even just having the outline of the fluid filled with a single color and transparency in single-pass would be a massive overall visual improvement.
Reply
#4
(06-07-2022, 02:37 PM)locque Wrote: Is getting anything rendered using screenspace splatting in single-pass prohibitively difficult, or is it only certain parts like lighting and refraction? Would a very basic fluid fluid renderer that supports single pass be possible?

Most issues lie at the core of how splatting works, lighting/refraction are done after splatting: splatting calculates normals/depth of the fluid surface, and then all lighting and shading is done in a deferred fashion.
Reply
#5
Okay, I suppose I'll have to find some way to live with multi pass then.

Just one last question:

My project is hitting the CPU and GPU ceiling in multi pass, single pass would barely be enough to run on really high end hardware without making serious compromises. It's not even coming from the CPU, it's the GPU that starts dropping frames every few seconds in multi pass. I'm only using a relatively low amount of particles, so I thought the compute backend would not really benefit me even if I had any GPU time to spare.

What about getting a dedicated GPU just for running the solver though? Is choosing the the device used by the compute backend going to be supported in Obi 7 or does it have to run on the same one that is doing the rendering?

This is the only way I can see to save my project at this point, would this even work / significantly improve performance in theory or are there problems with this approach that I'm not aware of?
Reply
#6
(06-07-2022, 04:00 PM)locque Wrote: What about getting a dedicated GPU just for running the solver though? Is choosing the the device used by the compute backend going to be supported in Obi 7 or does it have to run on the same one that is doing the rendering?

The compute backend uses Unity's shader scaffolding, I didn't expose/implement compute shaders myself so this is entirely up to Unity. As far as I know, (might be wrong though), Unity simply allows you to choose one GPU and then it's used for everything. I don't think it is possible to use multiple GPUs simultaneously.
Reply