Age | Commit message (Collapse) | Author |
|
This is an initial implementation based on the current RD implementation
Performance will improve later
|
|
|
|
This comes from an uncaught merge conflict resulting from the split of scene_data into
scene_data and implementation_data
|
|
Optimized support function for large meshes
|
|
Fix ambient_light_disabled render mode flag
|
|
Prevent windows from having a size greater than device limit
|
|
Improve behaviour of clip_children by clipping to parent alpha value but still retaining parent color
|
|
Clean up Basis from Euler code
|
|
This argument is now non optional, but this never hits the same bad access.
I voted to simplify the code here since the argument is never used optionally in our codebase.
|
|
Code simplifications
|
|
|
|
|
|
|
|
1. Viewport::get_visible_rect().position is always zero.
So Control::get_window_rect is identical to Control::get_global_rect.
Remove Control::get_window_rect since it is not used in the source code.
2. sqrt(a * a) = abs(a) for doubles
3. Simplify affine_inverse combination
4. Simplify calculation in shaders
|
|
|
|
|
|
|
|
to parent alpha value, but still retaining
parent color
|
|
Implements the Gauss Mapping optimization to SAT convex collision test.
* Described [here](https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2013/slides/822403Gregorius_Dirk_TheSeparatingAxisTest.pdf) by Dirk Gregorius.
* Requires adding of face information to edges in MeshData
* Took the chance to convert MeshData to LocalVector for performance.
|
|
Add 2D lights to OpenGL3 canvas renderer
|
|
Fix volumetric fog not rendering at densities lower than or equal to 0.001
|
|
Use radial distance for making LOD decisions.
|
|
This is an initial implementation using the same single-pass approach as the RenderingDevice.
|
|
This allows volumetric fog to render with the lowest density that
can be specified in the inspector (0.0001).
|
|
Previously, only forward basis distance from the camera was used.
This means that unnecessarily high LOD levels were used for objects located to the side of the camera.
The distance from the camera origin is now used, independently of direction.
|
|
Fix incorrect offset for vec3 datatypes in `_fill_std140_ubo_empty`
|
|
Restrict MSAA attachment usage to the strictly needed set
|
|
|
|
Rename remaining "*_enable" to "*_enabled"
|
|
Vulkan Clustered: Fix culling of negatively-scaled objects
|
|
Add `is_finite` method for checking built-in types
|
|
Polish rendering driver refactor further
|
|
Replace all TODO uses of `#warning` by proper TODO comments, and will open
matching bug reports to keep track of them.
We don't have a great track record fixing TODOs, but I'd wager we're even
worse for fixing these "TODO #warning" so we should prohibit this usage.
|
|
not match OS UI scale.
|
|
Negatively scaled objects should be mirrored. This is already implemented, but it breaks when mirrored and non-mirrored instances of the same object are visible together.
It turns out that the code that skips-over repeats in `RenderForwardClustered::_render_list_template` also skips the code that accounts for the culling mode of mirrored objects.
The solution here is to consider the `mirror` flag when determining repeats. This might result in more draw commands than necessary since a mirrored object can split a group of non-mirrored instances in two.
This problem doesn't appear in the mobile renderer because the repeat optimization isn't implemented there yet.
The problem still appears in MultiMeshInstance3D in *all* renderers.
Fixes #62879 and #58546.
|
|
|
|
Allow clearing backbuffer after finishing CanvasGroup
|
|
|
|
This avoids an issue where having multiple CanvasGroups overlap
would create a weird artifact
|
|
Material overlay should only cast a shadow if it can cast a shadow and
the instance can cast a shadow
|
|
change warnings=all to use /W4.
|
|
Add split caret direction markers. Fix block/overtype caret size.
|
|
Use a giant UBO to optimize performance in 2D [OpenGL3]
|
|
|
|
Fixing artifacts in SSR
|
|
Mainly:
- Make `max_descriptors_per_pool` project setting Vulkan-specific.
- Use a common, render driver agnostic magic FourCC for shader binary data.
- Downgrade spirv_reflect to Vulkan-only dependency.
- Add a `RENDER_DRIVER_*` macro to GLSL shader code for per-driver customizations.
|
|
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.
|
|
Bind PhysicsDirectBodyState3D::get_inverse_inertia_tensor
|
|
Revert "Turn on recovery as collisions only for floor snapping"
|
|
to unwanted behaviour for other surface than the floor."
This reverts commit 10395f5df2a1cac6ed83e674c084e62a88fcdde9.
|