summaryrefslogtreecommitdiff
path: root/scene/3d/lightmap_gi.cpp
AgeCommit message (Collapse)Author
2023-02-11Set Default compression to VRAM uncompressed for LightmapGIclayjohn
This increases the speed to be near instant and removes the perceived lightmap bake speed regression We need to investigate the speed and quality issues with BPTC and re-enable compression when we can
2023-01-23Merge pull request #63251 from ↵Rémi Verschelde
SaracenOne/disable_data_generation_on_foreign_resources Disable navmesh, lightmap, and VoxelGI generation on foreign data
2023-01-21Use range iterators in LocalVector loopskobewi
2023-01-13Enforce a default minimum lightmap size hint sizeclayjohn
2023-01-06Disable navmesh, lightmap, and VoxelGI generation on foreign dataSaracenOne
2023-01-05One Copyright Update to rule them allRémi Verschelde
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".
2022-12-29Add safety-checks before some servers `free()`Adam Scott
2022-10-14Make some Image methods statickobewi
2022-10-07Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg
change warnings=all to use /W4.
2022-09-29Merge pull request #65807 from clayjohn/light-units-bugRémi Verschelde
Validate physical light units in GI classes.
2022-09-16Tweak LightmapGI defaults to be closer to the CPU lightmapperHugo Locurcio
- 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-14Validate physical light units in GI classes.clayjohn
Add checks for physical light units in a few more places to ensure they aren't used when disabled.
2022-09-04Fix crash when executing `LightmapGIData._set_light_textures_data`Haoyu Qiu
2022-09-02Merge pull request #65170 from KoBeWi/your_argument_is_TypedArrayRémi Verschelde
2022-09-01Change Array arguments to TypedArraykobewi
2022-08-31Implement Physical Light Units as an optional setting.clayjohn
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-22Make `_validate_property` a multilevel methodYuri Sizov
2022-07-29Swap arguments of ResourceSaver.save()kobewi
2022-07-18Use integer types in Image and ImageTexture methodsFireForge
- 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()
2022-07-12Remove unused hintskobewi
2022-06-26Merge pull request #62124 from holgac/bugfix-62096JFonS
Fixes #62096: LightmapGIData::_get_light_textures_data crash on empty image
2022-06-24add support for soft shadows to the lightmapperPriyansh Rathi
2022-06-20Clean up Hash Functionsreduz
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)
2022-06-17Fixes #62096: LightmapGIData::_get_light_textures_data crash on empty imageholgac
The program crashes when trying to determine slice width/height if the light texture is empty. This fix just returns an empty array, as if the light texture does not exist.
2022-06-14save lightmap as multi-image atlasPriyansh Rathi
2022-05-10Fix warnings found by Emscripten 3.1.10Rémi Verschelde
Fix `-Wunused-but-set-variable`, `-Wunqualified-std-cast-call`, and `-Wliteral-range` warnings.
2022-05-03Rename Basis get_axis to get_column, remove redundant methodsAaron Franke
2022-04-13Color: Rename `to_srgb`/`to_linear` to include base color spaceRémi Verschelde
This helps reduce confusion around sRGB <> Linear conversions by making both input and output color spaces explicit.
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-03-28String: Remove TTR and DTR defines in non-tools buildRémi Verschelde
This ensures we don't use TTR in runtime code, as it's specifically meant to source translations for the editor.
2022-03-10Discern between virtual and abstract class bindingsreduz
* Previous "virtual" classes (which can't be instantiated) are not corretly named "abstract". * Added a new "virtual" category for classes, they can't be instantiated from the editor, but can be inherited from script and extensions. * Converted a large amount of classes from "abstract" to "virtual" where it makes sense. Most classes that make sense have been converted. Missing: * Physics servers * VideoStream * Script* classes. which will go in a separate PR due to the complexity involved.
2022-03-05Rename StreamTexture* to CompressedTexture*reduz
* Its not and will not be used for streaming. * Streaming will be implemented in 4.1 and it will work different. * It makes more sense to be called CompressedTexture since it imports and compresses texture files.
2022-02-15Use `switch` consistently in `_notification` (`scene` folder)Rémi Verschelde
2022-01-20Merge pull request #55360 from Calinou/rename-bake-mode-propertiesRémi Verschelde
2022-01-08Use fill() to fill an entire image instead of setting pixels individually.Anilforextra
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-14Rename and reorder bake mode properties for consistencyHugo Locurcio
The order now goes from least to most computationally expensive: - Disabled - Static - Dynamic
2021-12-11GPULightMapper: convert colors of lights to linearWilliam Deurwaarder
To make baked colors of lights equal to dynamic colors of lights they have to be converted to linear as the colors of dynamic lights are converted to linear by RendererSceneRenderRD.
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-11-03Rename `PROPERTY_USAGE_NOEDITOR` to `PROPERTY_USAGE_NO_EDITOR`Hugo Locurcio
This is consistent with other constants that include `NO`, such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-10-25Refactored Node3D rotation modesreduz
* Made the Basis euler orders indexed via enum. * Node3D has a new rotation_order property to choose Euler rotation order. * Node3D has also a rotation_mode property to choose between Euler, Quaternion and Basis Exposing these modes as well as the order makes Godot a lot friendlier for animators, which can choose the best way to interpolate rotations. The new *Basis* mode makes the (exposed) transform property obsolete, so it was removed (can still be accessed by code of course).
2021-09-21Add Get Center Method for Rect2/Rect2i and AABB.Anilforextra
2021-08-13Fix some unnecessary includesAaron Franke
2021-07-23Node3D gizmo improvementsjfons
* Clean-up of node_3d_editor_plugin.{h,cpp}: removed unused code, fixed some bugs. * Moved node_3d_editor_gizmos.{h,cpp} to editor/plugins. * Added support for multiple gizmos per node. This means custom gizmos will no longer override the built-in ones and that multiple gizmos can be used in more complex nodes. * Added support for handle IDs. When adding handles to a gizmo, an ID can be specified for each one, making it easier to work with gizmos that have a variable number of handles. * Added support for subgizmos, selectable elements that can be transformed without needing a node of their own. By overriding _subgizmo_intersect_frustum() and/or _subgizmo_intersect_ray() gizmos can define which subgizmos should be selected on a region or click selection. Subgizmo transformations are applied using get/set/commit virtual methods, similar to how handles work.
2021-07-21Use is_equal_approx in more placesAaron Franke
2021-07-01Use PROPERTY_USAGE_NONE instead of 0 for no property usageAaron Franke
Also use const more often.
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-11Core: Move DirAccess and FileAccess to `core/io`Rémi Verschelde
File handling APIs are typically considered part of I/O, and we did have most `FileAccess` implementations in `core/io` already.
2021-06-05Rename GI Classesreduz
* 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.