Age | Commit message (Collapse) | Author |
|
|
|
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
|
|
|
|
|
|
The `global_shader_uniform` name is longer, but it makes it much
easier to find the methods when searching in the class reference.
|
|
Mipmap LOD bias can be useful to improve the appearance of distant
textures without increasing anisotropic filtering (or in situations
where anisotropic filtering is not effective).
`fsr_mipmap_bias` was renamed to `texture_mipmap_bias` accordingly.
The property hint now allows for greater precision as well.
|
|
|
|
renderers
|
|
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.
|
|
`rendering/quality/shadows` is now `rendering/quality/positional_shadow`
to explicitly denote that the settings only affect positional light shadows,
not directional light shadows.
Shadow atlas settings now contain the word "atlas" for easier searching.
Soft shadow quality settings were renamed to contain the word "filter".
This makes the settings appear when searching for "filter" in the
project settings dialog, like in Godot 3.x.
|
|
Split FOG
Split visibility notifier
Final cleanup of storage classes
|
|
|
|
Use view instead of vertex for reflections.
|
|
|
|
Initial TAA support based on the implementation in Spartan Engine.
Motion vectors are correctly generated for camera and mesh movement, but there is no support for other things like particles or skeleton deformations.
|
|
As well as significant consequent cleanup in the RenderTarget, Texture, and Canvas renderer code
|