Camera stacking for URP

You can find the sample here.
https://github.com/Unity-Technologies/UniversalRenderingExamples/tree/demos-camera-stacking/Assets/_WipDemos/3DSkybox

Itā€™s early January, 2020ā€¦ any estimates on the release date for this?

4 Likes

Camera Stacking landed on main code line for 2020.1 today. Iā€™m starting the backport to 2019.3. We have a 7.2.0 package planned for end of January that target to have Camera Stacking + several bugfixes.

15 Likes

Thank-you for the information! Looking forward to testing it out in 2019.3.

Good to hear that.
Few days ago I did the backport to 2019.3 and moved post processing to base cameras before overlay ones, but I didnā€™t know if thereā€™s any bugs from my modification since Iā€™m new to URP. I guess the official code could be more stable.

We are working on a way to let you choose where to run the post-processing in the stack. This will allow majority of required setups.

3 Likes

there are 4 days left to the end of January, I hope we will see camera stacking soon :slight_smile:

3 Likes

Hi, can I ask we get some clarification on what the actual is going on with this basic feature? Some info seems to allow it using patch from git hub, then theirs posts that that doesnā€™t work, then there cryptic posts saying ā€œWell you could code a solution yourselfā€ (like thatā€™s useful).

We need some clarification on when and how this is going to fixed? We need more information for these packages that seem very beta/alpha. Such as the road map page for the main engine, we need a full work down page (probably a wiki with tutorials on each version of the package) on these packages. For a product blocking basic feature that in the standard rendering was literally select an enum ā€œDepth Onlyā€, this seems like a major oversight.

I cant remember the last project that I didnā€™t need to stack cameras, and Iā€™ve been using Unity since version 1.1.

Rant over. Sorry.
Where is the info for this going to be fixed please? Thanks.

5 Likes

I dont quite understand do new camera stacking help with separate render scale for World UI (not only Overlay one)?

Its last day of januaryā€¦ can we have any update ?

Hey, to give an update.
Plan was that 7.2.0 was supposed to be released last week, but instead we had to release 7.1.8 (not much on URP but mostly required as we release all graphics packages in lock step) and had to delay 7.2.0. Itā€™s scheduled for next week.

7 Likes

Thanks for the updateā€¦ many of us are waiting patientlyā€¦

1 Like

@phil_lira will this Camera Stacking update in 7.2.0 also allow drawing to multiple displays/display buffers? (related to this issue ).

No. Thatā€™s a separate issue.

1 Like

Hi
Just read rendering order of Unity camera stack there: https://github.com/Unity-Technologies/ScriptableRenderPipeline/blob/release/2019.3/com.unity.render-pipelines.universal/Documentation~/cameras-advanced.md

Can you please add option to not perform cull operation for overlay cameras but only filter cull results of base camera additional there will be cull to filter previous results with frustum of overlay camera :slight_smile:

2 Likes

Thatā€™s is planned work for future versions.
We plan to support cache culling results, interleave stacking (to support cameras receiving and casting shadows from other cameras), and we need to add support to camera stacking in the 2D renderer. (and the upcoming deferred)

3 Likes

Nice to know Thanks :slight_smile:

Will all this be supported for 7.xx and Unity 2019LTS or new features will be only for 2020+ ?

1 Like

next week is already ending

3 Likes

I pulled down URP 8.0.0 from GitHub and added it to a copy of my 2019.3 project to see what I am going to have to do to get camera stacking working, and I have to say I am extremely disappointed with the usability of the new system compared to the default render pipeline.

My project involves several scenes each with several cameras that get turned on and off according to various criterion. Here was my workflow with the default render pipeline:

  1. Set the appropriate clear flags and camera depth on each camera.
  2. Everything draws as expected.

Here is what I needed to do to get my project working similarly with the new URP camera stacking system:

  1. Determine a base camera. There are several cameras that could become the base camera based on what configuration the game launches in.
  2. As I cannot directly assign overlay cameras to my base camera overlay stack (cross scene references are not allowed), I have to create a convoluted structure to, at runtime, have the camera that has been determined to be the base camera announce itself to all overlay cameras. These overlay cameras have a script storing their appropriate sort order and respond by storing themselves in a list on a script attached to the base camera (I canā€™t just immediately add them to the stack because of #3 below).
  3. Trying to access the camera stack on my base camera immediately when the game launches (even just to null check it) throws an exception, so I need to yield until the stack has been properly initialized, sort the list of overlay cameras based on sort order, and add them to the stack.
  4. My system now works more or less the same as it did in the default pipeline, but I can only preview how things will look in Play mode. In Edit mode, I need to set up the proper camera stack for a base camera in order to preview my full game and I need to do this every time as the cross scene references cannot be saved.

Am I totally missing something about the way to use the new system? If not, will a better solution to solve camera stacking with cameras in multiple scenes be released at some point? Is there a good reason why camera stacking in URP couldnā€™t have a front end as simple as setting the depth field in the old system?

9 Likes

Like many exploring the new 2D features from Lost Crypt, Iā€™m quickly realizing that URP doesnā€™t work with my project. After reading many threads on the topic, it seems like things ā€œmightā€ work upon the soon-to-be-released ā€œcamera stackingā€ features

When that releases, it would be awesome to see how to set up gameplay vs. UI in the new workflow. Hereā€™s a suggested example using Lost Crypt:

  • Thereā€™s a beautiful magic wand with all the visual bells and whistles that appears on the screen
  • Drag that to a inventory slot in your HUD
  • The inventory panel should always been in the corner of the screen, whether portrait or landscape orientation. The inventory panel shouldnā€™t zoom if the gameworld view zooms. In the built-in renderer, this would be a Rect Transform alignment to Screen Space - Overlay so that it doesnā€™t change size when the gameworld camera is zoomed in or out
  • All the wands visuals appear whether in the inventory UI slot or in the gameworld, or dragging between the two