Commit Graph

1658 Commits

Author SHA1 Message Date
clayjohn 9071809021 Remove viewport_set_disable_environment in favor of viewport_set_environment_mode
This allows us to set a default value inherited by child viewports and have child viewports set the value themselves which is needed for disabling the environment in the editor
2023-01-30 12:25:49 -08:00
clayjohn bc64a734d3 Fix various crashes relating to low roughness_layers 2023-01-30 12:16:33 -08:00
Rémi Verschelde e9de988020
Merge pull request #72031 from reduz/change-high-quality-texture-import
Refactor high quality texture import
2023-01-30 20:41:01 +01:00
Rémi Verschelde 58a0c4c69e
Merge pull request #72393 from clayjohn/GLES3-normal-roughness-error
Add a shader error when trying to using hint_normal_roughness_texture in the gl_compatibility renderer
2023-01-30 20:26:50 +01:00
Rémi Verschelde e86953cb53
Merge pull request #72356 from BastiaanOlij/fix_ssao_ssil_probes
Fix SSAO/SSIl being applied to reflection probes
2023-01-30 20:26:43 +01:00
clayjohn 97ed3dcf71 Add a shader error when trying to using hint_normal_roughness_texture in the gl_compatibility renderer 2023-01-30 09:04:34 -08:00
Juan Linietsky 28f51ba547 Refactor high quality texture import
* Only two texture import modes for low/high quality now:
  * S3TC/BPTC
  * ETC2/ASTC
* Makes sense given this is the general preferred and most compatible combination in most platforms.
* Removed lossy_quality from VRAM texture compression options. It was unused everywhere.
* Added a new "high_quality" option to texture import. When enabled, it uses BPTC/ASTC (BC7/ASTC4x4) instead of S3TC/ETC2 (DXT1-5/ETC2,ETCA).
* Changed MacOS export settings so required texture formats depend on the architecture selected.

This solves the following problems:

