Omnidirectional Light or Point Directional-Light - Trying to achieve realistic solar system lighting.

Hello!
I am in the midst of learning unreal engine and I must admit, my project is quite heavier than i thought but nonetheless i wont ive up just because of a few setbacks, this is a passion project regardless
I am facing a few challenges right now. I am currently developing and fairly realistic (semi-to scale) solar system I call Sol-B, it has 6 planets and a thousand problems right now. My biggest challenge is the lighting. Currently I made a artificial central sun in the center of my solar system which gives the entire scene lighting via a point lighting. The issue with using this point lighting is that I cannot render a proper atmosphere for these planets using a sky atmosphere. These sky atmosphere were placed inside the blueprint class of my planets and scale just right to fit very well and I admit, it looks amazing IF I use a directional light. The issue is sortve obvious now maybe?
I cannot use directional light because it would mean some planets day/night cycle is completely messed up.(Shown in bottom half of image)
I am trying to achieve the first half of the image (top half) where the light disperses all around and the sky atmosphere will be able to display correctly. (Second image)
I have thought up of 3 ideas that in theory could work but in practice, I am not skilled enough to know how to do or it simply doesn’t work…

Option 1: Use a directional light and somehow find a way to remove the restriction of having it only display in on direction and make it omnidirectional and shine all around, thus all planets atmosphere will show.

Option 2: Use a point light and somehow find a way for it to work similar to how a directional light works but only in that, its able to work with sky atmosphere.

Option 3. Use a directional light in all the blueprint classes of the planets, do some math and blueprint work to have the directional light simply face the planet depending on its of the sun. This comes with a limit, UE5 only allows 1 directional light and so to work around this, I will have to add a collision sphere large enough for it to detect when a player goes in and out of it to load and unload the directional light and sky atmosphere of another each planet. When you get to a certain distance of the planets, they load and unload based on how far you are, So for example, when i start getting within a certain distance to planet 1, planet 1’s directional light and sky atmosphere will load up while every other planet will unload. This will allow me to bypass the limit of the 1 directional light issue.

I know this is alot to take it but im smashing my head against walls here and want to insight and maybe even better more easily achievable solutions. I have tried extremely hard to do some research on this and even had different AI models walk me through, step by step for some solutions and still to no avail. What would you guys do? And if possible, how would one go about doing any of the proposed options accurately? Sources and Links to help me learn would be VERY appreciate~


Where you able to solve this? My star’s light doesn’t even reach my planet.

A point light is really 6 directional lights oriented along the faces of a cube. This is why they are proportionately more expensive… Make one for yourself in the same manner.

THERE ARE 4 6 LIGHTS!!

I’m also struguling with this, the directional light origin point cannot be changed as it is designed to be omni directional from a far off sun…. that works it all other situations but when trying to create a realistic sunlight situation in a Solar system scene it if infinitely useless as a “far off sun” I wish I could change the origin point to be my solar system sun and then problem solved.

I don’t really understand why it can’t be changed really, it clearly does have an origin point in a specific direction because my planets are catching light in one direction… the direction of the light origin….

I’m wondering if there is something in the C++ side of things that can change that origin point.

You are prolly best-served with making this proportional, but all to scale. Don’t make it 98million miles (give or take) wide, make it 98,000 or 9800 UNITS wide, and just scale everything down to that. If you need a ship to go to mars, just make it move really slowly, per the scale of whatever you make.

I suggest this as the Light in the engine isn’t going 98million miles, but it WILL go 100k units if you tweak it, up tracing distance, far-shadows, etc; and keep it within the mathematically-workable domain of the engine.

9800 units would be easy enough, right OOB, but admittedly you might need to tweak exposure values, etc.

If you CAN get away with scaling it down in any way, just do that.

this was discussed multiple times already. i can’t find the thread where i explained it. you basicly fake the solar lighting with a mpc for the light vector in the center and compute the lighting manually in the “planet look from space” material. when you get close to the planet you fade out the space lighting and make the directional light point at the planet’s center. works pretty easy for a sun centered map. if you make it a planet centered map you’d have to compute the offsets of the solar center. but it’s the same light switch method.

1 Like

I was spitballingin my head and had much the same idea, that from-space you can sure do one-thing and fad to another, in my case was thinking you could just manually move the lights to be relatively-close to the planet you are on and not have to worry about distance?