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
clayjohn
eb9c2b878a
Automatically transform Skeleton2D calculations so pivots are not needed
2023-01-27 14:55:22 -08: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
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
Bastiaan Olij
85c478e170
Make screen texture and depth texture work in Multiview
2023-01-25 13:35:01 +11:00
jainl28patel
2da3acf620
fix ReflectionProbe rendering extents for (10,10,10)
2023-01-24 00:32:24 +05:30
bruvzg
1cc5524b81
[iOS] Restore OpenGLES3 renderer support.
2023-01-22 13:59:52 +02: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
clayjohn
faea9f5c10
Remove SCREEN_TEXTURE, DEPTH_TEXTURE, and NORMAL_ROUGHNESS_TEXTURE
...
in favour of texture hints
2023-01-18 19:52:47 -08:00
clayjohn
eace1276a5
Decompress RA_AS_RG formats on Web platform in GLES3 renderer and disable texture swizzling
...
While using compressed formats is allowed, the RA_AS_RG formats need texture swizzling which is not available on web
2023-01-17 10:48:04 -08: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
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
rsjtdrjgfuzkfg
ebe1123532
OpenGL: Support FORMAT_{ETC2,DXT5}_RA_AS_RG
...
This commit adds support for FORMAT_EXT2_RA_AS_RG and
FORMAT_DXT5_RA_AS_RG with OpenGL, fixing VRAM compression with the
normal map option enabled.
2023-01-11 22:58:11 +01:00
clayjohn
f78b492682
Properly map shader language texture hints to sampler hints in GLES3 renderer
2023-01-06 15:52:12 -08: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
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
Bastiaan Olij
e886a7af81
Cleanup and improve sky render
2022-12-23 19:45:19 +11:00
Rémi Verschelde
2b056115ef
Merge pull request #70091 from clayjohn/bone-aabbs
...
Remove mesh bone_aabbs as they are not used anywhere and calculating them is a pain
2022-12-17 12:32:32 +01:00
Rémi Verschelde
676f60b0cc
Merge pull request #70132 from clayjohn/RT-update
...
Implement render_target_was_used API so that Viewports can properly check if they have been used.
2022-12-17 12:26:51 +01:00
Rémi Verschelde
376290ea86
Merge pull request #70163 from clayjohn/particles-sdf
...
Transform sdf xfrom by particle emission transform when particles are in global space
2022-12-17 12:24:51 +01:00
Rémi Verschelde
13593d8644
Merge pull request #70087 from clayjohn/mesh-aabb
...
Cache mesh AABB when modified by skeleton and update instance AABB when skeleton changes
2022-12-17 12:21:01 +01:00
clayjohn
99a159cd9b
Transform sdf xfrom by particle emission transform when particles are in global space
2022-12-16 11:55:11 -08:00
clayjohn
1b330820bf
Implement render_target_was_used API so that Viewports can properly check if they have been used.
...
For the RD renderer, this does not work for Viewports used in scene shaders yet
2022-12-16 09:50:45 -08:00
Rémi Verschelde
47ef0549ee
Merge pull request #70065 from clayjohn/GLES3-attribs
...
Use instanced array buffer instead of UBO for canvas item batching
2022-12-15 18:45:07 +01:00
Yuri Rubinsky
5c83e95103
Merge pull request #70016 from Chaosus/refactor_rd_shader_data
...
fixed https://github.com/godotengine/godot/issues/69949
2022-12-15 20:28:26 +03:00
clayjohn
b6a1aa15b1
Use instanced array buffer instead of UBO for canvas item batching
...
This simplifies the generated shader code which increases both performance and compile time on low end devices
2022-12-15 08:25:44 -08:00
Rémi Verschelde
346efd29e0
Fix typos with codespell
2022-12-15 12:24:08 +01:00
Yuri Rubinsky
56954485ed
Refactor ShaderData
& fix the sorting of shader uniforms
2022-12-15 10:02:59 +03:00
clayjohn
ef246d9156
Remove mesh bone_aabbs as they are not used anywhere and calculating them is a pain
2022-12-14 19:32:19 -08:00
clayjohn
b7088bbf52
Cache mesh AABB when modified by skeleton and update instance AABB when
...
skeleton changes
2022-12-14 18:07:07 -08:00
Rémi Verschelde
cf093f8e47
Merge pull request #69733 from clayjohn/GLES3-skeleton-leak
...
Properly free Skeleton RID in RenderingServer.free()
2022-12-07 22:23:40 +01:00
clayjohn
1aa61a877a
Properly free Skeleton RID in RenderingServer.free()
2022-12-07 09:35:13 -08: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
7ef9947d0e
Merge pull request #68870 from dsnopek/master-webxr-input
...
Get WebXR fully working in Godot 4!
2022-12-02 12:24:40 +01:00
David Snopek
310bf39cd3
Get WebXR fully working in Godot 4!
2022-12-01 21:46:30 -06: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
dzil123
8fab25f32f
GLES3 TextureStorage - add missing null checks
2022-11-16 23:31:59 -08: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
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
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
clayjohn
539b73384f
Implement texture_proxy_update which is needed for AnimatedTexture
2022-11-11 10:05:07 -08: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
David Snopek
23603e409c
Add support for OpenGL to OpenXR
2022-11-08 18:47:11 -06:00
David Snopek
7fb8b931d7
Collapse three seperate texture storage methods into render_target_set_override()
2022-11-03 13:03:30 -05:00