Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
193 stars 9 forks source link

Global scene lighting shifts during certain actions #706

Open shiftyscales opened 4 years ago

shiftyscales commented 4 years ago

Observed by ProbablePrime, H3BO3, reactant, myself, and others, occasionally the scene lighting will shift during certain actions. Among places I've noticed it occurring are when spawning in a video player, opening up an inspector window, spawning a Logix tip from the inventory, etc...

It doesn't occur consistently from these actions- it seems to usually be a one-time shift.

It might be tied to joining a new session that has a different skybox.

I've also suspect this is related to the optimization implemented a while back in which skyboxes don't update every frame from build 2020.4.10.1217 as that is about when I initially started noticing it occurring: - Reworked global (skybox) reflections to only update on skybox changes, saving up a lot of CPU overhead for rendering them every frame

A world I've noticed this occur on often is Aegis' Blueshift peaks- but I believe that is because his skybox has a very red hue, so it's a very noticeable shift when it happens.

By using a test world with a really exaggerated tint, exposure, etc., I've observed the values stays applied to the world you switch to for a half second before updating to the proper tint, exposure, etc. values of the skybox as the scene is loaded. So far brute forcing switching between worlds hasn't replicated this issue.

I have brute-forced the issue by switching skyboxes repeatedly in Aegis' Blueshift peaks world. A couple of sample screenshots depciting slight variance in scene lighting in some worlds the effect can be much more pronounced:

image image

This issue also happens separately for users, each user can be affected by it at differing times by different actions.

H3BO3 commented 4 years ago

I have a potential lead to this - Sometimes I've noticed that occasionally, when my theater screen in my homeworld has no video playing, and the videotextureprovider is blank, a random image asset in the world will sometimes show up on the screen. Perhaps this is due to references being shifted? I'm really unsure what causes it but it happens every now and then. I'm not sure if something about the projection360 material is getting assigned some kind of "phantom" tint in the same manner, but it's definitely global illumination being seemingly offset somehow. It also seems to happen somewhat often when a user joins the world.

shiftyscales commented 4 years ago

I've had this happen extremely frequently when pulling out a Logix tip suggesting a potential connection there now that I'm looking at it closely. Perhaps when certain materials are loaded?

Frooxius commented 4 years ago

Thanks for logging this. It's definitely not an optimization, it's a bug that's been there for a long time. I've tried fixing it a few times, but it's a bit trickier, because it's really hard to replicate.

Neos updates the global illumination in the world anytime the skybox changes (though there's a delay, because it's an expensive operation), I think in some cases it doesn't time correctly, so it calculates it with still the old skybox data.

I'm kinda leaving this one for when I work more on the integration with the graphics pipeline and I'm messing around with those bits to make it easier to diagnose and fix this.

@H3BO3 That's definitely not the case, the tint is unrelated to textures and that would be obvious on the skybox itself. The video player thing is likely internal error of the plugging not overwriting/clearing some old texture data in the video memory.

H3BO3 commented 4 years ago

What if the skybox never changed in that session? What "old" skybox data would there be?

shiftyscales commented 4 years ago

You always have skybox data from other sessions, e.g. local home, cloud home, etc. @H3BO3.

There definitely doesn't need to be any major priority on this issue, especially if you've already tried to look at it before. It comes up often enough- but when it does, it's usually just a very minor visual distraction. It would be good to get the chance to look into it later though, yeah. 👍

TehTurk commented 4 years ago

Was this ever resolved @shiftyscales ?

shiftyscales commented 4 years ago

This isn't resolved, @TehTurk. It's a known issue/one Frooxius is aware of. It'll likely get fixed around the time we switch rendering pipelines, whenever we fit that in.

TehTurk commented 4 years ago

Ah okay then. I was going through some of the recent issues to either cat them or like clean up. Thanks for the headsup