summaryrefslogtreecommitdiffstats
path: root/modules/lightmapper_rd
Commit message (Collapse)AuthorAgeFilesLines
* Fix lightmapper seam blendingpassivestar2024-05-151-0/+1
|
* Add denoiser range property for LightmapGIlandervr2024-05-153-12/+15
|
* LightmapGI: Fix seam blending with directional lightmapsBlueCube33102024-04-181-1/+1
|
* Use `Vector*` component-wise `min/max/clamp` functions where applicableA Thousand Ships2024-03-201-2/+1
|
* Finish splitting functionality of the Vulkan and D3D12 backends into ↵Dario2024-02-121-2/+52
| | | | RenderingDeviceDriver.
* Replace error checks against `size` with `is_empty`A Thousand Ships2024-02-091-2/+2
|
* Do not use a linear sampler on lightmapper when retrieving grid data.Dario2024-01-261-1/+3
|
* Add GLES3 infrastructure for lightmap baking in the compatibility backendclayjohn2024-01-241-1/+1
|
* Merge pull request #86730 from reduz/64-bit-cowdataRémi Verschelde2024-01-191-1/+1
|\ | | | | Promote CowData to 64 bits
| * Promote CowData to 64 bitsJuan Linietsky2024-01-191-1/+1
| | | | | | | | Fixes a lot of bugs, please help me fill the list.
* | Merge pull request #86583 from reduz/lightmapper-dda-fixRémi Verschelde2024-01-111-1/+10
|\ \ | |/ |/| | | Tiny fix for lightmapper DDA
| * Tiny fix for lightmapper DDAJuan Linietsky2024-01-101-1/+10
| | | | | | | | | | - Ensures only one axis advances at a time - This fixes extremely corner cases where the DDA may skip over geometry
* | Acyclic Command Graph for RenderingDevice.Dario2024-01-081-2/+2
| | | | | | | | Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
* | Merge pull request #86555 from RandomShaper/fix_warnRémi Verschelde2024-01-041-1/+1
|\ \ | | | | | | | | | Fix LightmapperRD division warning in MSVC
| * | Fix warning in MSVCPedro J. Estébanez2023-12-271-1/+1
| |/
* | Merge pull request #84800 from gshadows/fix_options_rangeRémi Verschelde2024-01-031-11/+11
|\ \ | | | | | | | | | Fix unlimited project option ranges that could cause crashes.
| * | Fix unlimited project option ranges that could cause crashes.G-Shadow2023-12-221-11/+11
| |/
* / Fix potential integer underflow in rounded up divisionsEddieBreeg2024-01-021-11/+11
|/ | | | | | | | | | A new `Math::division_round_up()` function was added, allowing for easy and correct computation of integer divisions when the result needs to be rounded up. Fixes #80358. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
* Don't use TTR/RTR for ERR/WARN printsRémi Verschelde2023-11-121-2/+2
| | | | We don't translate those, only editor strings are translated.
* Optimize lightmapper using triangle clusters on the acceleration structure.Dario2023-10-134-75/+288
| | | | Add an additional layer of indirection to the grid used by the lightmapper to store fixed-size triangle clusters. Greatly speeds up baking times on scenes with high triangle density, as the clusters will help to avoid unnecessary checks when the triangle density is high on the scene.
* Rewrite the GPU Lightmapper's indirect lighting logic to match Godot 3.5's ↵Dario2023-10-135-505/+502
| | | | | | 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.
* Re-add optional OIDN denoise as an external executable.bruvzg2023-10-113-2/+160
|
* Fix trace_ray() function in the lightmapper missing hits with large triangles.Dario2023-10-091-0/+8
| | | | The DDA traversal had a conceptual error where it did an early termination of the search if it hit a triangle, but it didn't check if the hit position was inside the bounds of the cell being traversed. This can aid to fix light leaks such as the ones found in issue #75440.
* Merge pull request #82533 from DarioSamo/no-dilate-before-denoiseRémi Verschelde2023-09-291-14/+6
|\ | | | | | | Make the lightmapper not dilate before denoising.
| * Make the lightmapper not dilate before denoising.Dario2023-09-291-14/+6
| | | | | | | | Dilating noisy data caused issues for the denoiser. Fixes #82526.
* | Disable `lightmapper_rd` module in non-editor builds (and in Android editor)Hugo Locurcio2023-09-292-2/+1
|/ | | | | | | | | | | | | | | This is consistent with `xatlas_unwrap`, which isn't enabled in non-editor builds and the Android editor either. There is currently no way to use the lightmapper in a non-editor build anyway, as it doesn't expose any methods (and even if there was, there would be no way to perform UV2 unwrapping in the exported project). This reduces binary size of a stripped Linux x86_64 export template build by ~164 KB. This also moves the PrimitiveMesh texel size project setting so that it's defined when the module is disabled, and adds a property hint to it.
* Replace OIDN denoiser with a JNLM denoiser compute shader implementation.Dario2023-09-253-39/+271
|
* Fix directional LightmapGI being too dark with static lightsHugo Locurcio2023-09-211-1/+1
| | | | | | | The brightness now matches dynamic lights (indirect light baked only) when Directional is enabled. Co-authored-by: Priyansh Rathi <techiepriyansh@gmail.com>
* Add half-pixel offset to lightmapper rasterization.Dario2023-09-181-6/+10
| | | | Add half-pixel offset to lightmapper to fix issues where the ray would be generated from the wrong spot corresponding to the pixel and causing light leaks. Fixes Issue #69126.
* Style: Harmonize header includes in modulesRémi Verschelde2023-06-152-3/+5
| | | | | | | | | | | | | | | | | | | | This applies our existing style guide, and adds a new rule to that style guide for modular components such as platform ports and modules: Includes from the platform port or module ("local" includes) should be listed first in their own block using relative paths, before Godot's "core" includes which use "absolute" (project folder relative) paths, and finally thirdparty includes. Includes in `#ifdef`s come after their relevant section, i.e. the overall structure is: - Local includes * Conditional local includes - Core includes * Conditional core includes - Thirdparty includes * Conditional thirdparty includes
* One Copyright Update to rule them allRémi Verschelde2023-01-054-116/+116
| | | | | | | | | | | | | | | | | | | | As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
* Add optional UV2 logic for lightmapping to primitive shapesBastiaan Olij2022-11-131-0/+1
|
* Make some Image methods statickobewi2022-10-141-41/+15
|
* Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg2022-10-071-4/+4
| | | | change warnings=all to use /W4.
* Implement Physical Light Units as an optional setting.clayjohn2022-08-313-2/+8
| | | | | | 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.
* Rename `str2var` to `str_to_var` and similarMicky2022-08-261-2/+2
| | | | | | | | | | | | | | | | | | Affects the Math class, a good chunk of the audio code, and a lot of other miscellaneous classes, too. - `var2str` -> `var_to_str` - `str2var` -> `str_to_var` - `bytes2var` -> `bytes_to_var` - `bytes2var_with_objects` -> `bytes_to_var_with_objects` - `var2bytes` -> `var_to_bytes` - `var2bytes_with_objects` -> `var_to_bytes_with_objects` - `linear2db` -> `linear_to_db` - `db2linear` -> `db_to_linear` - `deg2rad` -> `deg_to_rad` - `rad2deg` -> `rad_to_deg` - `dict2inst` -> `dict_to_inst` - `inst2dict` -> `inst_to_dict`
* Fix some array size function definition mismatch.Fabio Alessandrelli2022-08-041-1/+1
|
* Code quality: Fix header guards consistencyRémi Verschelde2022-07-252-2/+2
| | | | | Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
* Use integer types in Image and ImageTexture methodsFireForge2022-07-181-3/+3
| | | | | | | | | | | - Image.blit_rect() - Image.blit_rect_mask() - Image.blend_rect() - Image.blend_rect_mask() - Image.fill_rect() - Image.get_used_rect() - Image.get_rect() - ImageTexture.set_size_override()
* SCons: Properly track codegen script dependency for generated GLSL headersRémi Verschelde2022-07-021-3/+1
|
* add support for soft shadows to the lightmapperPriyansh Rathi2022-06-244-45/+98
|
* Clean up Hash Functionsreduz2022-06-201-15/+15
| | | | | | | Clean up and do fixes to hash functions and newly introduced murmur3 hashes in #61934 * Clean up usage of murmur3 * Fixed usages of binary murmur3 on floats (this is invalid) * Changed DJB2 to use xor (which seems to be better)
* Merge pull request #60723 from reduz/refactor-module-initializationRémi Verschelde2022-05-042-4/+13
|\
| * Refactor module initializationreduz2022-05-042-4/+13
| | | | | | | | | | | | | | * Changed to use the same stages as extensions. * Makes the initialization more coherent, helping solve problems due to lack of stages. * Makes it easier to port between module and extension. * removed the DRIVER initialization level (no longer needed).
* | Rename Basis "elements" to "rows"Aaron Franke2022-04-291-9/+9
|/
* String: Remove TTR and DTR defines in non-tools buildRémi Verschelde2022-03-281-14/+15
| | | | | This ensures we don't use TTR in runtime code, as it's specifically meant to source translations for the editor.
* Change some math macros to constexprkobewi2022-03-091-2/+2
| | | | Changes `MAX`, `MIN`, `ABS`, `CLAMP` and `SIGN`.
* Add a UniformSet cachereduz2022-03-061-34/+34
| | | | | | | * Changed syntax usage for RD::Uniform to create faster with a single RID * Converted render pass setup to use this in clustered renderer to test. This is the first step into creating a proper uniform set cache system to simplify large parts of the codebase.
* RendererRD: Remove binding specifier for push constantsRémi Verschelde2022-02-113-5/+5
| | | | | | | This is unsupported and glslang made it raise an error in 11.7.0: https://github.com/KhronosGroup/glslang/pull/2810 Co-authored-by: Clay John <claynjohn@gmail.com>
* Use fill() to fill an entire image instead of setting pixels individually.Anilforextra2022-01-081-5/+1
|