summaryrefslogtreecommitdiff
path: root/drivers/gles3/shaders/canvas.glsl
AgeCommit message (Collapse)Author
2023-02-04Merge pull request #72695 from clayjohn/CanvasGroup-shadingYuri Sizov
Avoid shading CanvasGroup nodes twice
2023-02-03Avoid shading CanvasGroup nodes twiceclayjohn
2023-02-03Ignore instance color and instance custom_data when not used in the OpenGL ↵clayjohn
renderer
2023-01-18Remove SCREEN_TEXTURE, DEPTH_TEXTURE, and NORMAL_ROUGHNESS_TEXTUREclayjohn
in favour of texture hints
2023-01-17GLES3: Fix canvas shader use of undefined draw_dataRémi Verschelde
Fixes #71551.
2023-01-14fix normal map not flipping in sprite2Djainl28patel
2022-12-15Use instanced array buffer instead of UBO for canvas item batchingclayjohn
This simplifies the generated shader code which increases both performance and compile time on low end devices
2022-12-05Clean up specialization constants in OpenGL scene rendererclayjohn
Also add support for disabling omni and spot lights when not used
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