summaryrefslogtreecommitdiff
path: root/drivers/gles3/shaders
AgeCommit message (Collapse)Author
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-11OpenGL: Fix scene shader error when using Omni or Spot but not bothRémi Verschelde
Fixes #69886.
2022-12-05Clean up specialization constants in OpenGL scene rendererclayjohn
Also add support for disabling omni and spot lights when not used
2022-12-05Merge pull request #69521 from clayjohn/GLES3-glslRémi Verschelde
Expose emulated *Unorm4x8 glsl functions in non-android builds
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-12-03Implement CAMERA_VISIBLE_LAYERS as built-in shader variableNumbuhFour
2022-12-03Merge pull request #69522 from clayjohn/IBL-black-metalRémi Verschelde
Allow black metallic materials to reflect IBL
2022-12-03Merge pull request #69514 from clayjohn/IBL-roughnessRémi Verschelde
Properly remap roughness when reading from radiance map
2022-12-02Allow black metallic materials to reflect IBLclayjohn
2022-12-02Properly remap roughness when reading from radiance mapclayjohn
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-01Merge pull request #69325 from clayjohn/GLES3-skeletonsRémi Verschelde
Add Skeletons and Blend Shapes to the OpenGL renderer
2022-11-29Enable GLES3 on Androidclayjohn
Add necessary build flags and switch from using a GLES2 context to a GLES3 one. This also enables building for OpenXR Co-authored-by: m4gr3d <fhuyakou@gmail.com> Co-authored-by: dsnopek <dsnopek@gmail.com>
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-21Expose model_matrix in GLES3 scene fragment shaderclayjohn
2022-11-20Merge pull request #68830 from Ayush-singla27/issuebranchRémi Verschelde
fixed incorrect mesh normals in shaders
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-11-19fixed incorrect mesh normals in shadersAyush Singla
2022-11-14Add GPUParticles to the OpenGL3 renderer.clayjohn
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-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-27Merge pull request #66107 from devloglogan/ambient-light-disabled-fixClay John
Fix ambient_light_disabled render mode flag
2022-10-21Add multiview to the opengl3 driverDavid Snopek
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-19enabled ambient_light_disabled render mode flagLogan Lang
2022-09-13Move debanding into internal sky shader code so that it is applied after ↵clayjohn
everything else. This ensures that the debanding does not scale with exposure or any other effect.
2022-09-12Apply energy conservation to LAMBERT_WRAP and TOON diffuse modes by dividing ↵clayjohn
by PI
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-31Implement Physical Light Units as an optional setting.clayjohn
This allows light sources to be specified in physical light units in addition to the regular energy multiplier. In order to avoid loss of precision at high values, brightness values are premultiplied by an exposure normalization value. In support of Physical Light Units this PR also renames CameraEffects to CameraAttributes.
2022-08-23Add font LCD sub-pixel anti-aliasing support.bruvzg
2022-08-13Implement Octahedral on OpenGL3Omar El Sheikh
2022-08-08Merge pull request #62547 from clayjohn/ref_vec_pbrRémi Verschelde
2022-08-07Add a shadow opacity property to Light3DHugo Locurcio
This can be used to make shadows translucent for a specific light. The light distance fade system also uses this to smoothly fade the shadow when the light fade transition distance is greater than 0.
2022-08-01Fix various bugs in GLES3 renderer that stopped it from running on webclayjohn
2022-08-01Merge pull request #63587 from clayjohn/specular-occlusionRémi Verschelde
Treat specular less than 0.02 as occlusion
2022-07-31Treat specular less than 0.02 as occlusionclayjohn
This is a very common hack used in almost all PBR renderers to allow removing specular contribution in dielectric materials
2022-07-28Rename RenderingServer global shader uniform methods to be more explicitHugo Locurcio
The `global_shader_uniform` name is longer, but it makes it much easier to find the methods when searching in the class reference.
2022-07-27Merge pull request #62364 from clayjohn/GLES3-sky-optimizationRémi Verschelde
2022-07-02SCons: Properly track codegen script dependency for generated GLSL headersRémi Verschelde
2022-06-29Evaluate specular reflections using specular dominant direction instead of ↵clayjohn
assuming mirror reflections
2022-06-22Precompute on the CPU as much as possible for the Cubemap filter shaderclayjohn
2022-06-14Implement MultiMesh in 3D and flesh out MultiMesh functionsclayjohn
2022-05-25Implement 2D Meshes and MultiMeshes in GLES3 backendclayjohn
2022-05-24Add clipping, backbuffer, and CanvasGroups to 2D GLES3 rendererclayjohn
As well as significant consequent cleanup in the RenderTarget, Texture, and Canvas renderer code
2022-05-19Fix sky updating when DirectionalLight mode changed and shader compatibility ↵clayjohn
for certain drivers
2022-05-18Fix tonemapper shader to correctly apply alpha channelYuri Rubinsky
2022-05-16Add basic lighting to GLES3 renderer.clayjohn
This includes all three light types and IBL, but does not include shadows or any form of GI
2022-05-16Fix computation of screen_uvSomnath Sarkar
2022-05-12Basic 3D renderingclayjohn