e41064388e
reverted naming to premul alpha (no T)
...
Initially 3d had premulT alpha as a keyword.
Since Canvas item uses mixed premul and premult as keywords,
3D is changed as well to keep consistency with 2D.
Unfortunately this keeps inconsistency with the internal ENUM.
2024-05-01 22:24:49 +02:00
41a2b0e83e
Added premult alpha blending to 3D (spatial) shaders.
...
Co-authored-by: jitspoe <jitspoe@yahoo.com >
Co-authored-by: Clay John <claynjohn@gmail.com >
2024-05-01 00:53:29 +02:00
d2d22748b4
Fix issue in shadow to opacity
2024-04-26 21:54:26 +10:00
4e5e81c7d4
Properly calculate penumbra for soft shadows with reverse z
...
Also fix a related bug where the DirectionalLight3D size was ignored unless a positional light with soft shadows touched the mesh
2024-04-25 17:06:49 -07:00
ffe0b869f5
Add LIGHT_VERTEX to fragment shader
...
Adds a new variable to the fragment shader to specify
the vertex position used when calculating lighting.
2024-04-25 06:56:02 -07:00
d950f5f838
Use Reverse Z for the depth buffer
2024-04-04 13:54:15 +02:00
08f4560e69
Add optional depth fog
2024-02-17 22:39:34 -03:00
1066f01607
Add ivec variants to multiview_uv for stereo rendering
2024-01-23 16:13:31 +11:00
43cf21cb71
Use best fit normals for storing screen space normals
2023-12-21 14:41:29 -07:00
c1d8b53ca0
Merge pull request #82668 from mrjustaguy/master
...
Improve split blending logic for Vulkan
2023-12-18 18:17:36 +01:00
a5399ab5af
Reduce the number of samplers used by the scene shaders
...
The hard limit for Apple devices is 16 samplers per stage. So we need to ensure we use less than that
2023-12-15 17:13:44 -07:00
2b9e6d2972
Use render pass uniform set to store viewport samplers.
...
This fixes a bugs where per-viewport samplers were being used for internal texture fetches (probes, sky, etc.).
This also fixes a bug when using multiple viewports in the same scene.
This also fixes a bug where the texture bias would override the bias from 3D scale.
2023-11-08 23:26:08 +01:00
57ba7ded87
Fix bug with alpha to coverage by enabling depth discard when using alpha to coverage
2023-10-30 23:07:30 +01:00
af1d81d95a
Only perform modelview transform on tangent and binormal when vertex shader is in local space
2023-10-05 22:08:36 -06:00
51ed3aef63
Vertex and attribute compression to reduce the size of the vertex format.
...
This allows Godot to automatically compress meshes to save a lot of bandwidth.
In general, this requires no interaction from the user and should result in
no noticable quality loss.
This scheme is not backwards compatible, so we have provided an upgrade
mechanism, and a mesh versioning mechanism.
Existing meshes can still be used as a result, but users can get a
performance boost by reimporting assets.
2023-10-05 12:02:23 -06:00
dd3d380a01
Improve Split Blending
...
Improve Split Blending Logic
2023-10-02 13:22:51 +02:00
057367bf4f
Add FidelityFX Super Resolution 2.2 (FSR 2.2.1) support.
...
Introduces support for FSR2 as a new upscaler option available from the project settings. Also introduces an specific render list for surfaces that require motion and the ability to derive motion vectors from depth buffer and camera motion.
2023-09-25 10:37:47 -03:00
dda8846dea
Fix LightmapGI shading sometimes being unlit or black
2023-09-20 01:41:32 +03:00
45a33cc749
Implement render mode fog_disabled and BaseMaterial3D setting Disable Fog
2023-09-05 18:15:02 +02:00
f14c944c21
Flip convention of motion vector to point from current pixel to the previous pixel.
2023-08-28 09:30:20 -03:00
e2984af013
Add motion vector support for animated surfaces like skeletons or blend shapes.
...
Extends mesh instances that required custom vertex buffers to create two alternating buffers that are written to and binds them to use them as the previous vertex buffer when generating motion vectors.
2023-08-16 11:37:42 -03:00
7c812cd7e9
Fix use of discard in shaders
...
discard was being included in all shaders set to depth pass opaque, which is the majority of shaders
Instead it should only be used with alpha prepass materials
2023-07-24 23:21:04 +02:00
bb15241e06
Merge pull request #77740 from ChibiDenDen/simplify_vulkan
...
Replace sampler arrays with constant sampler elements, simplify and reuse code for all shaders
2023-07-12 17:16:12 +02:00
35715e510f
replace sampler arrays with constant sampler elements
2023-06-22 01:11:57 +03:00
952b4b3f38
Apply reprojection in multiview for our cluster lookup
2023-06-21 11:17:01 +10:00
66272ea26e
Fix volumetric fog in stereo by projection vertex in combined space
2023-06-20 14:36:14 +10:00
9ce42d176d
Merge pull request #76977 from manueldun/light-shader-builtins
...
Enable the use of all supported builtins on the light shader
2023-06-09 11:04:46 +02:00
e2321c21db
Enable the use of all builtins on the light shader
...
When using the light process in spatial shader,
the built-ins work as spected, now they work in forward+,
mobile and compatibility renderer.
2023-06-08 14:14:14 -04:00
ca23d06a31
Re-implement the PSSM_SPLITS debug option
...
This uses a render_mode instead of shadow_color to avoid adding a cost to the basic shader
2023-04-28 17:53:56 -07:00
14a8124ffe
Add LIGHT_IS_DIRECTIONAL built-in for spatial shaders
2023-04-20 14:33:30 +02:00
63c6f0b93c
Use MODELVIEW_MATRIX for vertex transform when double precision is enabled
...
This commit updates the double precision vertex transform code from
using the MODEL_MATRIX to now use the MODELVIEW_MATRIX instead.
This can be made possible by transforming the MODELVIEW_MATRIX
back into model space (ie, same space as the MODEL_MATRIX) and then using it as if it were the MODEL_MATRIX.
With this in place we now properly handle VERTEX transformations that
a Material Shader might do, such as billboard-ing.
2023-03-29 10:37:30 -03:00
694c8ec273
Add render buffer support to screen space effects
2023-02-10 10:27:59 +11:00
8c77aea9ab
Expose EYE_OFFSET to gdshader code
2023-02-01 12:39:13 +11:00
4b0363312e
Merge pull request #71455 from BastiaanOlij/fix_stereo_screen_depth
...
Make screen texture and depth texture work in Multiview
2023-01-26 01:11:02 +01:00
85c478e170
Make screen texture and depth texture work in Multiview
2023-01-25 13:35:01 +11:00
260daf8a13
Merge pull request #71694 from clayjohn/VoxelGI-reflection
...
Use proper space for forward GI reflections
2023-01-23 22:29:54 +01:00
5b1df48c6c
Convert en_GB spelling to en_US with codespell
2023-01-23 11:02:20 +01:00
d84c9523f7
Fix DirectionalLight3D shadow opacity on Forward Mobile rendering backend
2023-01-22 22:25:15 +01:00
2ccc69cd7d
Use proper space for forward GI reflections
2023-01-19 12:58:59 -08:00
89766848de
Fix multiple issues that make the normal roughness texture unusable
2023-01-09 11:56:36 -08:00
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
1e05dd3504
Allow black metallic materials to reflect IBL
2022-12-02 19:54:59 -08:00
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
3a43d44656
Merge pull request #68830 from Ayush-singla27/issuebranch
...
fixed incorrect mesh normals in shaders
2022-11-20 11:35:52 +01:00
75ba0a7957
fixed incorrect mesh normals in shaders
2022-11-19 11:06:03 +05:30
81d8b502cc
Fix alpha hash by correcting typos and doing calculations in object space
2022-11-14 17:57:49 -08:00
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
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
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
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