summaryrefslogtreecommitdiff
path: root/drivers/gles3/shaders/canvas.glsl
AgeCommit message (Collapse)Author
2022-12-04Exposure emulated *Unorm4x8 glsl functions in non-android buildsclayjohn
Originally these functions were exposed on all GLSL ES 300 devices. However, that causes a build error as Android devices expose the *Unorm4x8 functions despite them not being in the ES 300 spec
2022-11-29Add Skeletons and Blend Shapes to the OpenGL rendererclayjohn
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-18Fix drawing of 2D skeletons in the RD renderer.clayjohn
Also clean up skeleton code in preparation for adding them to GLES3 Properly update Mesh2D AABBs when skeleton is updated
2022-10-28Add 2D shadows and canvas SDF to OpenGL3 rendererclayjohn
This is an initial implementation based on the current RD implementation Performance will improve later
2022-10-14Fix error in Web builds that resulting in 2Dclayjohn
objects not drawing in the GLES3 backend. Issue came from not binding a light UBO when using the DISABLE_LIGHTING code path
2022-10-12Add 2D lights to OpenGL3 canvas rendererclayjohn
This is an initial implementation using the same single-pass approach as the RenderingDevice.
2022-10-06Use a giant UBO to optimize performance in 2Dclayjohn
This removes the countless small UBO writes we had before and replaces them with a single large write per render pass. This results in much faster rendering on low-end devices but improves speed on all devices.
2022-10-03Properly expose TEXTURE_PIXEL_SIZE in Opengl3 rendererclayjohn
2022-09-06Fix rendering when using WebGL2.clayjohn
Fixes include using proper depth buffer format in 3D (this had previously been fixed already but the changes were lost in a rebase), Remove unused lighting and shadowing code in 2D, and update 2D UBOs using glBufferSubData so that they remain the appropriate size.
2022-08-23Add font LCD sub-pixel anti-aliasing support.bruvzg
2022-06-14Implement MultiMesh in 3D and flesh out MultiMesh functionsclayjohn
2022-05-25Implement 2D Meshes and MultiMeshes in GLES3 backendclayjohn
2022-05-12Basic 3D renderingclayjohn
2022-05-11SkyShaders workingclayjohn
2022-04-28Merge pull request #60503 from clayjohn/OPENGL-3DRémi Verschelde
2022-04-26Overhaul GLES3: Add basis for 3D renderer, overhaul materials and texturesclayjohn
2022-04-22Implement Label3D node.bruvzg
Add "generate_mipmap" font import option. Add some missing features to the Sprite3D. Move BiDi override code from Control to TextServer. Add functions to access TextServer font cache textures. Add MSDF related flags and shader to the standard material. Change standard material cache to use HashMap instead of Vector.
2022-03-18Rename several transform built-ins in shadersYuri Roubinsky
2022-01-11New OpenGL batching canvas rendererclayjohn
2022-01-11WIP New GLES3 Shader Compilerreduz
Uses versions and specializations (more similar to RenderingDevice version)
2021-10-31Use OpenGL 3.3 core profile instead of compatibility profileClay John
- Rename OpenGL to GLES3 in the source code per community feedback. - The renderer is still exposed as "OpenGL 3" to the user. - Hide renderer selection dropdown until OpenGL support is more mature. - The renderer can still be changed in the Project Settings or using the `--rendering-driver opengl` command line argument. - Remove commented out exporter code. - Remove some OpenGL/DisplayServer-related debugging prints.
2020-02-13Remove obsolete GLES3 backendRémi Verschelde
Due to the port to Vulkan and complete redesign of the rendering backend, the `drivers/gles3` code is no longer usable in this state and is not planned to be ported to the new architecture. The GLES2 backend is kept (while still disabled and non-working) as it will eventually be ported to serve as the low-end renderer for Godot 4.0. Some GLES3 features might be selectively ported to the updated GLES2 backend if there's a need for them, and extensions we can use for that. So long, OpenGL driver bugs!
2020-01-03Merge pull request #34551 from MadEqua/fix-light-with-skeletonRémi Verschelde
Fix 2D lighting when using skeleton.
2020-01-01Fix wrong return typeTritium Oxide
`ERROR: _display_error_with_code: CanvasShaderGLES3: Fragment Program Compilation Failed: 0:166(2): error: `return' with wrong type int, in function `map_ninepatch_axis' returning float` caused by #34704
2020-01-01GLES3: Fix false positive in ninepatch axis stretch codeRémi Verschelde
See #34704.
2019-12-23Fix 2D lighting when using skeleton.Bruno Lourenço
2019-12-10Add a default POINT_SIZEclayjohn
2019-10-09Merge pull request #32170 from puthre/ninepatch-fixRémi Verschelde
GLES2 & GLES3 Fixes ninepatch margins for high resolution textures.
2019-10-07GLES3 Fixes for ninepatch margins when patch size is smaller than the patch ↵Valentin Zagura
texture resolution Scaled ninepatch margins in screen space to be relative of the ninepatch size when the patch size is smaller than the patch texture resolution.
2019-09-06Create shadow_vec for altering shadow computationazagaya
In 2.1 and 3.0, light_vec could be modified for altering shadow_computations. But it broke shadows when rotating light. shadow_vec would do the same, but without breaking shadows in rotated lights if not used. Add inverse light transformation to shadow vec, so it's not affected when rotating lights; Added usage define for shadow vec. For shadow vec working properly when rotating a light, it's needed to multiply it by light_matrix normalized. Added usage define in order to don't do that if shadow_vec not used.
2019-07-28update algorithm about paking float to vec4 to fix shadow shift and change ↵RaphaelHunter
rgba_shdow options
2019-06-03added MultiMeshInstance2D node for using MultiMesh in 2Dclayjohn
2019-03-04fixed pixel snap precision artifactclayjohn
2019-02-24Explicitly use floating point numbers in the our shadersHein-Pieter van Braam
We need to be explicit about using floating point numbers in our shaders for compatibility with mobile GLES drivers.
2019-02-21Revert back to ignoring LIGHT_VEC for 2D shadowsJFonS
2019-02-10Make LIGHT_VEC affect 2D shadows againJFonS
2018-12-13fixed uv missing in vertex shader of canvas.QbieShay
2018-11-28Fix style issues and signature mismatchRémi Verschelde
2018-11-27NORMALMAP was not working (no normal being used detected), fixes #9263Juan Linietsky
2018-11-13Make 2D particles work OOTB (again)JFonS
2018-11-04Remove animation loop from ParticlesMaterial + improvements to CPUParticles2DJFonS
Remove animation loop from ParticlesMaterial and move it to SpatialMaterial for 3D particles and Particles2D for the 2D case. Added animation to CPUParticles2D as well as the "Convert to CPUParticles2D" to the PAarticles2D menu.
2018-10-02GLES2: Implement pixel snap 2D optionRémi Verschelde
2018-09-18Fix lighting of rotated particles in 2DJFonS
Custom instance transform was not taken into account for normal map calculation. Also renamed `extra_matrix2` to `extra_matrix_instance` for more clarity.
2018-08-27Style: Enable clang-format on GLSL shadersRémi Verschelde
As of clang-format 6.0.1, putting the `/* clang-format off */` hint around our "invalid" `[vertex]` and `[shader]` statements isn't enough to prevent a bogus indent of the next comments and first valid statement, so we need to enclose that first valid statement in the unformatted chunk.
2018-08-24Style: Fix code formatting in GLES3 shadersRémi Verschelde
2018-07-05Move light 2D rotation to vertex shaderJFonS
2018-07-04Fix regression of 2D light heightJFonS
2018-06-19Fix rotation of 2D lightsJFonS
2018-05-04Skeletal deform workingJuan Linietsky
2018-05-03Skeleton for 2D WIPJuan Linietsky