Commit Graph

30 Commits

Author SHA1 Message Date
054340bb6b Add a supersampling option to LightmapGI
This provides increased lightmap quality with less noise, smoother
shadows and better small-scale shadow detail. The downside is that
this significantly increases bake times and memory usage while baking
lightmaps, so this option is disabled by default.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: landervr <31851431+CpnWaffle@users.noreply.github.com>
2025-01-07 18:44:59 +01:00
189c8eb671 Implement shadowmasks for LightmapGI
Co-authored-by: dearthdev <nathandearthdev@gmail.com>
2024-12-12 11:00:28 +01:00
141737d168 Docs: Standardize names and terms for renderers 2024-11-29 19:53:52 -08:00
ed443ccd25 Merge pull request #99079 from FlooferLand/patch-1
Add note about LightmapGI only baking nodes under its parent
2024-11-27 10:46:52 -06:00
1e5f0a86ca Allow more flexible adjustments of VisualInstance3D Lightmap Scale
Any floating-point value greater than 0.01 can now be used.
Prior to this change, only factors of 1×, 2× and 4× and 8× could be used.
2024-11-14 17:28:05 +01:00
eaebb3f864 Fix more miscellaneous oddities around the class reference 2024-11-12 17:44:45 +01:00
22caab0248 Add note about LightmapGI only baking nodes under its parent
`LightmapGI`'s documentation currently doesn't mention the fact it only bakes nodes under its parent.
This can make the user think there is something wrong with their scene setup or 3D models, as it refuses to bake when the user's models / world isn't under the same parent as the `LightmapGI`.
2024-11-11 18:36:58 +02:00
60a255a0d0 Lightmapper: Prevent infinite loop when blitting lightmaps into an atlas 2024-07-13 13:10:04 +02:00
e7bd1b0673 Add denoiser range property for LightmapGI 2024-05-15 08:26:04 +02:00
efb1cbaad4 Add GLES3 infrastructure for lightmap baking in the compatibility backend 2024-01-24 17:13:30 -08:00
eea2ad4019 Add texel_scale property to LightmapGI 2024-01-04 16:24:19 +01:00
e4d846378b Fix LightmapGI taking editor-only and sky-only lights into account
These lights are not visible when running the project (or at all),
so they shouldn't affect the lightmap baking process.
2023-10-23 22:56:17 +02:00
a9a197d2dc Rewrite the GPU Lightmapper's indirect lighting logic to match Godot 3.5's CPU Lightmapper.
Port over the logic from Godot 3.5 for indirect lighting. This should fix many issues about indirect bounces causing more energy and improve the overall quality of the result.
2023-10-13 14:33:55 -03:00
899e56de5d Re-add optional OIDN denoise as an external executable. 2023-10-11 19:52:18 +03:00
1b2b726502 Replace OIDN denoiser with a JNLM denoiser compute shader implementation. 2023-09-25 14:53:45 -03:00
7dfb854556 Propagate error correctly when max texture size for lightmaps is too small.
Add error handling for BAKE_ERROR_LIGHTMAP_TOO_SMALL, which was previously ignored. Fixes #81453.
2023-09-11 09:14:39 -03:00
469c462b76 Add missing tutorials to documentation classes 2023-08-19 20:29:24 +02:00
81064cc239 Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).
2023-07-06 10:08:21 +02:00
346f1ab86b Bump version to 4.2-dev
Keep on waitin'
2023-07-05 22:07:03 +02:00
1c1524a651 Bump version to 4.1-dev
Can't stop, won't stop, they said, huh?
2023-03-01 01:44:37 +01:00
43f62a588b More class reference fixes
Mostly typos. Also renamed the remaining "Vulkan Clustered" to "Forward+".
2023-02-24 10:42:44 +08:00
f5edeb8f58 Disable navmesh, lightmap, and VoxelGI generation on foreign data 2023-01-06 08:39:27 -08:00
7dee32ad14 Tweak LightmapGI defaults to be closer to the CPU lightmapper
- Use 3 bounces by default.
- Enable environment lighting from the scene by default.
  - This is not done in `3.x` for compatibility with existing projects,
    but it makes sense to do this by default since pretty much all
    outdoor scenes benefit from this.
- Set the custom environment color to white (like ReflectionProbe).
  - Its default energy is still 0, so it's invisible by default.
- Enable the generation of dynamic object probes by default.
- Tweak the `max_texture_size` property hint for better usability.
- Improve error messages when passing invalid sizes to
  `LightmapGI.set_max_texture_size()`.
2022-09-16 16:27:00 +02:00
385ee5c70b Implement Physical Light Units as an optional setting.
This allows light sources to be specified in physical light units in addition to the regular energy multiplier. In order to avoid loss of precision at high values, brightness values are premultiplied by an exposure normalization value.

In support of Physical Light Units this PR also renames CameraEffects to CameraAttributes.
2022-08-31 12:14:46 -07:00
1b80d99d78 Fix small typo in LightmapGI class reference 2022-07-05 17:19:47 -04:00
60029e9eb8 Document LightmapGI, LightmapGIData and LightmapProbe
This documents those 3 classes with 100% completion, while also
documenting the relevant project settings.
2022-06-13 15:46:15 +02:00
b68dd2e189 Add an XML schema for documentation
This makes it easier to spot syntax errors when editing the
class reference. The schema is referenced locally so validation
can still work offline.

Each class XML's schema conformance is also checked on GitHub Actions.
2022-02-15 00:03:31 +01:00
f50aeb531b Improve documentation related to global illumination 2021-11-14 23:48:12 +01:00
d54f2ad7ca Don't generate empty doc sections and reduce code duplication 2021-09-20 20:59:33 -05:00
32625145c8 Rename GI Classes
* GIProbe is now VoxelGI
* BakedLightmap is now LightmapGI

As godot adds more ways to provide GI (as an example, SDFGI in 4.0), the different techniques (which have different pros/cons) need to be properly named to avoid confusion.
2021-06-05 09:28:56 -03:00