Age | Commit message (Collapse) | Author |
|
This simplifies the generated shader code which increases both performance and compile time on low end devices
|
|
Properly apply custom materials with CanvasGroups in the GLES3 backend
Properly blur backbuffer when using a partial rect in forward_plus and
gl_compatibility renderers
Properly set fit_margin when clear_margin is set
Fix shader error during backbuffer clear in mobile renderer
|
|
This ensures that the SDF is updated even if not used in a canvas_item shader
|
|
Get WebXR fully working in Godot 4!
|
|
|
|
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.
|
|
The batch was being discarded if no instance buffer was present, but an instance buffer is only needed for MultiMesh and particles.
|
|
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.
|
|
Fix draw_primitive ignoring texture argument
|
|
Interleaving draw_rect calls with and without a texture forces every rect to
have its own draw call. In this case it meant that there is a draw call for every single
tile in the atlas. This change makes it so the renderer can batch draw calls
which reduced the draw call count by a factor of 512
|
|
Add 2D shadows and canvas SDF to OpenGL3 renderer
|
|
This allows using texture_2d_get on all platforms which is needed for the get_image function
This commit also fixes some OpenGL warnings on the Web platform that came from attempting to map a buffer with zero length
|
|
This is an initial implementation based on the current RD implementation
Performance will improve later
|
|
Improve behaviour of clip_children by clipping to parent alpha value but still retaining parent color
|
|
|
|
Fix drawing of 2D primitives in OpenGL3 renderer
|
|
Previously the wrong vertices were used when assembling the second triangle
of a quad
|
|
objects not drawing in the GLES3 backend.
Issue came from not binding a light UBO when using the DISABLE_LIGHTING
code path
|
|
|
|
to parent alpha value, but still retaining
parent color
|
|
Add 2D lights to OpenGL3 canvas renderer
|
|
This is an initial implementation using the same single-pass approach as the RenderingDevice.
|
|
This avoids an issue where having multiple CanvasGroups overlap
would create a weird artifact
|
|
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.
|
|
|
|
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.
|
|
|
|
Also rename export name from "HTML5" to "Web".
|
|
|
|
Add shader uniform hints for screen textures
|
|
filter and repeat modes.
At this time, it works best in the Vulkan Renderers as they support using multiple samplers with the same texture.
In GLES3 this feature really only allows you to use the screen texture without mipmaps if you want to save the cost of generating them.
|
|
|
|
|
|
The `global_shader_uniform` name is longer, but it makes it much
easier to find the methods when searching in the class reference.
|
|
bluenote10/feature/rename_translated_to_translated_local
|
|
Implement built-in classes Vector4, Vector4i and Projection.
* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.
These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.
**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
|
|
|
|
Split FOG
Split visibility notifier
Final cleanup of storage classes
|
|
|
|
|
|
|
|
As well as significant consequent cleanup in the RenderTarget, Texture, and Canvas renderer code
|
|
|
|
|
|
|
|
|
|
Convert method signature parameters to const where it is possible
# Conflicts:
# drivers/gles3/rasterizer_canvas_gles3.cpp
# drivers/gles3/rasterizer_canvas_gles3.h
# editor/plugins/animation_state_machine_editor.cpp
# editor/plugins/animation_state_machine_editor.h
|
|
|
|
|
|
|