Lod CrossFade in Graphics Resident Drawer

I’ve checked Fantasy Kingdom example and LodGroups have enabled Lod CrossFade, but when I move camera LODs switch instantly. Does Lod CrossFade work when Graphics Resident Drawer is used? Or CrossFade isn’t supported like in Graphics Entities?

I have exactly the same question. Does it even work in this mode? @Matjio

It seems it doesn’t work, because when I change GPU Resident Drawer from Instanced Drawing to Disabled then Lod cross fade works. Without Lod cross fade feature, we have very noticeable lods popping, so Graphics Resident Drawer is unusable in a real game.

4 Likes

We definitely need some clarification: Is this a bug, or does LOD CrossFade not work in the Graphics Resident Drawer?

1 Like

Can somebody from Unity comment on this issue please? @jonabali @oliverschnabel @Jonas-Mortensen
So we at least know if it’s a bug or expected behavior. If it’s expected maybe you can comment when LOD cross-fade will be available with Graphics Resident Drawer.

We can’t update our project to 6.0 version if it looks worse because of LOD popping.

3 Likes

Thank you for feedback.
Cross-fade works with GPU Resident Drawer but animated cross-fade does not currently.
Unfortunately, animated cross-fade was enabled on the Fantasy Kingdom project by mistake. So we will disable it.

Could you provide more information about your scene?
LOD Group might use cross fade or animated cross fade, depending the option you checked.

I have a scene with trees and previously I’ve used Animated LOD Cross-Fade so trees LODs switched smoothly.

With Unity 6 I want to do this smooth change with GPU Resident Drawer. Now I’ve tried disabling animation check box and if I setup fade transition width, than LOD Cross Fade works with GPU Resident Drawer, but it shows two LODs of the tree simultaneously and it looks worse than before. It’s great that this type of smooth cross fade works, but Animated type is better.

Do you have any estimation when GPU Resident Drawer will support animated cross-fade?

I do not have an estimation but we are currently looking into this matter. We will provide more information as soon as possible.

2 Likes

Hi! Also, when using the Resident Drawer, the ForceLOD function doesn’t work at all. I had to write my own ForceLOD implementation. Could this be related?

Any news about this issue?

ForceLOD compatibility with GRD is not related to the animated cross-fade compatibility with GRD. But we are also looking into when we can plan both this improvements.

Hello, any update on this topic?
Please @Anne_Daney ?
It has been almost half a year since it was reported and GRD introduced to Unity 6.

Also looking for an update if possible.

I just upgraded our project from U2022.3 LTS to U6 and I was amazed at the instant performance gains after enabling GPURD - but sadly the entire world is now popping like crazy as trees transition from mesh to imposter and back.

Hello Anne, please is there any update on this topic?
Unity 6.1 is already released and this issue is still not fixed. It is quite crucial part of modern graphics and it has been broken since Unity 6 is out. Do you have any ETA when this will be addresed?
Also how this topic can be marked as solved when the issue is still persistent?

The solved state for topics doesn’t necessarily imply that the underlying issue has been resolved but can just mean that the topic has been answered with a reply that provides relevant information. OP, Staff, and TL3 users can mark posts as the resolution to Question, Bug, and Feedback topics in order to highlight them. This can be updated at any time if new information becomes available.

Hi everyone,
Thank you for pinging me. I read the different messages and just to make sure we are talking about the same thing, I would like to do a little recap as well as providing an update.

“LOD Crossfade”, “Animated LOD crossfade” and “Force LOD” with LOD Group are still working.
The opt-in feature GPU resident drawer added in Unity 6.0 is not yet compatible with “animated LOD crossfade” and “Force LOD”.
And those feature requests have not been planned yet.
But “LOD crossfade” works with GRD.

We have though worked on making sure that if the feature you want to use with GRD is not compatible, it will revert to the previous path automatically.
So your project won’t break if you upgrade to Unity 6.X.

it has been broken since Unity 6 is out

@SwenSVK did you notice issues when not using GRD? Or are you talking about making these features compatible with GRD?
@mgeorgedeveloper did you try GRD with LOD crossfade or animated LOD crossfade?

I switched over to LOD crossfade and it works. It would be nice to have animated crossfade.

BTW from a technical point of view, how does this even work at all? If the data is persistent on the GPU, is there a special buffer that is dynamically updated for all instances in the middle of a crossfade zone?

Ah, so this is again one of those heavily marketed but actually unusable in a real world features in Unity, understood

It’s actually very funny how you’d managed to break a function worked for years, yet didn’t notice it, make a demo with that being turned on, then pretend it’s not a big deal and actually was somehow planned - we just forgot to tell you. There should’ve been at least a warning on LOD Group component, that Animated Cross Fade isn’t supported when Resident Drawer in use. That was clearly a bug, but you preferred to close the ticket and say it’s a feature request lol. Yeah, a request to fix a feature that you broke. And no, regular cross fade by distance doesn’t fulfill it, because of additional perf hit and smearing artifacts becoming more obvious.

Unfortunately, not being compatible with animated cross-fade makes GRD unsuitable for many projects. Constant LOD popping looks awful and is a big visual downgrade. I can imagine it’s very challenging to implement it, but it should be realy the number one priority for GRD.