clayjohn
a062798b76
Ensure that rim lighting uses a exponent base greater than zero
...
This avoids the undefined behavior that happens if the base is zero and the exponent is zero
2022-12-12 13:41:28 -08:00
Pedro J. Estébanez
14e301467e
Refactor SPIR-V reflection into a generic RenderingDevice feature
2022-12-12 14:14:53 +01:00
Hugo Locurcio
7745bd42a6
Add maximum roughness cutoff to SSR to improve performance
...
In a test scene with mixed rough and non-rough materials, this saves
upwards of 0.15 ms of GPU time with very little visual artifacting
(GTX 1080, 2560×1440).
2022-12-10 17:35:18 +01:00
clayjohn
e6f8c8517c
Fade out SSR with roughness so that it doesn't show at high roughness amounts
2022-12-09 12:59:51 -08:00
Rémi Verschelde
60d7525d84
Merge pull request #69735 from clayjohn/Particles2D-sdf
...
Detect and report if 2D particles use the screen SDF
2022-12-08 09:52:01 +01:00
clayjohn
0a88c68d0a
Detect and report if 2D particles use the screen SDF
...
This ensures that the SDF is updated even if not used in a canvas_item shader
2022-12-07 10:03:08 -08:00
Lily Garcia
e328a0bcf8
Check if VRS is supported on creating VRS object
2022-12-07 13:00:13 +01:00
Rémi Verschelde
bd290ad566
Merge pull request #69636 from Malcolmnixon/vulkan-mobile-sky-matrix
...
Fix mobile renderer sky_transform operations
2022-12-06 15:16:20 +01:00
Malcolm Nixon
0f8a968cd4
Modified the mobile renderer to apply the sky_transform operations in the same order as the forward_plus renderer.
...
Update rasterizer_scene_gles3.cpp
Apply sky_transform order fix to the gles3 renderer.
2022-12-06 06:47:50 -05:00
Rémi Verschelde
43e9ca40ff
Merge pull request #65035 from nathanfranke/fix-aabb-mesh
...
Fix AABB errors on meshes with bones on multiple surfaces
2022-12-06 12:26:03 +01:00
Nathan Franke
aef261aa2a
fix aabb errors on meshes with bones on multiple surfaces
2022-12-04 14:40:19 -06:00
NumbuhFour
1b09fd5410
Implement CAMERA_VISIBLE_LAYERS as built-in shader variable
2022-12-03 22:41:27 -08:00
Rémi Verschelde
daf168f4c8
Merge pull request #69522 from clayjohn/IBL-black-metal
...
Allow black metallic materials to reflect IBL
2022-12-03 12:46:30 +01:00
Rémi Verschelde
29ddbfa19a
Merge pull request #69514 from clayjohn/IBL-roughness
...
Properly remap roughness when reading from radiance map
2022-12-03 12:46:25 +01:00
clayjohn
1e05dd3504
Allow black metallic materials to reflect IBL
2022-12-02 19:54:59 -08:00
clayjohn
b2b89d7294
Properly remap roughness when reading from radiance map
...
This ensures that we consistently use perceptual roughness which matches the behaviour of most other PBR renderers like Blender, Ue4 and Godot 3
2022-12-02 15:39:20 -08:00
clayjohn
f33ffd9ab4
Add Skeletons and Blend Shapes to the OpenGL renderer
...
This uses a similar multipass approach to blend shapes
as Godot 3.x, the major difference here is that we
need to convert the normals and tangents to octahedral
for rendering.
Skeletons work the same as the Vulkan renderer except the bones
are stored in a texture as they were in 3.x.
2022-11-29 09:45:03 -08:00
Markus Sauermann
75d56f4201
Fix parameters for hash_murmur3_one_32
...
In multiple locations in the codebase hash_murmur3_one_32 is used for
generating hash values.
Whenever a sequence of multiple hash-calculation happens within a single
function, the previous hash value is always used as input in the following
hash-calculations. The only exception is get_cache_multipass, where currently the previous
hash value is overridden without utilizing it.
This patch corrects that.
2022-11-22 19:46:54 +01:00
dzil123
b4437cbaa6
Fix various missing rendering parameter checks
2022-11-22 03:48:32 -08:00
Rémi Verschelde
e7418cac3d
Merge pull request #68942 from Chaosus/barrier_mask_flags
...
Expose `BarrierMask` as flags enum in `RenderingDevice`
2022-11-22 08:31:12 +01:00
Yuri Rubinsky
acaf38cfbc
Expose `BarrierMask` as flags enum in `RenderingDevice`
2022-11-22 09:45:20 +03:00
Markus Sauermann
28af870750
Code simplifications found by cppcheck
...
They are based on:
- Boolean arithmetic simplifications
- setting variables that are not accessed
- constant variables
2022-11-21 08:43:36 +01:00
Rémi Verschelde
3a43d44656
Merge pull request #68830 from Ayush-singla27/issuebranch
...
fixed incorrect mesh normals in shaders
2022-11-20 11:35:52 +01:00
clayjohn
0e5a98cdd8
Fix drawing of 2D skeletons in the RD renderer.
...
Also clean up skeleton code in preparation for adding them to GLES3
Properly update Mesh2D AABBs when skeleton is updated
2022-11-18 23:36:40 -08:00
Ayush Singla
75ba0a7957
fixed incorrect mesh normals in shaders
2022-11-19 11:06:03 +05:30
Rémi Verschelde
58cb11b396
Merge pull request #68710 from BastiaanOlij/fix_vrs
...
Fix VRS issues
2022-11-18 16:19:22 +01:00
clayjohn
21ac6d7d8e
Finish implementing Canvas Background mode
2022-11-17 12:51:26 -08:00
dzil123
8fab25f32f
GLES3 TextureStorage - add missing null checks
2022-11-16 23:31:59 -08:00
Bastiaan Olij
616ba8745f
Fix VRS issues
2022-11-17 00:32:42 +11:00
Rémi Verschelde
245e6454a0
Merge pull request #68673 from clayjohn/RD-alpha-hash
...
Fix alpha hash by correcting typos and doing calculations in object space
2022-11-15 10:28:59 +01:00
Rémi Verschelde
5f78f24b08
Merge pull request #68426 from clayjohn/GLES3-particles
...
Add GPUParticles to the OpenGL3 renderer.
2022-11-15 10:28:44 +01:00
Rémi Verschelde
1e9a61cd40
Merge pull request #68487 from clayjohn/RD-mobile-raster
...
Use raster versions of copy effects for 2D operations when using the mobile renderer
2022-11-15 10:27:43 +01:00
Rémi Verschelde
64d7ce2a6e
Merge pull request #68628 from clayjohn/shadows
...
Implement is_animated and casts_shadows
2022-11-15 10:27:29 +01:00
clayjohn
9ce57050a5
Add GPUParticles to the OpenGL3 renderer.
...
This includes collision (2D SDF, Box, Sphere, Heightmap),
attraction (Box, Sphere), and all sorting modes.
This does not include 3D SDF collisions, trails, or
manual emission.
2022-11-14 23:28:25 -08:00
clayjohn
81d8b502cc
Fix alpha hash by correcting typos and doing calculations in object space
2022-11-14 17:57:49 -08:00
Rémi Verschelde
7a9a173a9f
Merge pull request #68339 from clayjohn/RD-shadow-acne
...
Scale light shadow bias by soft_shadow_scale to reduce shadow acne
2022-11-14 23:25:52 +01:00
Markus Sauermann
3b14f0334c
Remove redundant Variant-types initializations
2022-11-14 19:35:19 +01:00
Rémi Verschelde
63cded6a85
Merge pull request #61884 from Calinou/alpha-hash-use-opaque-pipeline
...
Use opaque rendering pipeline for alpha hash materials
2022-11-14 11:08:35 +01:00
clayjohn
4abf47f407
Implement is_animated and casts_shadows
...
This allows the renderer to correctly decide when to update shadow maps
This PR also adds TIME to a few missing places
2022-11-13 14:09:21 -08:00
Rémi Verschelde
9e97bc5857
Merge pull request #68574 from clayjohn/RD-shadow-time
...
Properly set TIME shader uniform when rendering shadows
2022-11-13 15:50:54 +01:00
clayjohn
aaaa4b8d68
Properly set TIME shader uniform when rendering shadows
2022-11-12 10:51:02 -08:00
Rémi Verschelde
014fac8f28
Merge pull request #67746 from SonnyBonds/fix_cluster_shader_mvk
...
Fix cluster_render.glsl failing on some Macs
2022-11-11 21:05:20 +01:00
Rémi Verschelde
c41b9c5f5b
Merge pull request #67972 from and-rad/vector-field-consistency
...
Fix inconsistency between vector field texture and world space directions
2022-11-11 21:05:00 +01:00
Rémi Verschelde
aae4b3d9d0
Merge pull request #68496 from clayjohn/RD-point
...
Ensure user shader is used in depth pass when point size is used
2022-11-11 10:54:55 +01:00
Rémi Verschelde
636d2189d0
Merge pull request #68511 from clayjohn/RD-mobile-sky
...
Enable mipmaps in cubemap roughness shader
2022-11-11 10:54:44 +01:00
Rémi Verschelde
e10f8cbf40
Merge pull request #68186 from pkdawson/expose-texture-rd
...
Expose texture_get_rd_texture for scripts
2022-11-11 10:43:57 +01:00
Rémi Verschelde
1691a33eb9
Merge pull request #67374 from MrBlockers/fix-draw-primitive
...
Fix draw_primitive ignoring texture argument
2022-11-11 10:43:18 +01:00
clayjohn
3ceb342d37
Enable mipmaps in cubemap roughness shader
2022-11-10 23:41:51 -08:00
clayjohn
a7adc7ab37
Ensure user shader is used in depth pass when point size is used
2022-11-10 15:26:07 -08:00
clayjohn
8e41221404
Use raster versions of copy effects for 2D operations when using the mobile renderer
...
This PR implements a few basic copy operations in raster that weren't available before
2022-11-10 12:47:26 -08:00
clayjohn
4aab9cbdfc
Fix GPUParticles not rendering in doubles build of the engine.
...
real_t was mistakenly used in uniform structs causing a mismatch between the GPU uniform and the CPU uniform
2022-11-09 08:58:04 -08:00
clayjohn
a1c3591461
Request redraw in OpenGL3 and mobile renderers when TIME used in shader
2022-11-08 22:52:11 -08:00
Hugo Locurcio
ab7a807f2b
Rename GPUParticles2D/3D's `trail_length_secs` to `trail_lifetime`
...
The property already has a "seconds" suffix in the inspector.
The "lifetime" term makes it more obvious that the property is
specified as time, not a distance in units.
The property hint now allows manually entering values greater than
10 seconds.
The internal rendering value's default now matches the particles
nodes' default.
2022-11-07 13:37:40 +01:00
clayjohn
5f4a561f6c
Scale light shadow bias by soft_shadow_scale to reduce shadow acne on high quality settings
2022-11-06 10:49:55 -08:00
kobewi
1778301cd0
Add call_deferred() method to Callable
2022-11-04 17:24:34 +01:00
David Snopek
7fb8b931d7
Collapse three seperate texture storage methods into render_target_set_override()
2022-11-03 13:03:30 -05:00
Patrick Dawson
71d8de2763
Expose texture_get_rd_texture
2022-11-03 05:27:24 +01:00
Rémi Verschelde
2c0544a7b8
Merge pull request #67878 from clayjohn/RD-particles-amount
...
Correctly set number of particle dispatches when setting view axis
2022-11-03 00:32:20 +01:00
Rémi Verschelde
f7c611ab71
Style: Misc docs and comment style and language fixes
...
- 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-11-02 19:01:18 +01:00
Rémi Verschelde
cb1931b271
Merge pull request #67639 from clayjohn/GLES3-2d-shadows
...
Add 2D shadows and canvas SDF to OpenGL3 renderer
2022-11-02 17:12:20 +01:00
Rémi Verschelde
5947f22be9
Merge pull request #67578 from KoBeWi/GEDITOR
...
Unify usage of GLOBAL/EDITOR_GET
2022-10-31 13:15:58 +01:00
Rémi Verschelde
3312d0a87b
Merge pull request #67907 from clayjohn/RD-model-matrix
...
Correctly rename to read_model_matrix when using shader builtins that rely on model matrix
2022-10-31 11:07:24 +01:00
Rémi Verschelde
d147adc591
Merge pull request #67915 from RevoluPowered/fix-intel-macbook-crash-subgroups
...
Ensure vulkan subgroups are disabled for MoltenVK
2022-10-31 10:53:30 +01:00
Yuri Rubinsky
11e1bac768
Merge pull request #67112 from Chaosus/fix_boolean_uniform_instances
2022-10-28 23:17:23 +03:00
clayjohn
2ec234ff67
Add 2D shadows and canvas SDF to OpenGL3 renderer
...
This is an initial implementation based on the current RD implementation
Performance will improve later
2022-10-28 11:33:23 -07:00
clayjohn
31c1a06ab5
Fix ss_effects_flags uniform in clustered forward renderer
...
This comes from an uncaught merge conflict resulting from the split of scene_data into
scene_data and implementation_data
2022-10-27 15:37:38 -07:00
Clay John
0d711cad30
Merge pull request #66107 from devloglogan/ambient-light-disabled-fix
...
Fix ambient_light_disabled render mode flag
2022-10-27 10:08:29 -07:00
Clay John
8fd92ed867
Merge pull request #64710 from MinusKube/window-size-crash
...
Prevent windows from having a size greater than device limit
2022-10-27 10:02:44 -07:00
Clay John
e1caa8797b
Merge pull request #67043 from clayjohn/clip_children
...
Improve behaviour of clip_children by clipping to parent alpha value but still retaining parent color
2022-10-27 09:59:27 -07:00
Clay John
682156e1f0
Merge pull request #66383 from aaronfranke/basis-from-euler
...
Clean up Basis from Euler code
2022-10-27 09:44:21 -07:00
Andreas Raddau
a5828cd0e3
Improved consistency between vector field texture and world space
2022-10-27 15:43:24 +02:00
Gordon MacPherson
381d457a2a
Ensure vulkan subgroups are disabled for MoltenVK
...
We found they don't work on intel macbooks properly at all.
Possible future solutions:
- update to moltenvk.
- update to spirv may resolve it.
2022-10-26 20:12:06 +01:00
Gordon MacPherson
56df8d5f19
Fix EXE_BAD_ACCESS caused by optional argument
...
This argument is now non optional, but this never hits the same bad access.
I voted to simplify the code here since the argument is never used optionally in our codebase.
2022-10-26 19:33:35 +01:00
clayjohn
020ac29fc3
Correctly rename to read_model_matrix when using shader builtins that rely on model matrix
2022-10-26 09:45:35 -07:00
clayjohn
3d28cb3cd3
Correctly set number of particle dispatches when setting view axis
2022-10-25 12:05:40 -07:00
Anders Stenberg
bbb1f900dd
Fix cluster_render.glsl failing on some Macs
...
Some Macs encounter an internal error when compiling cluster_render.glsl
caused by a likely bug in the MVK/Metal
compiler when using gl_HelperInvocation.
2022-10-22 12:27:13 +02:00
MrBlockers
0c4fd03f40
Fix draw_primitive ignoring texture argument
2022-10-21 21:35:13 -04:00
Aaron Franke
7f9a8c99c9
Clean up Basis from Euler code
2022-10-21 17:54:49 -05:00
kobewi
e48c5daddf
Unify usage of GLOBAL/EDITOR_GET
2022-10-18 19:01:48 +02:00
Markus Sauermann
b8031bb7d6
Code simplifications
...
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-18 12:47:40 +02:00
clayjohn
b6f44859d7
Implement multiple clip_children modes for CanvasItems
2022-10-14 08:02:28 -07:00
kobewi
072f6feaba
Make some Image methods static
2022-10-14 14:34:15 +02:00
clayjohn
09b1a6f85f
Improve behaviour of clip_children by clipping
...
to parent alpha value, but still retaining
parent color
2022-10-13 18:35:12 -07:00
Rémi Verschelde
367a9b8056
Merge pull request #67335 from clayjohn/GLES3-2d-lights
...
Add 2D lights to OpenGL3 canvas renderer
2022-10-13 09:05:36 +02:00
Rémi Verschelde
0aa2d70613
Merge pull request #67320 from Calinou/fix-volumetric-fog-low-density
...
Fix volumetric fog not rendering at densities lower than or equal to 0.001
2022-10-13 09:05:30 +02:00
Rémi Verschelde
f2bd389e21
Merge pull request #67307 from TechnoPorg/lod-radial-distance
...
Use radial distance for making LOD decisions.
2022-10-13 09:05:00 +02:00
clayjohn
e600fb93a5
Add 2D lights to OpenGL3 canvas renderer
...
This is an initial implementation using the same single-pass approach as the RenderingDevice.
2022-10-12 17:55:01 -07:00
Hugo Locurcio
6aebc7b66e
Fix volumetric fog not rendering at densities lower than or equal to 0.001
...
This allows volumetric fog to render with the lowest density that
can be specified in the inspector (0.0001).
2022-10-13 00:45:49 +02:00
TechnoPorg
b04350828e
Use radial distance for making LOD decisions.
...
Previously, only forward basis distance from the camera was used.
This means that unnecessarily high LOD levels were used for objects located to the side of the camera.
The distance from the camera origin is now used, independently of direction.
2022-10-12 07:21:42 -06:00
Clay John
18d2035a3d
Merge pull request #67110 from Chaosus/fix_incorrect_vec3_ubo_fill
...
Fix incorrect offset for vec3 datatypes in `_fill_std140_ubo_empty`
2022-10-11 12:24:48 -07:00
Pedro J. Estébanez
ee91531998
Restrict MSAA attachment usage to the strictly needed set
2022-10-11 20:33:21 +02:00
Rémi Verschelde
422c398962
Merge pull request #67176 from cooperra/negative-scale-culling-fix
...
Vulkan Clustered: Fix culling of negatively-scaled objects
2022-10-11 09:27:34 +02:00
Rémi Verschelde
3306ffefd1
Merge pull request #67000 from RandomShaper/split_render_further
...
Polish rendering driver refactor further
2022-10-11 09:23:32 +02:00
Rémi Verschelde
8017827144
SCons: Re-enable treating `#warning` as error with `werror`
...
Replace all TODO uses of `#warning` by proper TODO comments, and will open
matching bug reports to keep track of them.
We don't have a great track record fixing TODOs, but I'd wager we're even
worse for fixing these "TODO #warning" so we should prohibit this usage.
2022-10-10 16:12:26 +02:00
Robbie Cooper
79d3e090cd
Vulkan Clustered: Fix culling of negatively-scaled objects
...
Negatively scaled objects should be mirrored. This is already implemented, but it breaks when mirrored and non-mirrored instances of the same object are visible together.
It turns out that the code that skips-over repeats in `RenderForwardClustered::_render_list_template` also skips the code that accounts for the culling mode of mirrored objects.
The solution here is to consider the `mirror` flag when determining repeats. This might result in more draw commands than necessary since a mirrored object can split a group of non-mirrored instances in two.
This problem doesn't appear in the mobile renderer because the repeat optimization isn't implemented there yet.
The problem still appears in MultiMeshInstance3D in *all* renderers.
Fixes #62879 and #58546 .
2022-10-10 03:20:59 -04:00
Yuri Rubinsky
f4db4bb7a2
Fix incorrect setup of boolean uniform instances
2022-10-09 08:50:18 +03:00
Yuri Rubinsky
816600382e
Fix incorrect offset for vec3 datatypes in `_fill_std140_ubo_empty`
2022-10-09 06:32:50 +03:00
clayjohn
4765e5fa64
Allow clearing backbuffer after finishing CanvasGroup
...
This avoids an issue where having multiple CanvasGroups overlap
would create a weird artifact
2022-10-07 14:13:40 -07:00
bruvzg
0103af1ddd
Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4.
2022-10-07 11:32:33 +03:00
Rémi Verschelde
17c62a692e
Merge pull request #66756 from BastiaanOlij/fix_ssr
...
Fixing artifacts in SSR
2022-10-06 22:27:49 +02:00
Pedro J. Estébanez
24ff292999
Polish rendering driver refactor further
...
Mainly:
- Make `max_descriptors_per_pool` project setting Vulkan-specific.
- Use a common, render driver agnostic magic FourCC for shader binary data.
- Downgrade spirv_reflect to Vulkan-only dependency.
- Add a `RENDER_DRIVER_*` macro to GLSL shader code for per-driver customizations.
2022-10-06 21:08:54 +02:00
Rémi Verschelde
d935235e9c
Merge pull request #66922 from BastiaanOlij/fix_direct_shadow
...
Make sure atlas rect for directional lights is calculated using floats
2022-10-05 13:38:24 +02:00
Bastiaan Olij
aba356e882
Make sure atlas rect for directional lights is calculated using floats
2022-10-05 22:12:57 +11:00
Rémi Verschelde
ecd4ab1e14
Merge pull request #66683 from clayjohn/SRGB-canvasitem
...
Default CanvasItem materials to use sRGB space for uniform colors
2022-10-05 11:44:52 +02:00
Rémi Verschelde
3a2b0ab73d
Merge pull request #66898 from aaronfranke/proj-mat-columns
...
Rename Projection `matrix` to `columns`
2022-10-05 08:35:26 +02:00
Bastiaan Olij
c7656978ba
Adding getters to RenderTarget and implementing override functionality for XR
2022-10-05 11:37:49 +11:00
Aaron Franke
2cea42cc7f
Rename Projection `matrix` to `columns`
2022-10-04 12:34:19 -05:00
Bastiaan Olij
d09ad714bf
Fixing artifacts in SSR
2022-10-04 23:47:13 +11:00
Bastiaan Olij
02b0c22e38
Moving SSEffects settings into class
2022-10-04 11:03:36 +11:00
Bastiaan Olij
ddc4ae1175
Move cluster builder, sdfgi and gi structures to clustered renderer, move light and probe elements into storage and reorganise our render_scene method.
2022-10-04 11:03:32 +11:00
clayjohn
3126619aa5
Update Instance flags in shaders to match instance flags in engine
2022-10-02 21:37:06 -07:00
clayjohn
06d0e56559
Default CanvasItem materials to not convert uniform colors to linear space.
...
The 2D renderer in Godot is totally in sRGB space so it is appropriate
to keep 2D uniform colors in sRGB space
2022-09-30 15:15:11 -07:00
Rémi Verschelde
166df0896c
Fix typos with codespell
...
Using codespell 2.3-dev from current git.
And fix typo in `methods.py` for `vsproj=yes` option (still won't work
though).
2022-09-30 14:23:36 +02:00
Rémi Verschelde
67961d875d
Merge pull request #66178 from clayjohn/double-precision-rendering
...
Emulate double precision for regular rendering operation when REAL_T_IS_DOUBLE
2022-09-30 09:59:45 +02:00
Rémi Verschelde
fe40c52be8
Merge pull request #66638 from timothyqiu/rendering-null
...
Add various null checks in RenderingServer
2022-09-30 09:58:58 +02:00
Rémi Verschelde
7a0500d9a3
Merge pull request #66626 from danboo/fix-typo-run-debug-collisons
...
Fix typos - "collison" -> "collision"
2022-09-30 09:58:25 +02:00
Haoyu Qiu
ffdac72eaa
Add various null checks in RenderingServer
2022-09-30 10:18:14 +08:00
danboo
eba8be6e45
Fix typo - "collison" -> "collision"
2022-09-29 13:56:26 -08:00
Rémi Verschelde
6991e9b43d
Merge pull request #66583 from bruvzg/constexpr
...
Use `constexpr` in the conditions with template parameters and `sizeof`s to suppress C4127 warnings.
2022-09-29 10:44:22 +02:00
Rémi Verschelde
315a71103e
Merge pull request #66565 from clayjohn/canvas-lights
...
Clean up canvas light shader API.
2022-09-29 10:43:42 +02:00
bruvzg
ea1848ce0a
Use `constexpr` in the conditions with template parameters and `sizeof`s to suppress C4127 warnings.
2022-09-29 10:38:21 +03:00
clayjohn
1a0890122f
Clean up canvas light shader API.
...
Expose LIGHT_ENERGY and LIGHT_IS_DIRECTIONAL.
Add LIGHT_DIRECTION
2022-09-28 11:46:58 -07:00
Rémi Verschelde
7ab01450cf
Fix MSVC warning C4702: unreachable code
...
Part of #66537 .
2022-09-28 16:46:48 +02:00
Rémi Verschelde
b8870b91b5
Merge pull request #66466 from clayjohn/FXAA-fix
...
Take FXAA samples from half-pixel coordinates to improve quality
2022-09-27 09:58:22 +02:00
Rémi Verschelde
2ad63f68b3
Merge pull request #66370 from bitbrain/fix-light2d-blend-modes
...
Fix broken 2D light blending, addresses #49922
2022-09-27 09:57:44 +02:00
Rémi Verschelde
5ecaa676cc
Merge pull request #66317 from clayjohn/debanding-bug
...
Move deband to end of tonemapping.
2022-09-27 09:54:45 +02:00
clayjohn
dbcc0fa2a6
Take FXAA samples from half-pixel coordinates to improve quality
2022-09-26 11:54:29 -07:00
Rémi Verschelde
5ae6379e5d
Merge pull request #66394 from bitbrain/fix-unshaded-canvas-modulate
...
Fix Unshaded CanvasItem for Vulkan
2022-09-26 08:24:45 +02:00
Bastiaan Olij
56d6a13fd7
Make dependencies with shader includes in subfolders
2022-09-26 12:29:19 +10:00
Miguel Gonzalez Sanchez
125f0be8b7
do not apply modulate on canvas when unshaded is set
2022-09-25 12:13:46 +01:00
Miguel Gonzalez Sanchez
2047be4516
fix broken 2D light blending, addresses #49922
2022-09-24 20:13:12 +01:00
clayjohn
fe69fedc1a
Move deband to end of tonemapping.
...
This avoids artifacts when using adjustments and color correction
2022-09-23 11:46:40 -07:00
Rémi Verschelde
03410efa15
Merge pull request #66284 from clayjohn/particles-mem-bug
...
Properly initialize motion vectors offset when motion vectors are disabled
2022-09-23 09:45:48 +02:00
clayjohn
aac8d5c406
Properly initialize motion vectors offset when motion vectors are disabled.
...
This fixes an uninitialized memory bug that caused particles to fail in non-LTO builds
2022-09-22 20:36:01 -07:00
Rémi Verschelde
d1a155e3cd
Fix various -Wmaybe-uninitialized warnings from GCC 12.2.1
...
Not sure why I didn't get those before, it may be due to upstream
changes (12.2.1 is a moving target, it's basically 12.3-dev), or simply
rebuilding Godot from scratch with different options.
2022-09-22 11:29:48 +02:00
clayjohn
27a3014f50
Emulate double precision for regular rendering operation.
...
We calculate the lost precision on the CPU and pass it into the GPU
so that it can calculate an error-corrected version of the vertex position
2022-09-20 23:40:01 -07:00
Rémi Verschelde
7da532275b
Merge pull request #65541 from clayjohn/renderer-setting
...
Split rendering driver project setting into renderer_name and rendering_driver
2022-09-20 09:43:59 +02:00
Logan Lang
e61d8b6f53
enabled ambient_light_disabled render mode flag
2022-09-19 17:12:32 -05:00
Rémi Verschelde
effddbcf12
Merge pull request #66065 from kidinashell/issue-59488
...
SpotLight3D's and OmniLight3D's Projector doesn't work
2022-09-19 22:02:17 +02:00
clayjohn
4a1c7de57c
Split rendering driver project setting into renderer_name and rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
2022-09-19 10:26:10 -07:00
Tobias Widner
422bacbfd1
Fix Vulkan: SpotLight3D's and OmniLight3D's Projector doesn't work
2022-09-19 17:18:45 +02:00
Rémi Verschelde
49891e4c2f
Merge pull request #65915 from clayjohn/VULKAN-mobile-fog
...
Restore fog in vulkan mobile renderer.
2022-09-19 09:23:24 +02:00
clayjohn
2ecc8b9a73
Restore fog in vulkan mobile renderer.
...
The condition accidentally disabled fog whenever it was enabled
2022-09-16 09:18:11 -07:00
Rémi Verschelde
bda63e1b5a
Merge pull request #65833 from JFonS/taa_fix_particles_errors
...
Fix error spam in the renderer when using GPUParticles3D
2022-09-16 11:59:00 +02:00
JFonS
b668268772
Fix error spam in the renderer when using GPUParticles3D
...
The flag INSTANCE_DATA_FLAG_MULTIMESH is used for both multimesh and particles instances, this commit adds a new INSTANCE_DATA_FLAG_PARTICLES flag to discriminate between them.
This flag will also be used in the future to properly support TAA in particles.
2022-09-16 09:44:22 +02:00
Rémi Verschelde
848668ed45
Merge pull request #65794 from Geometror/fix-canvas-backbuffer
...
Fix/restore BackBufferCopy
2022-09-16 09:20:04 +02:00
Bastiaan Olij
02ea1de7d0
Extract shared scene data into a separate class
2022-09-15 12:09:57 +10:00
Hendrik Brucker
e235bca995
Fix/restore BackBufferCopy
2022-09-15 02:36:39 +02:00
Rémi Verschelde
ecaa7b634e
Merge pull request #65322 from ceLoFaN/fix-dof-artifact-at-high-blur
2022-09-15 00:03:40 +02:00
Rémi Verschelde
957aa79ce0
Merge pull request #65789 from clayjohn/sky-update-bug
...
Clear last frame directional light buffer when number of lights changes.
2022-09-14 19:06:19 +02:00
Clay John
f709596631
Merge pull request #65418 from JFonS/taa_multimesh
...
Add motion vectors support for MultiMeshInstance
2022-09-14 09:06:27 -07:00
clayjohn
72d899702b
Clear last frame directional light buffer when number of lights changes.
...
This ensures that the buffers don't go out of sync.
2022-09-14 08:30:35 -07:00
clayjohn
8fa76a5272
Move debanding into internal sky shader code so that it is applied after everything else.
...
This ensures that the debanding does not scale with exposure or any other effect.
2022-09-13 10:39:04 -07:00
Bastiaan Olij
873366cb2d
Fix uniform buffer being created every frame is SSAO and SSIL half_size is different
2022-09-13 17:49:32 +10:00
Rémi Verschelde
79b21e96ad
Merge pull request #65544 from clayjohn/lambert-wrap
...
Apply energy conservation to LAMBERT_WRAP diffuse mode by dividing by PI
2022-09-12 20:42:27 +02:00
clayjohn
97be1fb7b6
Apply energy conservation to LAMBERT_WRAP and TOON diffuse modes by dividing by PI
2022-09-12 08:45:40 -07:00
jfons
74cdee4cb5
Add motion vectors support for MultiMeshInstance
...
Transparently handle changes in multimesh transforms so they get reflected in the motion vectors buffer.
2022-09-12 15:28:12 +02:00
Rémi Verschelde
f211869530
Merge pull request #65594 from clayjohn/SSR-dialectric
2022-09-12 14:23:04 +02:00
Bastiaan Olij
b519d7619c
Fixed MSAA initialisation in clustered forward renderer
2022-09-12 11:07:51 +10:00
clayjohn
65f0113bc6
Properly scale SSR reflection based on metallic value for dielectric materials
2022-09-09 16:52:02 -07:00
ceLoFaN
e844b95eaf
Fix DoF artifacting at high blur amounts
2022-09-05 21:38:40 +03:00
Aaron Franke
817ae95667
Replace AABB has_no_volume with has_volume
...
Also replace has_no_surface with has_surface
2022-09-04 23:03:36 -05:00
MinusKube
f5a808192b
Prevent windows from having a size greater than device limit
2022-09-04 22:48:54 +02:00
Rémi Verschelde
3a62c294c7
Merge pull request #65170 from KoBeWi/your_argument_is_TypedArray
2022-09-02 13:57:02 +02:00
Rémi Verschelde
c82bbc38a5
Merge pull request #64952 from Chaosus/vs_rename_uniform_to_param
2022-09-02 13:49:53 +02:00
Rémi Verschelde
d63c6fc463
Merge pull request #60185 from Calinou/environment-fog-and-sky-affect
2022-09-01 23:52:34 +02:00
Hugo Locurcio
699e9f7966
Add Environment properties to control fog rendering on background sky
...
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-01 19:07:39 +02:00
kobewi
7adc8376ed
Change Array arguments to TypedArray
2022-09-01 13:13:19 +02:00
Bastiaan Olij
2cd84be64d
Extracting render buffers and changing it to a more generic solution
2022-09-01 20:01:45 +10:00
Yuri Rubinsky
8191b3c110
Rename `uniform` to `parameter` across the engine
2022-09-01 11:42:57 +03:00
clayjohn
385ee5c70b
Implement Physical Light Units as an optional setting.
...
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-31 12:14:46 -07:00
Rémi Verschelde
c40855f818
Merge pull request #65130 from BastiaanOlij/fix_mobile_signed_tangent
...
Fix vector type for signed tangent in mobile shader
2022-08-31 09:12:31 +02:00
Bastiaan Olij
708222bb9a
Fix vector type for signed tangent in mobile shader
2022-08-31 16:35:54 +10:00
Hugo Locurcio
09bedcead4
Add a per-light volumetric fog energy property
...
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.
2022-08-30 20:03:38 +02:00
Rémi Verschelde
02d510bd07
Merge pull request #63003 from Geometror/msaa-2d
2022-08-30 14:54:20 +02:00
Aaron Franke
10a56981dc
Rename String `plus_file` to `path_join`
2022-08-29 19:38:13 -05:00
sakrel
728fb6ea95
Fix updating OccluderPolygon shapes
2022-08-29 03:51:53 +02:00
Rémi Verschelde
4808d01b2b
Merge pull request #64223 from Calinou/taa-fxaa-use-negative-mipmap-lod-bias
...
Automatically use negative mipmap LOD bias when TAA and/or FXAA are enabled
2022-08-26 23:11:25 +02:00
Rémi Verschelde
f9f2446972
Merge pull request #64367 from Mickeon/rename-var-to-str
...
Rename `str2var` to `str_to_var` and similar
2022-08-26 23:04:06 +02:00
Micky
59e11934d8
Rename `str2var` to `str_to_var` and similar
...
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-26 14:58:22 +02:00
Rémi Verschelde
7013c68619
Merge pull request #64422 from bruvzg/make_fonts_unbearably_ugly_2.0
2022-08-26 11:59:07 +02:00
Micky
723bf85145
Rename ParticlesMaterial to ParticleProcessMaterial
...
Also affects their file names, related classes and documentation.
2022-08-26 02:53:08 +02:00
Hugo Locurcio
45bc1a3790
Automatically use negative mipmap LOD bias when TAA and/or FXAA are enabled
...
This improves texture sharpness when TAA and/or FXAA are enabled,
without requiring manual user intervention.
2022-08-25 19:38:18 +02:00
bruvzg
bcc3643989
Add font LCD sub-pixel anti-aliasing support.
2022-08-23 08:47:21 +03:00
Rémi Verschelde
7b4927bb5f
Merge pull request #60309 from The-O-King/oct
2022-08-22 19:29:21 +02:00
Omar El Sheikh
61522d8491
Add Blendshape Support
...
Update the blendshape shader to decode/encode octahedral normals
2022-08-20 20:59:28 -07:00
Hugo Locurcio
0c5f254956
Merge pull request #64110 from Geometror/fix-light-shadow-off
2022-08-20 17:06:03 +02:00
Max Hilbrunner
5e0d2b5097
Merge pull request #62046 from clayjohn/vertexless-draw
...
Allow creating meshes without vertex positions
2022-08-20 05:32:28 +02:00
Hendrik Brucker
18585c69b3
Fix OmniLight/SpotLight shadow opacity calculation
2022-08-20 01:05:44 +02:00
clayjohn
bbbcdd725a
Remove requirement to have vertex positions when creating a mesh. Meshes can now be constructed from an index buffer alone
2022-08-19 14:50:12 -06:00
Max Hilbrunner
019d6584ee
Merge pull request #64167 from clayjohn/screen-texture-hint
...
Add shader uniform hints for screen textures
2022-08-19 21:51:39 +02:00
Max Hilbrunner
117c530e1d
Merge pull request #64342 from clayjohn/DOF-scale
...
Properly scale depth in bokeh_dof effect
2022-08-19 21:16:32 +02:00
Aaron Franke
f91934872d
Use a const ref for the bone AABB in rendering code
2022-08-18 12:20:11 -05:00
Aaron Franke
e0d80b37e9
Don't try to merge unused bone AABBs in the rendering server
2022-08-14 23:30:48 -05:00
Omar El Sheikh
78881b3cc3
Octahedral Normal/Tangent Compression
...
Implementation of Octahedral normal compression into Godot 4.0
2022-08-13 08:09:32 -07:00
Hendrik Brucker
e96b1a2c0c
Implement MSAA for 2D [Vulkan only]
2022-08-13 01:09:48 +02:00
clayjohn
7d6287f616
Properly scale depth in bokeh_dof effect so that setting distance to blur effect is accurate again
2022-08-12 16:39:05 -06:00
Hugo Locurcio
ff9118d103
Merge pull request #64225 from Calinou/3d-scaling-bilinear-use-negative-mipmap-bias
2022-08-11 21:41:37 +02:00
clayjohn
7c848ee591
Detect if VRS supported before creating default VRS texture
2022-08-10 13:27:19 -06:00
Hugo Locurcio
b06890c2b7
Use negative mipmap LOD bias for sub-native bilinear 3D scale
...
This provides a benefit similar to FSR 1.0 (greater texture sharpness
at the cost of some graininess at sub-native resolution scales), but
without the added performance cost of FSR 1.0.
2022-08-10 17:16:02 +02:00