I have numerous biomes in my game, one being hellish/molten. Some biomes can have their own skyboxes and I need a way of transitioning between them and the atmosphere, preferably fading current skybox out and fading new one in. If I cannot transition atmosphere, I can just have it change instantly, which may appear jarring. My main focus is TRANSITIONING SKYBOXES. I already have a zone system in place to check what region players are in and an atmosphere manager that can easily transition atmospheres (sounds, visuals, etc.) I am missing the skybox transition. I have tried everything, BillboardGui and SurfaceGuis using viewports, ImageHandles which do render above fog but glitch out, a physical inverted box with textures, even tried a beam! Fog simply washes it all out. If I set BillboardGuis or SurfaceGuis to AlwaysOnTop
, it begins to clip thru everything, not just the fog. I’ve looked and searched all of Dev Forums for a solution. I tried everything from these posts: Ability to layer and blend sky boxes for seamless transitions, Seamless skybox transition, Atmosphere transition, and more I may be forgetting. If this is impossible, maybe I can request a ZIndex and transparency properties for skyboxes or a RenderAboveAtmosphere
property on BillboardGuis/SurfaceGuis? (ALSO, I know this is possible without Atmosphere but I want Atmosphere!)
With your current constraints, no. However you could interpolate each pixel i suppose to the one that it should be (saved as a bit map?)
I could look into doing that. I just wanted an easy way of just fading between them. I have achieved it, without Atmosphere. Should I request custom properties/features to ease this issue? Such as Skybox layering or ability to render BillboardGuis/SurfaceGuis above fog?
I was thinking the same thing about getting a meshes center of mass, but oh we got that now with assemblies and I already had my own system written (it gets the verticies then treats each surface with its own density, in a sense.) What you would do is cast a ray for each pixel on screen (viewport to surface ray i think is the function) then check if that ray collidies with anything (origin, camera). The direction is the direction from the ratio of the position on the screen and the position on an imaginary position known as the near clipping frame, an imaginary plane in front of the camera which defines the field of view in a sense. That is how you can determine if something is in a skybox. (rasterization) speaking on determining what that interpolation should be I honestly havent studied skyboxes that much to know.
ALSO: here is the best method I have as of now
It breaks immersion and is jarring.
HINT: Remember we can create direction from 2 points, that being the near clipping frames point relative to the ratio of the current pixel position
I came up with a better solution that isn’t as jarring and doesn’t break immersion! If you focus too closely, it obviously will break immersion because you can see the lighting lagging behind to update. This is all done on the client btw
https://streamable.com/7xecao
the video isn’t loading for me… is there another way i can view it?