Age | Commit message (Collapse) | Author |
|
Add various null checks in RenderingServer
|
|
Fix typos - "collison" -> "collision"
|
|
|
|
|
|
Use `constexpr` in the conditions with template parameters and `sizeof`s to suppress C4127 warnings.
|
|
Clean up canvas light shader API.
|
|
suppress C4127 warnings.
|
|
Expose LIGHT_ENERGY and LIGHT_IS_DIRECTIONAL.
Add LIGHT_DIRECTION
|
|
|
|
`CreateDirectoryW()` chokes on absolute paths that contain `..`
example: "C:\\workspace\\..\\games\\assets"
Simplifying the path before creating the dir fixes this.
|
|
- `_DEBUG` is MSVC specific so it didn't make much sense to define for
Android and iOS builds.
- iOS was the only platform to define `DEBUG`. We don't use it anywhere
outside thirdparty code, which we usually don't intend to debug, so it
seems better to be consistent with other platforms.
- Consistently define `NDEBUG` to disable assert behavior in both `release`
and `release_debug` targets. This used to be set for `release` for all
platforms, and `release_debug` for Android and iOS only.
- Due to the above, I removed the only use we made of `assert()` in Godot
code, which was only implemented for Unix anyway, should have been
`DEV_ENABLED`, and is in PoolAllocator which we don't actually use.
- The denoise and recast modules keep defining `NDEBUG` even for the `debug`
target as we don't want OIDN and Embree asserting all over the place.
|
|
[Core] Make ImageFormatLoader extensible.
|
|
Split rendering driver project setting into renderer_name and rendering_driver
|
|
|
|
SpotLight3D's and OmniLight3D's Projector doesn't work
|
|
rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
|
|
|
|
|
|
Add get_distribution_name() and get_version() to OS
|
|
Fix error spam in the renderer when using GPUParticles3D
|
|
supports: LinuxBSD, Windows, macOS, iOS, Android, UWP
Co-authored-by: bruvzg
|
|
The flag INSTANCE_DATA_FLAG_MULTIMESH is used for both multimesh and particles instances, this commit adds a new INSTANCE_DATA_FLAG_PARTICLES flag to discriminate between them.
This flag will also be used in the future to properly support TAA in particles.
|
|
Fix/restore BackBufferCopy
|
|
|
|
|
|
Remove prefix canvas_data. as it isn't used in the internal canvasitem shader
|
|
This ensures that the buffers don't go out of sync.
|
|
Fix leaking of Mesh version and lod memory when freeing mesh in GLES3
|
|
everything else.
This ensures that the debanding does not scale with exposure or any other effect.
|
|
|
|
get_datetime_* functions can return wrong values
|
|
Instead of updating all viewports, then blitting all viewports
to the backbuffer, then swapping all buffers, we run through
all viewports and render, blit, and swap backbuffer before
going to the next viewport.
|
|
Apply energy conservation to LAMBERT_WRAP diffuse mode by dividing by PI
|
|
by PI
|
|
|
|
|
|
Fix crash when executing `TubeTrailMesh.get_faces()` with GLES3
|
|
|
|
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.
|
|
Replace AABB/Rect2/Rect2i has_no_* methods with has_* methods
|
|
Using this command:
```
find -name "thirdparty" -prune -o -name "*.h" -exec sed -i {} -e '/return /! s/\t\([A-Za-z0-9_]* \*[A-Za-z0-9_]*\)\;/\t\1 = nullptr;/g' \;
```
And then reviewing the changes manually to discard the ones that don't
seem correct/safe/good (notably changes to `core` unions).
|
|
Also replace has_no_surface with has_surface
|
|
Vulkan and OpenGL rendering drivers).
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
Per-light energy gives more control to the user on the final result of
volumetric fog. Specific lights can be fully excluded from volumetric fog
by setting their volumetric fog energy to 0, which improves performance
slightly. This can also be used to prevent short-lived dynamic effects
from poorly interacting with volumetric fog, as it's updated over several
frames by default unless temporal reprojection is disabled.
Volumetric fog shadows now obey Light3D's Shadow Opacity property as well.
The shadow fog fade property was removed as it had little visible impact
on the final scene's rendering.
|