Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create global Lightmap Scale parameter on LightmapGI node #9577

Closed
MarkieMusic opened this issue Apr 22, 2024 · 2 comments
Closed

Create global Lightmap Scale parameter on LightmapGI node #9577

MarkieMusic opened this issue Apr 22, 2024 · 2 comments

Comments

@MarkieMusic
Copy link

MarkieMusic commented Apr 22, 2024

Describe the project you are working on

A 3D Action Adventure game with baked lighting.

Describe the problem or limitation you are having in your project

At the moment, the only truly perceivable way to adjust the sharpness of your baked lighting is to increase the lightmap scale on each individual mesh instance. When working on setting up a level, lighting is constantly iterated upon requiring numerous rebakes to get the proper placement and intensity of lights.

Iteration speed will always dictate the final quality of your game and keeping bake times as fast as possible is important for this step, so you'd want to keep the lightmap scale low. The problem arises when you finally want to get sharper shadows, and needing to go back and manually increase the lightmap scale on every single unique mesh instance. In dense scenes, this process can be incredibly tedious with unique mesh counts potentially being very high, and creates opportunities in human error with accidentally skipping some meshes and such.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

I propose adding a global Lightmap Scale parameter to the LightmapGI node itself so you can centralize all of your bake settings within that node. In order to still allow for granularity when needed, the meshes themselves can keep their Lightmap Scale parameter, but this would be used to force a specific lightmap scale, ignoring the global parameter on the LightmapGI node. The current Quality setting on LightmapGI also doesn't do much of anything to the actual perceived quality of the lighting, while lightmap scale almost entirely does.

The Lightmap Scale parameter on meshes could look something like this:
-Default (1x)
-1x
-2x
-4x
-8x

On the LightmapGI node, you'd be able to set the various scales to override any meshes that are on the Default setting, with an additional checkbox to actually override all mesh lightmap scale settings. This is useful if you want to iterate with granular lightmap scales on certain meshes, while still being able to easily get a super high or super low quality bake at the click of a button.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

I am an artist wanting Godot to be streamlined for artist use, and thus I cannot code.

If this enhancement will not be used often, can it be worked around with a few lines of script?

I cannot see how this wouldn't be useful in any serious project that uses baked lighting, but I can imagine scripting this could be difficult with new meshes being added constantly to a project currently in development.

Is there a reason why this should be core and not an add-on in the asset library?

Iteration speed is king when it comes to polishing the visuals of any given scene, and the faster you can iterate, the more iterations you can get in while preserving your mental energy.

@passivestar
Copy link

Related: #6544, #9116

@Calinou
Copy link
Member

Calinou commented Apr 24, 2024

This is already implemented in 4.3: godotengine/godot#64908
(Higher values are more detailed with this property.)

You can try it in 4.3.dev5 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants