Rémi Verschelde
85e47d6fac
Merge pull request #109447 from jon1solution/ssao-in-gles3
...
Implement a very simple SSAO in GLES3.
2025-11-01 19:04:57 +01:00
Thaddeus Crews
3c1e479290
Merge pull request #110077 from clayjohn/mobile-glow
...
Overhaul and optimize Glow in the mobile renderer
2025-10-31 09:23:32 -05:00
clayjohn
2e59cb41f4
Optimize glow and tonemap gather step in the mobile renderer
...
Mobile devices are typically bandwidth bound which means we need to do as few texture samples as possible.
They typically use TBDR GPUs which means that all rendering takes place on special optimized tiles. As a side effect, reading back memory from tile to VRAM is really slow, especially on Mali devices.
This commit uses a technique where you do a small blur while downsampling, and then another small blur while upsampling to get really high quality glow. While this doesn't reduce the renderpass count very much, it does reduce the texture read bandwidth by almost 10 times. Overall glow was more texture-read bound than memory write, bound, so this was a huge win.
A side effect of this new technique is that we can gather the glow as we upsample instead of gathering the glow in the final tonemap pass. Doing so allows us to significantly reduce the cost of the tonemap pass as well.
2025-10-30 21:56:26 -07:00
jon1solution
31ee691fbf
Implemented a very simple SSAO in GLES3.
2025-10-27 06:02:04 -07:00
Thaddeus Crews
822fd083c4
Merge pull request #108114 from lawnjelly/fti_multimesh_reset_all
...
`FTI` - Add `multimesh_instances_reset_physics_interpolation()`
2025-10-24 11:23:15 -05:00
Thaddeus Crews
da593d0c16
Merge pull request #111897 from allenwp/environment-adj-prioritize-old-behaviour
...
Improve `Environment` adjustments (favor old behavior and quality).
2025-10-23 11:03:56 -05:00
Allen Pestaluky
0c7f013c55
Improve Environment color adjustments; specifically brightness and HDR 2D contrast.
...
This commit changes adjustments to behave as follows for all rendering configurations:
- Apply brightness to linear-encoded values, preventing contrast, saturation, and hue from being affected.
- Apply contrast to perceptually uniform (nonlinear sRGB-encoded) values, matching existing behavior when HDR 2D is disabled and producing optimal visual quality.
- Apply saturation with even color channel weights. This causes brightness of certain colors to change, but matches existing behavior when HDR 2D is disabled.
Adjustments are applied after glow and tonemapping to match existing behavior.
2025-10-23 11:08:49 -04:00
Skyth
c128886c63
Overhaul screen space reflections.
2025-10-21 19:23:38 +03:00
Allen Pestaluky
cafc012b05
Blend Environment glow before tonemapping and change default blend mode to screen.
...
Additionally, change the minimum `tonemap_white` parameter to `1.0`; users can increase `tonemap_exposure` for a similar effect to decreasing `tonemap_white` below `1.0`.
Co-authored-by: Hei <40064911+Lielay9@users.noreply.github.com >
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro >
2025-10-10 12:08:08 -04:00
lawnjelly
1c8ef479b4
FTI - Add multimesh_instances_reset_physics_interpolation()
2025-10-08 16:17:18 +01:00
Thaddeus Crews
fb572aff53
Merge pull request #107666 from Sch1nken/add-physics-interpolation-multimesh2d
...
Add MultiMesh physics interpolation for 2D transforms (MultiMeshInstance2D)
2025-10-03 12:01:07 -05:00
Aaron Franke
3d1c9fd5de
Move server files into their subfolders
2025-09-30 19:39:39 -07:00
Allen Pestaluky
a1591512f8
Always perform color correction and debanding on nonlinear sRGB values.
...
Fixes #107730
Co-authored-by: LuoZhihao <luo_zhihao@outlook.com >
2025-07-08 13:44:53 -04:00
lawnjelly
02b444a988
FTI - Fix MultiMesh init and stable behaviour
2025-06-29 15:58:15 +01:00
Sch1nken
a9ac00f8f7
Added multimesh physics interpolation for 2D transforms (MultiMeshInstance2D)
...
Replicated MultimeshInstance3D behaviour to MultiMeshInstance2D and added mesh_storage for 2D transform
Also call VisualInstance::_physics_interpolated_changed()
Use Node instead of VisualInstance. Addded comment
Fixed typo :)
Using CanvasItem instead of Node now. Made CanvasItem::_physics_interpolated_changed() protected
2025-06-18 16:04:51 +02:00
LuoZhihao
63c124fa45
Expose RS.mesh_surface_update_index_region
...
And `mesh_surface_get_format_index_stride`
2025-06-05 19:35:59 +08:00
Dario
5a30a7e7cd
Add shader baker to project exporter.
...
Metal Support contributed by Migeran (https://migeran.com ) and Stuart Carnie.
Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com >
Co-authored-by: Gergely Kis <gergely.kis@migeran.com >
2025-05-27 12:45:27 -03:00
Lukas Tenbrink
4cb8a0c77e
Add resize_initialized and resize_uninitialized to Vector. These functions serve as replacements for resize, to make sure the caller understands whether elements need to be initialized 'by hand' after the call.
2025-05-26 18:35:41 +02:00
Raymond DiDonato
6b99608950
Add SMAA 1x
2025-05-21 15:02:09 -04:00
clayjohn
305216f558
Overhaul the cull mask internals for Lights, Decals, and Particle Colliders
...
Properly pair and unpair instances based on cull mask to avoid any unnecessary processing and to ensure that changing the cull_mask and layer_mask actually updates culling behavior
2025-05-08 21:39:12 -07:00
Ryan
4497e2a0d3
Add Meshes to the Video RAM Profiler
...
Apply suggestions from code review
Co-Authored-By: Hugo Locurcio <hugo.locurcio@hugo.pro >
2025-04-23 18:26:56 -04:00
Yyf2333
1a70a06a43
Change RID_Owner::get_owned_list.
2025-04-21 01:04:27 +08:00
Thaddeus Crews
0d267e7b1e
Core: Add dedicated BitField template
2025-04-11 11:53:26 -05:00
Thaddeus Crews
324512e11c
Style: Replace header guards with #pragma once
2025-03-07 17:33:47 -06:00
clayjohn
35100396e4
Validate varying count when compiling shaders
...
This avoids crashing on devices when a number of varyings greater than the device limit is used.
For now this accurately prints an error when compiling the shader, but the error text only pops up in the editor if the number of user varyings is above the limit.
2025-02-13 15:07:15 -08:00
Rudolph Bester
b162c59097
Fix GPUParticlesCollisionHeightField3D adding collisions excluded by its layer_mask
...
Co-authored-by: Yahia Zakaria <yahiazakaria13@gmail.com >
2025-02-04 08:02:44 +02:00
David House
e6daec9cf8
Added indirect drawing functionality to MultiMesh
...
Update doc/classes/RenderingServer.xml
Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com >
2025-01-13 14:51:51 -06:00
Rémi Verschelde
133db1fd60
Merge pull request #92089 from QbieShay/qbe/particle_seek
...
Implement particle seek request and seed options.
2025-01-13 20:21:28 +01:00
QbieShay
e9eb0b6082
Implemented tools around particles seed randomization.
...
The purpose of this code is to expose the necessary
functions for users and engine devs to develop tooling
for properly timing and seeking inside particles.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro >
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com >
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com >
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com >
2025-01-11 16:31:24 +01:00
Rémi Verschelde
3014eec40d
Merge pull request #99407 from devloglogan/rec-resolution
...
Allow using custom `Rect2i` for rendering with OpenXR
2025-01-10 23:05:46 +01:00
devloglogan
e7f6b7ea0b
Allow using custom Rect2i for rendering with OpenXR
2025-01-09 09:46:15 -06:00
Aarni Koskela
f134769506
Fix various typos
...
* Add TODO notes for typos that should be fixed for 5.0
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com >
2025-01-08 14:47:42 +02:00
Stuart Carnie
11dc4f2e5e
Metal: Add MetalFX upscaling support
...
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro >
2025-01-06 06:03:18 -07:00
Thaddeus Crews
b715fabd70
Merge pull request #76371 from ze2j/array_mesh_surface_remove
...
Add `ArrayMesh::surface_remove`
2024-12-19 19:59:56 -06:00
Thaddeus Crews
2fcd8223e8
Merge pull request #99538 from Geometror/lightmap-gi-transparent-surface
...
Add transparency support for LightmapGI
2024-12-19 19:59:52 -06:00
Hendrik Brucker
a3525bc015
Add transparency support for LightmapGI
...
Co-authored-by: Guerro323 <kaltobattle@gmail.com >
2024-12-18 19:36:16 +01:00
Rémi Verschelde
d60c0e21a6
Merge pull request #88313 from wagnerfs/run-time-anisotropic-filtering
...
Allow changing the anisotropic filter level at run-time per Viewport
2024-12-17 16:18:38 +01:00
Thaddeus Crews
9ecdeb3723
Merge pull request #98747 from tetrapod00/standardize-renderer-strings
...
Standardize terms for renderers in error strings
2024-12-13 16:19:37 -06:00
Thaddeus Crews
bfc66f0608
Merge pull request #100282 from devloglogan/motion-vectors-openxr
...
Add renderer motion vectors API for use with OpenXR
2024-12-12 16:13:36 -06:00
Thaddeus Crews
7c015a768f
Merge pull request #99958 from lander-vr/reflection-probe-blend-property
...
Add Blend Distance property to ReflectionProbe
2024-12-12 16:13:32 -06:00
BlueCube3310
189c8eb671
Implement shadowmasks for LightmapGI
...
Co-authored-by: dearthdev <nathandearthdev@gmail.com >
2024-12-12 11:00:28 +01:00
devloglogan
3deb5884d7
Renderer agnostic motion vector rendering/OpenXR changes
2024-12-10 15:59:17 -06:00
landervr
05010180ce
ReflectionProbe add Blend Distance
2024-12-05 23:29:47 +01:00
Wagner
6995b6a03e
Allow changing the anisotropic filter level at run-time per Viewport
2024-11-30 00:50:45 -03:00
ze2j
97e0b43faa
Add ArrayMesh::surface_remove
2024-11-27 13:46:15 +01:00
David House
6e9d31f602
Implemented multimesh_get_buffer_rd_rid function into RenderingServer.
...
Fixed style error.
Updated dummy mesh_storage to move from cpp to h the return of a blank Rid on _multimesh_get_buffer_rd_rid.
2024-11-14 15:52:08 -06:00
tetrapod00
899f5151c3
Standardize terms for renderers in error strings
...
Use "Forward+", "Mobile", "Compatibility", and "renderer" or "rendering method".
2024-11-10 13:30:44 -08:00
Thaddeus Crews
11b90086b7
Merge pull request #96705 from elmajime/camera_from_external_feed
...
Add support for external camera feed from external plugin on Android
2024-11-04 21:51:50 -06:00
maxime.chambefort
6f846eb5c5
Added external camera feed from external plugin on Android
2024-10-30 18:30:28 +01:00
Adam Scott
0d350e7108
Set clang-format RemoveSemicolon rule to true
...
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00