Age | Commit message (Collapse) | Author |
|
This commit ensures a known backface culling state when rendering, even
if no depth prepass is used. This fixes backside culling not being
applied properly in some situations, most notably in scenes that only
use backside culling on mobile platforms.
|
|
|
|
Flag dirty dependencies when GeometryInstance dependencies change in renderer
|
|
Assign light indices after sorting in OpenGL renderer
|
|
This ensures that the light indices sent to the shader actually match where the light is saved
|
|
Also implement sort_offset for decals
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
|
|
Normally dependencies are only set dirty when changed during culling, but that misses changes that happen in the renderer (like a new shader being set in a material)
|
|
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.
It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).
We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).
Also fixed "cf." Frenchism - it's meant as "refer to / see".
|
|
This is necessary as the scene shader still uses alpha in this case so we can't discard fragments that weren't written to the depth buffer
|
|
Added options for sorting transparent objects (port of PR #63040)
|
|
|
|
|
|
|
|
call clears the GL_ELEMEMT_ARRAY_BUFFER when changing the state.
Update rasterizer_scene_gles3.cpp
Fix white-space to match godotengine checks.
|
|
Fix mobile renderer sky_transform operations
|
|
same order as the forward_plus renderer.
Update rasterizer_scene_gles3.cpp
Apply sky_transform order fix to the gles3 renderer.
|
|
Also add support for disabling omni and spot lights when not used
|
|
|
|
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.
|
|
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.
|
|
Request redraw in OpenGL3 and mobile renderers when TIME used in shader
|
|
|
|
|
|
Remove depth correction in GLES3 renderer
|
|
This avoids a WEBGL error causes PanoramaSkys to fail to render
|
|
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.
|
|
This code should only have been included in the RD renderer where the
depth range is 0 - 1 instead of -1 - 1
|
|
|
|
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.
|
|
|
|
light and probe elements into storage and reorganise our render_scene method.
|
|
In the conditional `sky` is always true.
|
|
suppress C4127 warnings.
|
|
rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
|
|
This ensures that the buffers don't go out of sync.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
Affects the Math class, a good chunk of the audio code, and a lot of other miscellaneous classes, too.
- `var2str` -> `var_to_str`
- `str2var` -> `str_to_var`
- `bytes2var` -> `bytes_to_var`
- `bytes2var_with_objects` -> `bytes_to_var_with_objects`
- `var2bytes` -> `var_to_bytes`
- `var2bytes_with_objects` -> `var_to_bytes_with_objects`
- `linear2db` -> `linear_to_db`
- `db2linear` -> `db_to_linear`
- `deg2rad` -> `deg_to_rad`
- `rad2deg` -> `rad_to_deg`
- `dict2inst` -> `dict_to_inst`
- `inst2dict` -> `inst_to_dict`
|
|
now be constructed from an index buffer alone
|
|
comply with strict webGL drivers
|
|
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.
|
|
|
|
|
|
Restructure environment in render implementation
|
|
|
|
|