summaryrefslogtreecommitdiff
path: root/servers/rendering/renderer_rd/environment
AgeCommit message (Collapse)Author
2023-01-23Add a few more checks to ensure that unsupported image formats are not used ↵clayjohn
in the mobile renderer
2023-01-21Use range iterators in LocalVector loopskobewi
2023-01-16Properly initialize directional_light_count in RD sky shadersclayjohn
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-23Cleanup and improve sky renderBastiaan Olij
2022-12-17Merge pull request #70132 from clayjohn/RT-updateRémi Verschelde
Implement render_target_was_used API so that Viewports can properly check if they have been used.
2022-12-17Merge pull request #70122 from clayjohn/VRS-r8uintRémi Verschelde
Don't attempt to create or use an R8_UINT texture as storage if VRS is not supported
2022-12-16Don't attempt to create or use an R8_UINT texture as storage if VRS is not ↵clayjohn
supported
2022-12-16Implement render_target_was_used API so that Viewports can properly check if ↵clayjohn
they have been used. For the RD renderer, this does not work for Viewports used in scene shaders yet
2022-12-15Refactor `ShaderData` & fix the sorting of shader uniformsYuri Rubinsky
2022-12-06Modified the mobile renderer to apply the sky_transform operations in the ↵Malcolm Nixon
same order as the forward_plus renderer. Update rasterizer_scene_gles3.cpp Apply sky_transform order fix to the gles3 renderer.
2022-11-14Remove redundant Variant-types initializationsMarkus Sauermann
2022-11-02Style: Misc docs and comment style and language fixesRémi Verschelde
- Removed empty paragraphs in XML. - Consistently use bold style for "Example:", on a new line. - Fix usage of `[code]` when hyperlinks could be used (`[member]`, `[constant]`). - Fix invalid usage of backticks for inline code in BBCode. - Fix some American/British English spelling inconsistencies. - Other minor fixes spotted along the way, including typo fixes with codespell. - Don't specify `@GlobalScope` for `enum` and `constant`.
2022-10-18Code simplificationsMarkus Sauermann
1. Viewport::get_visible_rect().position is always zero. So Control::get_window_rect is identical to Control::get_global_rect. Remove Control::get_window_rect since it is not used in the source code. 2. sqrt(a * a) = abs(a) for doubles 3. Simplify affine_inverse combination 4. Simplify calculation in shaders
2022-10-14Make some Image methods statickobewi
2022-10-05Merge pull request #66683 from clayjohn/SRGB-canvasitemRémi Verschelde
Default CanvasItem materials to use sRGB space for uniform colors
2022-10-05Merge pull request #66898 from aaronfranke/proj-mat-columnsRémi Verschelde
Rename Projection `matrix` to `columns`
2022-10-05Adding getters to RenderTarget and implementing override functionality for XRBastiaan Olij
2022-10-04Rename Projection `matrix` to `columns`Aaron Franke
2022-10-04Move cluster builder, sdfgi and gi structures to clustered renderer, move ↵Bastiaan Olij
light and probe elements into storage and reorganise our render_scene method.
2022-09-30Default CanvasItem materials to not convert uniform colors to linear space.clayjohn
The 2D renderer in Godot is totally in sRGB space so it is appropriate to keep 2D uniform colors in sRGB space
2022-09-28Fix MSVC warning C4702: unreachable codeRémi Verschelde
Part of #66537.
2022-09-14Clear last frame directional light buffer when number of lights changes.clayjohn
This ensures that the buffers don't go out of sync.
2022-09-13Move debanding into internal sky shader code so that it is applied after ↵clayjohn
everything else. This ensures that the debanding does not scale with exposure or any other effect.
2022-09-02Merge pull request #64952 from Chaosus/vs_rename_uniform_to_paramRémi Verschelde
2022-09-01Merge pull request #60185 from Calinou/environment-fog-and-sky-affectRémi Verschelde
2022-09-01Add Environment properties to control fog rendering on background skyHugo Locurcio
Values lower than 1.0 can be used to make the fog rendering not fully obstruct the sky. This can be desired when using fog as a purely atmospheric effect, without intending to use fog for open world fog fading. When set to 0.0, fog rendering behavior will be similar to Godot 3.x where sky rendering was never affected by fog.
2022-09-01Extracting render buffers and changing it to a more generic solutionBastiaan Olij
2022-09-01Rename `uniform` to `parameter` across the engineYuri Rubinsky
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-26Rename `str2var` to `str_to_var` and similarMicky
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`
2022-08-19Merge pull request #64167 from clayjohn/screen-texture-hintMax Hilbrunner
Add shader uniform hints for screen textures
2022-08-09Add shader uniform hints for screen textures so users can specify custom ↵clayjohn
filter and repeat modes. At this time, it works best in the Vulkan Renderers as they support using multiple samplers with the same texture. In GLES3 this feature really only allows you to use the screen texture without mipmaps if you want to save the cost of generating them.
2022-08-09Fix resource leaks in VoxelGIBastiaan Olij
2022-08-08Fix macOS and iOS defines in the rendering code.bruvzg
2022-08-04Rename shader parameter uniform setter/getter methods for consistencyHugo Locurcio
`shader_uniform` is now consistenly used across both per-shader and per-instance shader uniform methods. This makes methods easier to find in the class reference when looking for them.
2022-08-02Merge pull request #63589 from RandomShaper/sdfgi_debug_pcRémi Verschelde
Keep SdfgiDebug shader's push constant size <= 128
2022-08-01Changed storage structs to privateBastiaan Olij
2022-07-31Tweak VoxelGI defaults for better qualityHugo Locurcio
Overall brightness is similar to the previous settings, but lighting now fades off more naturally and reflections feature indirect lighting. Performance is identical. - Enable Use Two Bounces by default. - Decrease Propagation to 0.5 to compensate for the second bounce.
2022-07-29Keep SdfgiDebug shader's push constant size <= 128Pedro J. Estébanez
2022-07-29Merge pull request #63527 from BastiaanOlij/rework_environmentRémi Verschelde
Restructure environment in render implementation
2022-07-29Restructure environment in render implementationBastiaan Olij
2022-07-28Rename RenderingServer global shader uniform methods to be more explicitHugo Locurcio
The `global_shader_uniform` name is longer, but it makes it much easier to find the methods when searching in the class reference.
2022-07-27Merge pull request #62362 from clayjohn/VULKAN-haloRémi Verschelde
2022-07-26Use full size mipmaps for reflections when in high-quality modeclayjohn
2022-07-27Change RendererSceneRender::GeometryInstance so more code is shared among ↵Bastiaan Olij
renderers
2022-07-26Implement shader uniform groups/subgroupsYuri Rubinsky
2022-07-26Move Sky(RD) into environmentBastiaan Olij
Move Fog logic from render scene render to fog
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-23Implement Vector4, Vector4i, Projectionreduz
Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.