minetest / minetest

Luanti (formerly Minetest) is an open source voxel game-creation platform with easy modding and game creation
https://www.minetest.net/
Other
10.77k stars 2.03k forks source link

Volumetric lighting support? #6309

Closed brylie closed 6 years ago

brylie commented 7 years ago

It would add ambience to Minetest worlds if the game engine had (improved) support for volumetric lighting. What are considerations related to adding volumetric lighting support to the Minetest game engine?

For a good example of a build that could benefit from foggy light effects, see Richard Jeffries' Concert Stage Setup video:

[Richard Jeffries' Concert Lighting Build](https://youtu.be/ncT0kPagOzc)

https://youtu.be/ncT0kPagOzc

srifqi commented 7 years ago

We already have fog in Minetest, maybe we can implement in such a way to make it now based?

Another possible way is to register a node which has foggy texture. But I haven't ever tried that.

Nice idea, BTW.

paramat commented 7 years ago

Beams of light could possibly be done in some hacky simple way, a fork of MT is working on this for sunbeams but is probably not true volumetric lighting, and sun-only makes it much easier to simulate.

True volumetric lightng would require a completely new lighting system, which has been discussed a lot in MT but is known to be a very difficult and big task, and we have a lack of core dev time and have many higher priorities.

brylie commented 7 years ago

Yeah, time constraints and higher priorities are understandable.

As an aside, might there be an open-source game engine that Minetest development could be aligned with? I.e. a fuller-developed game engine might give the game a boost in many ways, while allowing MT developers to focus on game features/mechanics.

Calinou commented 7 years ago

As an aside, might there be an open-source game engine that Minetest development could be aligned with? I.e. a fuller-developed game engine might give the game a boost in many ways, while allowing MT developers to focus on game features/mechanics.

Unfortunately, an engine switch is not going to happen (it would be too much work, and even if it was possible, it would be an entirely different game, thus it wouldn't be Minetest anymore), not to mention that Minetest doesn't really aim to provide fancy visual effects (much like vanilla Minecraft, in fact).

While Irrlicht development is mostly stale by now, it was the one of the best options when the game was in heavy development, back in 2010-2011.

brylie commented 7 years ago

One example of an actively developed, open-source voxel world engine is Terasology. There may be some opportunities for the Minetest and Terasology communities to work together.

All I am asking us that we have a constructive discussion about the possibility of working with another voxel engine community to improve aspects of the Minetest game.

paramat commented 7 years ago

might there be an open-source game engine that Minetest development could be aligned with?

No, we want to do things our own way, and alignment would be a disruptive nightmare for both games.

I.e. a fuller-developed game engine might give the game a boost

There are none, MT is by far the best and most developed free open source voxel game, we all consider the others inferior (because they are).

while allowing MT developers to focus on game features/mechanics.

You're only suggesting this due to the lack of the more fancy visual effects. The other project won't want to give up their focus on non-fancy-effect aspects, why would they? And we would want to make our own fancy effects. We have some contributors interested in, and working on, shaders and i hope we get some more. I suggest you learn C++ (it's not difficult at all) and start working on shaders for MT.

brylie commented 7 years ago

we want to do things our own way, and alignment would be a disruptive nightmare for both games. MT is by far the best and most developed free open source voxel game, we all consider the others inferior (because they are). You're only suggesting this due to the lack of the more fancy visual effects. The other project won't want to give up their focus on non-fancy-effect aspects

Frankly, these responses are a bit hostile and speculative. In other words, not very constructive.

rubenwardy commented 7 years ago

I've responded to a few offtopic things in #6322. It would be great if we could keep Terasology related discussion there.

paramat commented 7 years ago

Not hostile to you personally, it's attacking ideas, not people. I'm being realistic.

For each light source, volumetiric lighting is considered to send out rays, the volume around it is then split into 3D lit and unlit volumes (shadow map), then each view-ray from the player gathers light as it passes through these lit volumes. This is intensive for even 1 light source, which is why it is usually only applied to the sun in games. Applying it to multiple light sources as yu imply in the first post is out of the question.

So i'll assume this is a request for sun-only volumetric lighting. This is easier because the sun can be assumed to be at infinite distance so all rays are parallel. That may still be difficult and a big task that may require a new lighting system, because it is so close to hardware-lighting using the sun as a light source and creating shadows. Here's what our light expert says on IRC:

16:48 juhdanad   What is volumetric lighting? Rendering light cones?
16:52 juhdanad   The main problem is that the current lighting system does not handle directional light.
16:52 juhdanad   In Minetest light has no direction, only intensity.
16:53 juhdanad   I'm just saying that if you want a light cone that can be stopped by nodes, you have to change the lighting system.

We might be able to fake it for the sun only though, as a MT fork is. So sorry for my 'possible close' label, i'm just wondering exactly what you are requesting? Sun only or multiple? Precise or faked?

brylie commented 7 years ago

Well, the original inspiration was a comment on Richard Jeffries' Concert Stage build. E.g. it would really add ambience if the stage lights cast directional rays/shadows. So, the idea would probably be somewhere along the lines of multiple directional light sources in the world, but I am not sure how much precision would be desirable.

brylie commented 7 years ago

I understand that the requirements might be substantial and not realistic (in terms of likelihood to be developed). I just wanted to open the discussion about what seems like a nice enhancement.

juhdanad commented 7 years ago

Have you considered changing the lamp's model so it would contain a translucent light beam?

brylie commented 7 years ago

@juhdanad that is an interesting idea. A 'stage lighting' model with a translucent light cone might add nice effect.

paramat commented 7 years ago

Also placed lights can be coded in lua to add a column or row of translucent 'airlike' nodes that themselves give off light (and the beam is removed when the light is removed), these would look like beams in fog, in a crude way. There's a mod that does this in the forum. I'm fairly sure volumetric lighting from multiple light sources would be too intensive to be worth doing.

paramat commented 7 years ago

Mulltiple is not doable. Requesting single-source volumetric is fine but is essentially requesting a new lighting system, which is highly unlikely for years, so i can't see much point keeping this open. A new lighting system is often discussed and was planned at one point, we won't forget about it and if it is done will be done for reasons other than an opened issue.

paramat commented 6 years ago

Closing for reasons above.