* Makes it simpler to import textures as high quality, without having to worry about the specific format used.
* As the editor can now run on platforms such as web, Mac OS with Apple Silicion and Android, it should no longer be assumed that S3TC/BPTC is available by default for it.
2023-01-30 15:53:23 +01:00
Bastiaan Olij 43a63db7cf Fix SSAO/SSIl being applied to reflection probes 2023-01-30 15:20:27 +11:00
Rémi Verschelde 23d087354d
Merge pull request #72214 from clayjohn/Skeleton2D-pivot
Automatically transform Skeleton2D calculations so pivots are not needed
2023-01-29 02:23:18 +01:00
clayjohn eb9c2b878a Automatically transform Skeleton2D calculations so pivots are not needed 2023-01-27 14:55:22 -08:00
bitsawer 0acaccebaf Fix several shader preprocessor include issues 2023-01-27 14:37:55 +02:00
Rémi Verschelde 6f7793ce1a
Merge pull request #71581 from clayjohn/dependency-changed
Flag dirty dependencies when GeometryInstance dependencies change in renderer
2023-01-26 22:57:32 +01:00
Rémi Verschelde 3cacc83526
Merge pull request #72138 from clayjohn/GL-globals
Properly append global uniform buffer name in gl_compatibility shaders
2023-01-26 22:52:42 +01:00
Rémi Verschelde b2164ee75b
Merge pull request #72109 from Chaosus/shader_derivative
Add derivative functions with precision to shaders
2023-01-26 22:51:54 +01:00
clayjohn eefddb07bc Properly append global uniform buffer name in gl_compatibility shaders
Also error when using instance uniforms
2023-01-26 12:14:45 -08:00
Yuri Rubinsky 8c8c333bf2 Add derivative functions with precision to shaders 2023-01-26 20:53:46 +03:00
bitsawer 6f5598979f Several shader preprocessor parser fixes and improvements 2023-01-26 14:57:23 +02:00
Rémi Verschelde bc73e32014
Merge pull request #72068 from clayjohn/RD-sky-texture
Validate another case of using DATA_FORMAT_A2B10G10R10_UNORM_PACK32 texture with storage flag
2023-01-26 01:12:12 +01:00
Rémi Verschelde 31496c296a
Merge pull request #72078 from bitsawer/fix_optimize_vertices
Fix range loop iteration regressions
2023-01-26 01:11:25 +01:00
Rémi Verschelde 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
Rémi Verschelde d5d127309b
Merge pull request #72064 from hcoura/fix-vulkan-mobile-gpu-particles
RenderForwardMobile - add dependency tracker info on geometry create
2023-01-26 01:08:58 +01:00
bitsawer 8c25bcdb84 Fix range loop iteration regressions 2023-01-26 00:14:39 +02:00
clayjohn 5f94b378ab Validate another case of using DATA_FORMAT_A2B10G10R10_UNORM_PACK32 texture with storage flag 2023-01-25 11:31:53 -08:00
Henrique Coura 28d8cad02e RenderForwardMobile - add dependency tracker info on geometry create 2023-01-25 15:25:49 -03:00
Yuri Rubinsky a6eb6b6b55 Fix array of token names in the shader parser 2023-01-25 18:18:07 +03:00
Bastiaan Olij 85c478e170 Make screen texture and depth texture work in Multiview 2023-01-25 13:35:01 +11:00
Rémi Verschelde a6042b649a
Merge pull request #71832 from Geometror/fix-spotlight-artifacts
Fix some `SpotLight3D` issues (clustering artifacts, leaking light, AABB)
2023-01-24 09:15:26 +01:00
Hendrik Brucker 4bd01a93dc Fix some SpotLight3D issues (clustering artifacts, light leak) 2023-01-24 01:08:32 +01:00
Rémi Verschelde 600fcf22ed
Merge pull request #71939 from clayjohn/RD-texture-format
Add a few more checks to ensure that unsupported image formats are not used in the mobile renderer
2023-01-23 22:30:19 +01:00
Rémi Verschelde 260daf8a13
Merge pull request #71694 from clayjohn/VoxelGI-reflection
Use proper space for forward GI reflections
2023-01-23 22:29:54 +01:00
clayjohn 5931d504c1 Add a few more checks to ensure that unsupported image formats are not used in the mobile renderer 2023-01-23 12:38:09 -08:00
Rémi Verschelde c309de5399
Merge pull request #71910 from jainl28patel/fix_ReflectionProbe_rendering
fix ReflectionProbe rendering extents for (10,10,10)
2023-01-23 20:46:22 +01:00
jainl28patel 2da3acf620 fix ReflectionProbe rendering extents for (10,10,10) 2023-01-24 00:32:24 +05:30
clayjohn ce8a2c6dbf Ensure that Particles have fully initialized before doing view axis pass in RD renderers 2023-01-23 09:37:18 -08:00
Rémi Verschelde 5b1df48c6c
Convert en_GB spelling to en_US with codespell 2023-01-23 11:02:20 +01:00
Rémi Verschelde d40501faee
Merge pull request #71690 from Calinou/forward-mobile-fix-directionallight3d-shadow-opacity
Fix DirectionalLight3D shadow opacity on Forward Mobile rendering backend
2023-01-23 10:24:09 +01:00
Hugo Locurcio d84c9523f7
Fix DirectionalLight3D shadow opacity on Forward Mobile rendering backend 2023-01-22 22:25:15 +01:00
kobewi 615c517034 Use range iterators in LocalVector loops 2023-01-21 18:44:42 +01:00
Rémi Verschelde 1b948a909f
Merge pull request #71788 from PrecisionRender/fix-filter_linear_mipmap-hint
Fix typo in hint when using removed built-in textures
2023-01-21 10:29:18 +01:00
Rémi Verschelde 23d8d44535
Merge pull request #71776 from clayjohn/PointLight2D-indices
Stop incrementing light_count once max number of lights are reached in 2D canvas renderer
2023-01-21 10:28:50 +01:00
PrecisionRender d9698f0e6f Fix type in hint when using removed built-in textures 2023-01-20 22:06:51 -06:00
clayjohn d3c3fa32af Stop incrementing light_count once max number of lights are reached in 2D canvas renderer 2023-01-20 17:04:00 -08:00
Rémi Verschelde d5838a06fa
Merge pull request #71709 from clayjohn/decals-lights-sorting
Sort decals and lights based on camera origin
2023-01-20 23:57:55 +01:00
Rémi Verschelde de3514b9ab
Merge pull request #71705 from clayjohn/RD-surface-free
Add mutex when adding geometry instances to the dirty list in the Forward Clustered renderer
2023-01-20 23:57:26 +01:00
clayjohn 921f99f9e3 Decrement texture_binding count when using screen textures 2023-01-20 12:48:13 -08:00
clayjohn a804556ab9 Add mutex when adding geometry instances to the dirty list in the Forward Clustered renderer 2023-01-20 10:34:19 -08:00
clayjohn 49bebf2bfb Sort decals and lights based on camera origin
Also implement sort_offset for decals

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-01-20 09:58:17 -08:00
Rémi Verschelde 9fc40123ab
Merge pull request #71679 from kleonc/draw_polyline_line_strip
`CanvasItem::draw_polyline` Support thin polylines drawn using line strip
2023-01-20 08:48:56 +01:00
clayjohn 2ccc69cd7d Use proper space for forward GI reflections 2023-01-19 12:58:59 -08:00
kleonc 728c51e362 CanvasItem::draw_polyline Support thin polylines drawn using line strip 2023-01-19 21:08:25 +01:00
bitsawer 6f57aae0ab Fix shader preprocessor memory leak 2023-01-19 22:06:59 +02:00
clayjohn faea9f5c10 Remove SCREEN_TEXTURE, DEPTH_TEXTURE, and NORMAL_ROUGHNESS_TEXTURE
in favour of texture hints
2023-01-18 19:52:47 -08:00
kleonc 43fc483e6c CanvasItem::draw_arc Clamp angle difference so arc won't overlap itself 2023-01-18 15:16:22 +01:00
clayjohn b2a31a3bbf Remove light from dynamic light list when removing scenario 2023-01-17 14:33:15 -08:00
clayjohn c4a8284dec Flag dirty dependencies when GeometryInstance dependencies change in renderer
Normally dependencies are only set dirty when changed during culling, but that misses changes that happen in the renderer (like a new shader being set in a material)
2023-01-17 12:39:13 -08:00
Rémi Verschelde 9cf0ffe1fa
Merge pull request #71524 from clayjohn/MOBILE-TAA
Warn when trying to enable TAA from mobile or gl_compatibility backend
2023-01-17 11:06:46 +01:00
Rémi Verschelde 59dcf64dd6
Merge pull request #71382 from jainl28patel/sprite2d_flip_normal_map
fix normal map not flipping in sprite2D
2023-01-17 10:56:44 +01:00
Rémi Verschelde e1e30f9fc7
Merge pull request #71520 from conradhappeliv/fix-71480
Fix GPUParticles2D not recomputing transforms each frame
2023-01-17 10:14:32 +01:00
Conrad H. Appel, IV ad6dd38795 Fix GPUParticles2D not recomputing transforms each frame 2023-01-16 14:10:58 -08:00
clayjohn 71ed83d301 Warn when trying to enable TAA from mobile or gl_compatibility backend
TAA should only be enabled from the forward_plus renderer for now
2023-01-16 13:32:40 -08:00
Rémi Verschelde 0ddd9c3e8f
Merge pull request #71526 from clayjohn/RD-sun-scatter
Properly initialize directional_light_count in RD sky shaders
2023-01-16 22:30:54 +01:00
Rémi Verschelde 2156250471
Merge pull request #62236 from MinusKube/master
Fix polyline not supporting closed polygons and not having a uniform width
2023-01-16 22:13:07 +01:00
clayjohn 8b3db6e9ce Properly initialize directional_light_count in RD sky shaders 2023-01-16 13:05:52 -08:00
MinusKube 01af885e69 Fix draw_polyline not supporting closed polygons and not having a uniform offset 2023-01-16 20:27:30 +01:00
Danil Alexeev a8cbb6245b
Fix scaling issue in `draw_line` and similar methods 2023-01-16 12:49:58 +03:00
Raul Santos 7560340ef6
Rename `center` method to `get_center` in Plane. 2023-01-15 17:18:50 +01:00
Rémi Verschelde ac104a69b8
Merge pull request #71309 from BastiaanOlij/improve_renderscaling_options
Improving communication of scaling settings to renderer implementation
2023-01-14 14:45:02 +01:00
jainl28patel 390f83bf5a fix normal map not flipping in sprite2D 2023-01-14 11:51:56 +05:30
Rémi Verschelde a51ca2beaf
Merge pull request #71346 from Chaosus/material_fix_freezing
Clear material arrays to prevent freeing of invalid texture RID
2023-01-14 00:44:18 +01:00
clayjohn ccaebcd5e0 Avoid crashing when custom GLSL shaders are imported when using the gl_compatibility renderer 2023-01-13 12:53:19 -08:00
Yuri Rubinsky 01cddbb12a Clear material arrays to prevent freeing of invalid texture RID 2023-01-13 23:25:09 +03:00
Bastiaan Olij 478c37deb8 Improving communication of scaling settings to renderer implementation 2023-01-13 12:54:15 +11:00
clayjohn 131036a5ef Only setup depth framebuffer properties when not rendering ReflectionProbes 2023-01-12 16:19:12 -08:00
Pedro J. Estébanez d0e37cd04c Add framework for avoidance of color flash in new windows 2023-01-12 21:42:51 +01:00
Rémi Verschelde 1f171ff18b
Merge pull request #71261 from clayjohn/RD-alpha-aa
Take alpha antialising options into account when setting up materials
2023-01-12 08:19:16 +01:00
clayjohn 0ae567b00a Take alpha antialising options into account when setting up materials
This restores the functionality of the alpha antialising options
2023-01-11 21:29:36 -08:00
Rémi Verschelde 0abd60b953
Merge pull request #71130 from clayjohn/RD-normal-roughness
Fix multiple issues that make the normal roughness texture unusable
2023-01-12 01:01:24 +01:00
Rémi Verschelde 201673ecd8
Merge pull request #71124 from clayjohn/forward-prepass
Only disable depth writing in opaque pipelines
2023-01-12 00:55:10 +01:00
Rémi Verschelde 8cb63cdd55
Merge pull request #70475 from BastiaanOlij/cleanup_luminance
Move luminance effect into its own class and use new buffers system
2023-01-11 01:10:37 +01:00
clayjohn 89766848de Fix multiple issues that make the normal roughness texture unusable 2023-01-09 11:56:36 -08:00
clayjohn e5abca4990 Only disable depth writing in opaque pipelines
This restores the behaviour of the visibility fade
2023-01-09 09:45:43 -08:00
Pedro J. Estébanez 5ca2ba45f1 Make inclusion of Godot version in shader hash universal 2023-01-09 17:47:02 +01:00
Bastiaan Olij 9b549231e4 Move luminance effect into its own class and use new buffers system 2023-01-07 14:40:42 +11:00
EpEpDragon 36d02882b9 Added optional offset and size parameter to RenderDevice buffer_get_data method 2023-01-06 17:08:37 +02:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
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".
2023-01-05 13:25:55 +01:00
Rémi Verschelde a5e43daca1
Merge pull request #70929 from clayjohn/RD-mobile
Use proper indices for lights, decals, and reflection probes in mobile scene shader
2023-01-05 12:57:46 +01:00
Rémi Verschelde 0668b64c32
Merge pull request #70924 from clayjohn/canvas-bg-bugs
Always try to clear render target before drawing 3D with Canvas BG mode
2023-01-05 12:57:39 +01:00
clayjohn aaa9d626f3 Use proper indices for lights, decals, and reflection probes in mobile scene shader 2023-01-04 14:03:48 -08:00
clayjohn 72bc7e5a9d Always try to clear render target before drawing 3D with Canvas BG mode
This is necessary to ensure that we aren't copying garbage data to the 3D renderbuffer
2023-01-03 15:46:03 -08:00
Rémi Verschelde 0160fea1ce
Merge pull request #70884 from clayjohn/Depth-prepass
Ignore depth draw optimization when using depth draw alpha prepass
2023-01-03 23:23:29 +01:00
Rémi Verschelde 698ee56e54
Merge pull request #70638 from markusneg/cull-masked-shadows-gd4
Visual instance layers are regarded during shadow culling
2023-01-03 23:22:31 +01:00
clayjohn 062fb8b0dc Ignore depth draw optimization when using depth draw alpha prepass
This is necessary as the scene shader still uses alpha in this case so we can't discard fragments that weren't written to the depth buffer
2023-01-03 12:33:07 -08:00
Adam Scott ea33001b95 Add safety-checks before some servers `free()` 2022-12-29 16:23:38 -05:00
Markus Grafen 041b64ea7e visual instance layers are regarded during shadow culling
Partially cherry-picked from 16517ecb. Todos:
- setting Camera cull_mask should mark affected shadows dirty somehow
2022-12-27 18:43:53 +01:00
Bastiaan Olij 8bf16b0ce5 Fix errors related to reflection probe now using a render buffers object 2022-12-26 22:23:22 +11:00
Rémi Verschelde f064898956
Merge pull request #70253 from BastiaanOlij/cleanup_sky_render
Cleanup and improve sky render
2022-12-23 23:44:02 +01:00
Rémi Verschelde d8a0382e3f
Merge pull request #70476 from BastiaanOlij/move_sdfgi_init
Move SDFGI update logic into clustered renderer
2022-12-23 23:43:56 +01:00
Rémi Verschelde 2e07477751
Merge pull request #70214 from Ansraer/speed-maybe
[4.x] Use depth prepass to increase opaque render performance
2022-12-23 23:43:50 +01:00
Ansraer d44a91c2f7 use depth prepass to increase performance 2022-12-23 17:15:46 +01:00
Bastiaan Olij 65ca9e6924 Move SDFGI update logic into clustered renderer 2022-12-24 00:00:11 +11:00