summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/renderer_scene_render_rd.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit godotengine/godot@8004c7524fb9f43425c4d6f614410a76678e0f7cSpartan3222024-10-301-1/+1
|\
| * Set clang-format `RemoveSemicolon` rule to `true`Adam Scott2024-10-251-1/+1
| | | | | | | | - Set clang-format `Standard` rule to `c++20`
* | Fix copyright headers referring to GodotSpartan3222024-10-271-2/+2
| |
* | Rebrand preambles to RedotDubhghlas McLaughlin2024-10-111-0/+2
|/ | | | | | | | | | | | | | | | | | | | | | Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* Style: Apply new `clang-format` changesThaddeus Crews2024-09-201-3/+3
|
* Implement support for bicubic lightmap filteringBlueCube33102024-08-191-0/+5
| | | | Co-authored-by: Calinou <hugo.locurcio@hugo.pro>
* Disable camera_effects on some debug draw modeChristopheClaustre2024-06-191-0/+1
|
* Implement hooks into rendererBastiaan Olij2024-02-181-47/+5
|
* Acyclic Command Graph for RenderingDevice.Dario2024-01-081-2/+1
| | | | Adds a new system to automatically reorder commands, perform layout transitions and insert synchronization barriers based on the commands issued to RenderingDevice.
* Fix mipmap bias behavior by refactoring how samplers are created by Material ↵Dario2023-09-061-1/+0
| | | | | | Storage. Introduces a new structure to store samplers created with certain parameters instead of storing a 'custom' set of samplers. Allows viewports to correctly configure the mipmap bias and use it when rendering the scene.
* Draw frustum splices ontop of direction shadow atlas for debug purposesBastiaan Olij2023-06-111-1/+3
|
* Replace Extents with Size in VoxelGI, ReflectionProbe, FogVolume, Decal and ↵Marius Hanl2023-01-311-2/+2
| | | | | | | | | | | GPUParticles*3D - Extents are replaced by Size (Size is Extents * 2) - The UI text displays 'Size' - Snapping is adjusted to work with Size - _set and _get handle extents for compatibility Co-authored-by: ator-dev <dominic.codedeveloper@gmail.com>
* Move luminance effect into its own class and use new buffers systemBastiaan Olij2023-01-071-3/+2
|
* One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
| | | | | | | | | | | | | | | | | | | | 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".
* Move SDFGI update logic into clustered rendererBastiaan Olij2022-12-241-8/+0
|
* Remove high quality glow as it is not any higher quality than regular glowclayjohn2022-12-131-2/+0
|
* Moving SSEffects settings into classBastiaan Olij2022-10-041-31/+0
|
* Move cluster builder, sdfgi and gi structures to clustered renderer, move ↵Bastiaan Olij2022-10-041-706/+70
| | | | light and probe elements into storage and reorganise our render_scene method.
* Split rendering driver project setting into renderer_name and ↵clayjohn2022-09-191-5/+5
| | | | rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
* Extract shared scene data into a separate classBastiaan Olij2022-09-151-29/+6
|
* Properly scale SSR reflection based on metallic value for dielectric materialsclayjohn2022-09-091-1/+1
|
* Merge pull request #65170 from KoBeWi/your_argument_is_TypedArrayRémi Verschelde2022-09-021-1/+1
|\
| * Change Array arguments to TypedArraykobewi2022-09-011-1/+1
| |
* | Extracting render buffers and changing it to a more generic solutionBastiaan Olij2022-09-011-168/+31
| |
* | Implement Physical Light Units as an optional setting.clayjohn2022-08-311-43/+10
|/ | | | | | 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.
* Add a per-light volumetric fog energy propertyHugo Locurcio2022-08-301-2/+2
| | | | | | | | | | | | | | Per-light energy gives more control to the user on the final result of volumetric fog. Specific lights can be fully excluded from volumetric fog by setting their volumetric fog energy to 0, which improves performance slightly. This can also be used to prevent short-lived dynamic effects from poorly interacting with volumetric fog, as it's updated over several frames by default unless temporal reprojection is disabled. Volumetric fog shadows now obey Light3D's Shadow Opacity property as well. The shadow fog fade property was removed as it had little visible impact on the final scene's rendering.
* Implement MSAA for 2D [Vulkan only]Hendrik Brucker2022-08-131-15/+43
|
* Add a shadow opacity property to Light3DHugo Locurcio2022-08-071-2/+2
| | | | | | | This can be used to make shadows translucent for a specific light. The light distance fade system also uses this to smoothly fade the shadow when the light fade transition distance is greater than 0.
* Merge pull request #63527 from BastiaanOlij/rework_environmentRémi Verschelde2022-07-291-65/+4
|\ | | | | Restructure environment in render implementation
| * Restructure environment in render implementationBastiaan Olij2022-07-291-65/+4
| |
* | Allow changing mipmap LOD bias when FSR 1.0 scaling is not usedHugo Locurcio2022-07-281-1/+1
|/ | | | | | | | | Mipmap LOD bias can be useful to improve the appearance of distant textures without increasing anisotropic filtering (or in situations where anisotropic filtering is not effective). `fsr_mipmap_bias` was renamed to `texture_mipmap_bias` accordingly. The property hint now allows for greater precision as well.
* Change RendererSceneRender::GeometryInstance so more code is shared among ↵Bastiaan Olij2022-07-271-16/+13
| | | | renderers
* Move Sky(RD) into environmentBastiaan Olij2022-07-261-217/+14
| | | | Move Fog logic from render scene render to fog
* Code quality: Fix header guards consistencyRémi Verschelde2022-07-251-3/+3
| | | | | Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
* Implement Vector4, Vector4i, Projectionreduz2022-07-231-18/+19
| | | | | | | | | | | | | 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.
* Merge pull request #62513 from reduz/shader_preprocessor_remakeRémi Verschelde2022-07-231-0/+1
|\
| * Clean up Shader Preprocessorreduz2022-07-221-0/+1
| | | | | | | | | | | | | | | | | | * Moved preprocessor to Shader and ShaderInclude * Clean up RenderingServer side * Preprocessor is separate from parser now, but it emits tokens with include location hints. * Improved ShaderEditor validation code * Added include file code completion * Added notification for all files affected by a broken include.
* | Move screen space effects into a separate classBastiaan Olij2022-07-191-38/+6
|/
* Adding Variable Rate Shading support to GodotBastiaan Olij2022-07-171-2/+7
| | | | | Improve GI renderer and add VRS support Implement render device has_feature and move subgroup settings to limit_get
* Rename soft shadow quality project settings for easier searchingHugo Locurcio2022-07-131-2/+2
| | | | | | | | | | | | `rendering/quality/shadows` is now `rendering/quality/positional_shadow` to explicitly denote that the settings only affect positional light shadows, not directional light shadows. Shadow atlas settings now contain the word "atlas" for easier searching. Soft shadow quality settings were renamed to contain the word "filter". This makes the settings appear when searching for "filter" in the project settings dialog, like in Godot 3.x.
* Merge pull request #62344 from BastiaanOlij/extract_dependenciesRémi Verschelde2022-07-061-3/+1
|\
| * Split dependency logicBastiaan Olij2022-06-281-3/+1
| | | | | | | | | | | | Split FOG Split visibility notifier Final cleanup of storage classes
* | Consider uniform writability part of the interface of the setPedro J. Estébanez2022-06-271-0/+1
|/
* Split GI effects and fix stereoscopic rendering of GI effectsBastiaan Olij2022-06-221-10/+11
|
* Introduce eye_offset for correcting stereoscopic reflectionsBastiaan Olij2022-06-171-0/+1
| | | | Use view instead of vertex for reflections.
* Initial TAA implementationjfons2022-06-071-7/+19
| | | | | | Initial TAA support based on the implementation in Spartan Engine. Motion vectors are correctly generated for camera and mesh movement, but there is no support for other things like particles or skeleton deformations.
* Add a new HashSet templatereduz2022-05-201-1/+1
| | | | | * Intended to replace RBSet in most cases. * Optimized for iteration speed
* Replace most uses of Map by HashMapreduz2022-05-161-6/+6
| | | | | | | | | | | | * Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
* Split out bokeh_dof and copy effectsBastiaan Olij2022-05-111-3/+18
|
* Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde2022-05-021-33/+26
| | | | | | | | | | | Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.