summaryrefslogtreecommitdiff
path: root/servers/rendering/renderer_rd/effects_rd.h
AgeCommit message (Collapse)Author
2023-01-07Move luminance effect into its own class and use new buffers systemBastiaan Olij
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-09-01Extracting render buffers and changing it to a more generic solutionBastiaan Olij
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.
2022-07-19Move screen space effects into a separate classBastiaan Olij
2022-06-24Moved cube_to_dp and cubemap logic into CopyEffectsBastiaan Olij
2022-06-22Split GI effects and fix stereoscopic rendering of GI effectsBastiaan Olij
2022-06-07Initial TAA implementationjfons
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.
2022-05-16Replace most uses of Map by HashMapreduz
* 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!
2022-05-11Split out bokeh_dof and copy effectsBastiaan Olij
2022-04-28Splitting tonemapper into its own classBastiaan Olij
2022-02-23Implementing OpenXR driverBastiaan Olij
2022-02-05Optimize and fix backbuffer gaussian blurclayjohn
2022-01-20add support for glow mapsAnsraer
2022-01-15Remove mistakenly added push constant from SSRclayjohn
2022-01-04Merge pull request #51206 from clayjohn/Vulkan-ASSGIRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-11-23Implemented AMD's FSR as a computer shader for upscaling 3D scenesJe06jm
2021-11-06Added SSIL post processing effectclayjohn
2021-10-31Repaired mistyped of 'threshold' on several files.M. Huri
2021-08-23Scale color output in the mobile renderer to provide HDR supportBastiaan Olij
2021-08-19Improvements to SpotLight3D and OmniLight3D's shadowsjfons
OmniLight3D: * Fixed lack of precision in cube map mode by scaling the projection's znear. * Fixed aliasing issues by making the paraboloids use two square regions instead of two half squares. * Fixed shadowmap atlas bleeding by adding padding. * Fixed sihadow blur's inconsistent radius and unclamped sampling. SpotLight3D: * Fixed lack of precision by scaling the projection's znear. * Fixed normal biasing. Both: * Tweaked biasing to make sure it works out of the box in most situations.
2021-08-15Fix read from screen and depth textureBastiaan Olij
2021-08-13Implemented raster versions of bokeh shaders to replace broken gaussian ↵Bastiaan Olij
implementation
2021-08-06Use subpasses to do 3D rendering and resolve in mobile rendererBastiaan Olij
2021-08-01Porting cubemap compute shaders to raster for the mobile rendererBastiaan Olij
2021-07-25Use fragment shader instead of compute shader for effects for mobile rendererBastiaan Olij
2021-07-05Fix Subsurface Scatteringreduz
* Works again * Transmittance also works again * Removed the curve patamter, exp() function is good enough.
2021-06-26Move render_sky logic from effects into our sky object, and some minor cleanupBastiaan Olij
2021-06-14Merge pull request #49576 from clayjohn/VULKAN-SSAO-uniform-setsRémi Verschelde
Store SSAO uniform sets per viewport
2021-06-13Store SSAO uniform sets per viewportclayjohn
2021-06-13Add stereoscopic rendering through multiviewBastiaan Olij
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.
2021-02-06Simplify Volumetric Fogreduz
-Always use temporal reproject, it just loos way better than any other filter. -By always using termporal reproject, the shadowmap reduction can be done away with, massively improving performance. -Disadvantage of temporal reproject is update latency so.. -Made sure a gaussian filter runs in XY after fog, this allows to keep stability and lower latency.
2021-02-04Rewrote how barriers work for faster renderingreduz
-Added more finegrained control in RenderingDevice API -Optimized barriers (use less ones for thee same) -General optimizations -Shadows render all together unbarriered -GI can render together with shadows. -SDFGI can render together with depth-preoass. -General fixes -Added GPU detection
2021-01-24Shadow map rendering optimizationreduz
-All shadow rendering is done with raster now (no compute) -All shadow rendering is done by rendering directly to the shadow atlas -Improved how buffer clearing is done to optimize the above. -Ability to set shadows as 16 bits.
2021-01-04Merge pull request #44842 from clayjohn/VULKAN-SSAO-2Rémi Verschelde
SSAO renames and move push constant binding
2021-01-03SSAO cleanup and fixesclayjohn
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-21Port ASSAO to Godot to replace SAOclayjohn
2020-12-04RenderingServer reorganizationreduz