Realistic Lighting in the Godot Engine in One Click
Vložit
- čas přidán 21. 08. 2024
- Out of the box default lighting in the Godot game engine is
- confusing
- not very good (IMHO)
Today we look at an add-on that "fixes" this, by instantly creating reasonable default lighting for you.
In this video we look at why the default lighting system in Godot is flawed and how the Instant Realistic Light add-on can fix this.
Links
gamefromscratc...
The level used in this demo is from this Humble Bundle:
www.humblebund...
-----------------------------------------------------------------------------------------------------------
Support : / gamefromscratch
GameDev News : gamefromscratc...
GameDev Tutorials : devga.me
Discord : / discord
Twitter : / gamefromscratch
-----------------------------------------------------------------------------------------------------------
Links
gamefromscratch.com/instant-realistic-lighting-in-godot/
The level used in this demo is from this Humble Bundle:
www.humblebundle.com/software/epic-environments-mega-bundle-unreal-engine-unity-bundle-for-fantasy-worlds-software?partner=gamefromscratch
-----------------------------------------------------------------------------------------------------------
*Support* : www.patreon.com/gamefromscratch
*GameDev News* : gamefromscratch.com
*GameDev Tutorials* : devga.me
*Discord* : discord.com/invite/R7tUVbD
*Twitter* : twitter.com/gamefromscratch
-----------------------------------------------------------------------------------------------------------
I think the whole fake environment in editor is there for when working with 3D scene that are meant to be instantiated.
Having a false environment and sun allow to work on that scene without having to create a temporary environment for it.
Thats 100% it. I was going to post the same comment lol
thanks for talking about my addon ♥
Nifty work!
Very nice work, my friend!
i think you can click the 3 dots near the environment and add them to the scene 2:03
You know what, I don't think I was aware of that feature. Do you know what version it was added in?
@@gamefromscratch i think it released with godot 4
I have updated the linked article to include this information. Was a complete oversight on my behalf.
@@gamefromscratch I think it's been there since at least 4.0, it was just one of the smaller scale improvements that got lost in the flood of new stuff.
The specific steps, in case anyone is interested, are: click the three dots to the right of the buttons above the viewport, click the two big buttons at the bottom of the panel that pops up (add environment, add sun), and a sun and environment that match the look of the preview lighting will be added to the scene. You can now tweak them by selecting them in the scene tree and changing their properties.
@@gamefromscratchTo add insult to injury, there’s a modifier key (shift or ctrl maybe, can’t remember) that will add both at the same time. Like if you click “Add sun” with the modifier held down it automatically adds the environment too. Saving one more precious click :)
This option was intended to avoid having lots of environment and lights pop up when you load in other scene. For example while working on a model scene, such as a house, you don't want to had an environment and a light just to see it properly or inspect material, since when you'll load that scene into your main level scene, it's gonna add both another environment and another lights.
Having a toggle option in the view port address that issue and it was mentioned before, clicking on the three dot menu next to the light toggle gives you access to the environment and light options as well as a button to had those exact settings to new environment and light node in your actual scene.
I was actually 100% unaware of the ability to load the default environment using the Hamburger menu. That does go a long way to replicating the functionality of this add-on. I have updated the link article to include details on populating the world environment.
I still think the workflow of "why doesn't my scene match my editor" is 100% valid and this doesn't address that, especially as a first time user.
@@gamefromscratch You can also set up a different default environment for all projects that loads automatically in Project-> Settings-> Environment.
Edit: I think it's for all Scenes in current Project, not all Projects.
you can click on the three dots and add lightning and environment as nodes, but this addon is really amazing because it makes additional changes to the environment and lightning and even adds reflection probe node to make it look better than the default (notice the change in shadows for example and the added fog). Otherwise, you have to play with parameters until you reach your desired graphics.
Yeah I updated the linked article to reflect that capability. I honestly was unaware this was added. I do agree with you, the add-on still makes the default environment better.
@@gamefromscratch yes it's hard to figure out tricks like that in godot without reading or watching a tutorial about it.
For Godot I want instant Sylized lighting. but i am soo happy to see Realistic lighting.
It'll get more eyes on Godot and that'll get Godot more funding and that means becoming the industry standard for indie's to go to 🙂
I also want stylized lighting. I'm looking for a way to change shadows to a purple-ish/blue-ish tone.
Talk about counterintuitive - the opposite of wysiwyg -> wysinwyg. And there is no excuse for the developer - the output must be identical to what you see in the editor.
"the output must be identical to what you see in the editor." That sounds nice until you start working and need to cut off the effects and such and only want them outside editor though.
All you need to do is click the three dots next to the preview buttons and click add to scene
Hmm lighting still looks kinda meh
Only Godot game I've seem with actually good looking lighting is Road to Vostok.
If I were leading Godot development, I would hire that guy to create a lighting tutorial.
Q-Cards
We purchased a Booklet maker and will be making a Booklet of Q-Card with settings for various lighting and environmental effects.
ARC Notebook System and we are scouring the web for info to make the cards for referencing settings while we adapt to GODOT.
We (four of us) are switching from Unreal Engine to GODOT.
We are also looking into switching from Windows to a distro of Linux to get away from AI and data collection.
Subscribed and Thumbs Up, I will tell the other 3 about your channel.
yeah, they should give you a default environment and allow you to adjust it.
Problem is that many scenes are containers (like prefabs), and should not contain any added environment, as they are instantiated into other scenes. You usually only want those environment settings in the main scene.
Cool addon! Yeah, the preview lighting is there so you can work in other scenes and have them lit in a previewable way, without needing to add the world environment etc to the scene that shouldn't really have one (example: a character scene or a weapon scene). Similar to how you wouldn't want to add a directional light to your UE blueprints or Unity prefabs). You want to add such scenes to one that handles all that.
It uses sdfgi that doesn’t work great with orthogonal camera
HDDA is coming in 4.4 which fixes all those problems as it replaces sdfgi
@@sean7221 Replaces it? I hope its at least as good as SDFGI then. Else they should have both methods.
RTX 4090 GPU???
Tried this plugin, and oh my lord does it cause in-game lag.
Well, I think we all learned something new here today, and that's a good thing.
That addon really should enable SDFGI occlusion.
Unless you are in gothic2, its not realistic
For the time, Gothic 2 had good lighting.
Yeah that was an overlook to not use three dot button
Having realistic environment in Godot is difficult because of the way it handles shadow-casting lights, they aren't cheap.
True though you can optimize them more with shadow fade (point and spot light) and the new tighter shadow culling
I suggest a new scene should automatically include a new World Environment, and turn those toggles off by default.
Questionable usefulness.
If you're a complete noob you'll google your lighting issue anyway and will either stumble upon a video like this or a video on how to set up a world environment yourself.
Both will probably take the same time to watch/execute but adding the env yourself you will at least teach you some of the settings whereas the addon just does some magic without explanation.
Mike, Godot 4.3 getting web export related update.
Love your vids, but I feel this one is a bit of a skill issue rather than a ui issue. Those previews are wonderful for when you're working on something similar to a prefab in unity. Say a house or a player character, they give you the ability to see those scenes better even though those scenes may not have their own lighting and environment. When you're working on an actual level, you should turn them off, and add in your own lighting and environment to the scene.
This addon definitely isn't useless, but as all it's doing is adding in the directional light, probe, and environment for you, it's really only going to save you a few minutes one time per level, if that, since most likely you'll want to tweak all that stuff for style and performance anyways. By the end you'll most likely have spent the same if not more time downloading and messing with the addon than you would have if you'd just gotten to work on the level in the first place...
I understand new users being confused by these previews, but I do think it's ultimately a really small issue, and just a few minutes of googling should easily resolve it for you. As well, those few minutes of googling are going to be a lot more beneficial to a beginner than trying to find a work around for a non existent problem, that only really serves to take away some of your creative and optimization control of the project, in return for slowing your learning of the engine.
And lastly, I do agree that the default lighting and environment settings are pretty awful. They're clearly designed for maximum possible performance out of the box with no care for how it looks, but when compared to something like unreal, it makes the engine look weak or toy-like which is a bad look in my opinion. Of course, you can(and should) always create your own default environment, of course, doing so renders half this addon useless...
There are a couple of competing issues here.
First, Godot divides scenes in subscenes and you're often editing a subscene that is unlikely to have lighting, and thus you're presented with a black screen. That is what the default lighting in Godot is for, and it's default lighting that may not even match the lighting in whatever scene the subscene you're editing is a part of, and Godot has no idea where you intent to use your subscene so it can't really know.
Second, Godot doesn't just do 3D games, it also does 2D games. Godot 3 actually worked exactly as you stated, there was a default environment that Godot automatically created, and it would be applied to your game if you didn't specify a world environment in your scene... but these things come at a cost because all of a sudden, a whole bunch of 3D pre-work was applied even in 2D Godot games. If you didn't know this, and knew that you had to turn all those beautiful 3D features off when making a 2D game, you would loose performance.
Third, having the default lighting apply is great for the first hour you use Godot, but the further you get, the more you start getting into situations where you become uncertain where a certain setting is coming from. Suddenly your lighting looks wrong, you don't get why, and suddenly you realise that when a certain level in your game loads, you've forgotten to set up something, but you didn't notice it at the time, because the default lighting hid the issue. Right now when the level loads, there is no environment, there suddenly is no light, your scene is all dark or maybe even black, you know what you've overlooked.
Now don't get me wrong, I totally, totally, totally agree that the current UX is a compromise that is very unfriendly to new users. The point I'm trying to make is that every suggestion I've heard over the last year, solve just as many existing problems as they create new problems. And that I think is the real issue here people forget, they only look at a solution solving the immediate problem and going "AH THIS WORKS, WHY DON'T THEY ADD THIS!?!?!", while likely after we would add this, we would have just as many voices come up who are negatively effected by the change.
Just for context, I "hated" when we removed the default environment, I understood all the reasons why especially with all the added logic in Godot 4 that would be disastrous if turned on by default while your 2D application needs none of it.
But in the early Godot 4 alphas we didn't have any of the nice controls over the editor environment nor the ability to click on a button and copy the editor environment into a scene. It took so long to unlearn old habits and things you're used to.
Today, I'm loving the changes, the way the environments are structured, that I can edit scenes with default lighting BECAUSE I'm working on an eerily dark world where the actual lighting of my game would be horrible for the editor experience.
The idea that the solution is not to ask if a person is making something in 2D or 3D before making a project and using sane defaults for that, but instead to just confuse users by default because they might get confused is wild to me lmao.
@@DMitsukirules again, seems a simple answer, yet in practice runs into problems. Many projects mix both and now you’re stuck with a choice you made in the beginning.
Invariably, you make one thing easier, and another harder, you please one group at the expense of another.
Again, don’t get me wrong, it’s a valid suggestion worth discussing and deciding if the con’s are worth the improvement of UX if we get it right.
The thing I want to highlight is that we have to look at solutions both from the perspective of what they improve (which is often obvious), and what they make worse (which is often hidden) because that is how the current situation came to be.
Godot 4 works the way it does because it tackles complaints people had in Godot 3, implementing solutions that back then were presented as the improvement to UX. And indeed it resolved exactly the issues people had, but introduced new ones we’re now discussing.
That is the cycle that needs to be broken, we need to look at the drawbacks of the presented solution, decide those are acceptable. Else in a few months time we’re back to reacting on videos that highlight the drawbacks of the new solution.
Sometimes the best solution is simply to properly document a feature, accept that new people may have a suboptimal experience, so that people who work long time on a game have the flexibility they require to actually reach the finish line.
@@BastiaanOlij Unfortunately Bastiaan what you say really really doesn't make any sense. You say "in practice in doesn't work" as if Godot Foundation is actually dogfooding the engine to see what are the real problems. People are clearly communicating their experiences with you but you just dismiss it for an arbitrary reason like "Many projects mix both and now you’re stuck with a choice you made in the beginning"
What is so hard to get when people say "Godot should have GOOD lighting out of the box" Literally every engine can do this perfectly and in a very user friendly way. All I am hearing from Godot team is buzzwords buzzwords buzzwords.
@@zuulmanra just to be clear this is my personal take on this issue.
All I’m doing here is highlighting why things are where they are today. And much of that is because feedback is taken onboard.
That doesn’t mean we don’t try and improve, or try to find better ways to do things. But after writing software for 35+ years I’m keenly aware that no solution is perfect, especially in game development where everything is a compromise.
In the 7 years that I’ve been using Godot and seen solutions come and go, and seen people raise PRs to try and tackle this, and seen what breaks…
Yes we can default all settings set to the max and make Godot look pretty just like what gamesfromscratch shows in this video and make it closer to unreal, but thats going to give a bad experience to many developers who are on low end spec machines and chose Godot for that exact reason because unreal isn’t meant for the types of games they make on the types of platforms the target. And that currently is the majority of the user base.
I deal with this right now as an XR developer where we work on mobile hardware that isn’t powerful enough to run any of those things and the first thing we tell people is, turn these things off!! I don’t want new XR developers to be scared away the first time they start Godot because we have defaults that only work right on desktop GPUs. So my needs in this case are in direct contrast to yours.
Who gets to win that argument? Whatever we choose to do, it will just be a different group that is adversely effected.
Does Godot have realistic, smoothly blurred penumbra-shadows?
Not that I've seen. The shadows are of rather low quality and the blurring is dithered and not smooth. Hopefully it gets some improvements in the future. As well as SSAO as I think it's terrible in Godot.
@@odo432 Ok, thank you. I'm looking towards Godot, but the 3D component in this engine is developing very slowly.
Only if you use omni lights with range more than zero or something like this. There's a way.
it does actually.
I tried it
@@udese730 That's great to hear. Mind sharing how it's done?
The godot renderer is funky looking
There are many more options that can be activated, to make it look good. The defaults are very simplistic.
Usually while cteating new 3D scene instead of special node I start with world environment node
Raytracing when
Probably next year, though the dreamy eyes are end of this year but that deadline is not going to happen.
👍
Epic is smart enough to enforce some more pleasant looking default settings in Unreal. Something Godot and Unity do not understand. Its often the first appearance, the environment beginners work in, that is making the biggest impression. Experienced users can just throw it out if needed.
And performance?
@@saulsantos4132 Performance is a function of developer experience. A beginner has none. And some added effects will not tank the performance, and can be turned off when nessecary.
Not having default lighting until you configure it is the same as not having physics until you configure them, it's a bad idea.
Well it's Godot so I'm not surprised that it is confusing and looks like shit
Going by the absolute pigswill on your channel you shouldn't be let anywhere near any engine.
@@Cleefbag71 Another Godot cultist detected
@@Cleefbag71cry some more.
@@Cleefbag71 oh no godot elitists (cultists) decided that you are not worthy of any engine!!111!1 lmao
@@Cleefbag71 i just realized you have marx in your profile picture LMAO
Looks nicely impressive to be honest
Edit: well shit i judged it pretty much earlier before i watched few seconds of the video well, my bad
looks shit to be honest! ever heard of unreal engine?
@@bingofleetwood6291 yes? i just judged too (much) early i should check again
If you really consider this "impressive" you need glasses. I am not talking about the addon btw the addon is a nice tool. I am talking about the Godot's lighting.
Well shit i pretty much judged early (i writed this comment earlier but CZcams decided to delete it
@@zuulmanra i was referring the addon instead of lighting because just i thought addon was nicely good
comment about more generative AI tools that can help game development more easy, like deepmotion that generates 3d animations
It is possibly because they don't expect people to use default lighting in their game. However you wouldn't think it is too difficult to just add it by default.
You can press the pree dots next to the two icons for sun and environment he toggles, there are buttons to add them to your scene with all these settings with just few basic buttons to give you AO, GI and such so you don't have to know it all straight but can enable/disable it or add it quickly while you work.
Automatically adding in godot would not be reasonable. In godot you can play any scene, literally you will open your asset scene and play it, character scene and play it. Eventaully you would end up with tens/hundreds of environment nodes everywhere or would have to delete them every time you press the play button in any scene. This is not a simple thing to solve since godot is built around scenes and their combinations to offer a lot of freedom.
@@ViktorsJournal Godot could ask the user to add the environment to the launch scene, just as its already asking to add the current scene as starter scene when none is set. This would avoid a lot of confusion for beginners.
@@vast634 It would need to do so for the lighting as well. But yes it's an option. But confusion would stilll remain, when you run the other scenes and not the main scene you still need environments so the users would get to an issue of possibly thinking that they might need an environment for every scene which is not ok too.