Page 1 of 1

does Ogre 14 support single pass shadow support for pssm?

Posted: Mon Jan 27, 2025 6:11 pm
by loath

does Ogre 14 have any examples (or RTSS) of the non-dx9 approach to PSSM with a single pass using geometry shaders?

see this article for non-dx9 pssm shadow support:
https://developer.nvidia.com/gpugems/gp ... mable-gpus

thanks!


Re: does Ogre 14 support single pass shadow support for pssm?

Posted: Tue Jan 28, 2025 1:42 pm
by paroj

this sounds like a nice way to bring down the draw calls (ogre1 achilles heel).

Unfortunately, there is no such demo yet and for PSSM there are some minor bits missing to get there.

I started writing a description for this with things from the top of my head here:
https://github.com/OGRECave/ogre/issues/3280


Re: does Ogre 14 support single pass shadow support for pssm?

Posted: Thu Jan 30, 2025 2:40 am
by loath

thanks for taking a look and considering this. i swear i saw you mention ogre had this but after reading the article i realized we have the dx9 "single pass" not the dx10 "single pass".


Re: does Ogre 14 support single pass shadow support for pssm?

Posted: Sun Feb 16, 2025 5:38 pm
by paroj

I took closer look and actually our instanced viewports RTSS sample:
https://github.com/OGRECave/ogre/blob/5 ... m.cpp#L766

already does most of the heavy lifting and works on D3D9. I am currently trying to refactor the API so it can be used for things like PSSM as well.
I have already fixed some minor bugs in master if you want to take a look at it yourself.

My next milestone is to get single-pass cube-map rendering working with this.


Re: does Ogre 14 support single pass shadow support for pssm?

Posted: Mon Mar 03, 2025 1:15 am
by loath

this is really cool! thanks so much! will study the instanced viewports.


Re: does Ogre 14 support single pass shadow support for pssm?

Posted: Sun Mar 30, 2025 7:46 pm
by paroj

with these changes you can now do instanced rendering to the individual layers of a cubemap / array texture using the RTSS:
https://github.com/OGRECave/ogre/pull/3308

so the proof of concept is now there. However:

  • depth buffer does not work yet, so you have to disable it
  • the geometry is always being instanced, not only when rendering the cubemap