Download

Best approach for having multiple large maps each with its own skysphere?

I need to setup large landscape maps and each one would be a planet surface. The skysphere must be unique for each one, so a different planet with its own solar system, multiple suns and moons and so on.
The standard basic skysphere blueprint example has its sun outside the skyshere so the light is affecting a large area of the UE4 world… even if I place another landscape far away with its own landscape from the first one I would still be getting light from any star/sun light that way, right? Should I add an opaque very large box (or a large dark sphere) that would include suns/moons inside itself along with the skysphere so that the suns/moons light would not get out in the world?
What is the best approach for having each large landscape map set as a level with an initial persistent level that could even be another smaller area (maybe just inside a spaceship) but with a skysphere for deep space environment instead?
I thought about creating a large map with a custom skysphere for each planet scene and so having the skyspheres/levels/planets each placed at a distance in the UE4 world but where to place suns/moons so that are vieweable only from inside a single skysphere then without affecting the others? From inside a skysphere in a landscape/level I would need some planets/stars to be viewable but not in others.

Unreal Engine is quite limited, it dosen’t have a Volume Bounds Sky Sphere to allow you to set up multiple skyspheres in the unreal universe so when the player
walks into those sky spheres you get different skies showing up for each planet. There’s no Transition Sky blend node but you can always put Atmosphere effects
around the planets to make it look like they got sky and then fade to black when you start to land down on the planet and transport the player either down onto
the planet or just load the planets map then fade the screen in to show the planet’s map and skysphere. Or have a shield or some other display showing while the map is still busy loading.

Well, I don’t plan on having the player move from one landscape map/level to another simulating flyover and landing, switching between levels would happen by teleporting probably using intermediate levels for additional environment scenes.
BluePrint SkySphere like the Epic Games example in UE4 have a directional light as the Sun at a far distance. I need that Sun (or more suns for custom modified BPs) to be viewable only inside a single skysphere and not from another one that I would place at a distance with then its own sun (and then planets and so on). So I thought about adding another giant sphere that would not have to be transparent enclosing each skysphere with its suns/planets orbiting. Is that a correct approach? Would it be better to do it inside the BluePrint directly adding the larger second sphere? How to calculate the directional light actor distance to then calculate the needed size for the second sphere? Should I make a dark skysphere without transparency to achieve the effect ?
I would add another external fixed static directional light in the UE4 world to have the bigger dark spheres viewable from the outside in editor at least to select/modify objects properties… I would want each dark sphere with its own skysphere and landscape/level inside. So from the outside there would be these giant spheres each representing a world.

I see two problems right now I need help with to correctly setup the environment of multiple skyspheres with large landscapes as levels inside each one.
The directional light as a sun in blueprint skyspheres is placed very far away. How to know its distance? Can it be placed at a shorter distance from the skysphere?
And how to create a huge opaque sphere that would be reflective inside but with no transparency from the outside so that any sun/moon and the skysphere would be inside it and not viewable from the outside ?
In practice I need to have a set of almost Dyson spheres with each one having inside its own suns/moons/planets orbiting a skysphere that encloses a landscape/level.
What is the best way to set it up performance wise ?
Trying selecting a huge enlarged skysphere in the UE4 world it seems that the engine editor wise is not that optimized at allowing to edit huge size objects as far as I could see on some tests using the basic example projects.
Still huge skyspheres are being setup by anyone using very large openworld landscape maps.

If the Dyson spheres alike setup would not be possible to achieve then I think my other option would be that of creating a custom skysphere blueprint (although I’d prefer C++) with conditions to de-construct the skysphere and its suns/moons/planets unless it is the currently active level. Maybe it could be a cleaner approach although the Dyson spheres alike idea should work if UE4 allows to do it.

Unreal Engine can only render a certain number of resource elements, add in too many elements to render and engine performance
will be affected. I don’t think there are procedural skyspheres yet