summaryrefslogtreecommitdiff
path: root/servers/rendering
AgeCommit message (Collapse)Author
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-04-02Move storage for Mesh, MeshInstance, MultiMesh and Skeleton into MeshStorageBastiaan Olij
2022-04-01Merge pull request #59774 from Chaosus/shader_fixYuri Rubinsky
2022-04-01Add color pass flags to Forward Clustered rendererjfons
This commit removes a lot of enum values related to the color render pass in favor of a new flag-bases approach. This means instead of hard-coding all the possible option combinations into enums, we can write our logic by checking a bit-mask. The changes in rendering_device_vulkan.cpp add support for unused attachments. That means RenderingDeviceVulkan::framebuffer_create() can take null RIDs in the attachments vector, which will result in VK_ATTACHMENT_UNUSED entries in the render pass. This is used in this same PR to establish fixed locations for the color pass attachments (only color and separate specular so far, but TAA will add motion vectors as well). This way the attachment locations in the shader can stay the same regardless of which attachments are actually used. Right now all the combinations of flags are generated, but we will need to add a way to limit the amount of combinations in the future.
2022-04-01Fix shader crashing when attempting to access `length()` at global spaceYuri Roubinsky
2022-03-31Merge pull request #59385 from BastiaanOlij/extract_shader_storageRémi Verschelde
2022-03-31Fix typos with codespellRémi Verschelde
Using codespell 2.2-dev from current git. Fix a couple incorrect uses of gendered pronouns.
2022-03-31Extract global variable, shader and material storageBastiaan Olij
2022-03-29Fix canvas_group not being freed in RendererCanvasCull::freeDimitris Nikolaidis
2022-03-29Remove `SHADOW_ATTENUATION` spatial light shader built-inYuri Roubinsky
2022-03-27Add GDExtension support to Scriptreduz
* Ability to create script languages from GDExtension * Some additions to gdnative_extension.h to make this happen * Moved the GDExtension binder to core This now allows creating scripting languages from GDExtension, with the same ease as if it was a module. It replaces the old PluginScript from Godot 3.x. Warning: GodotCPP will need to be updated to support this (it may be a bit of work as ScriptInstance needs to be created over there again).
2022-03-25Fix shader undefined variablenevarek
2022-03-21Extract Decal and Decal atlas from Storage classBastiaan Olij
2022-03-20Call the correct texture free method on texture storage cleanupBastiaan Olij
2022-03-18Add inverse projection matrix to fragment shader globalsnevarek
2022-03-18Rename several transform built-ins in shadersYuri Roubinsky
2022-03-18Merge pull request #59087 from clayjohn/sky-modeRémi Verschelde
Replace DirectionalLight3D's `use_in_sky_only` with `sky_mode` enum
2022-03-17Merge pull request #58954 from Ansraer/alpha_scissorRémi Verschelde
[4.0] Fix alpha scissor support
2022-03-17Replace DirectionalLight3D's `use_in_sky_only` with `sky_mode` enumHugo Locurcio
3 options are available: - Light and Sky (default) - Light Only (new) - Sky Only (equivalent to `use_in_sky_only = true`) Co-authored by: clayjohn <claynjohn@gmail.com>
2022-03-17Another `-Wsign-compare` fixRémi Verschelde
Fixing CI while afk, fun.
2022-03-17Fix `-Wsign-compare` warning after #58993Rémi Verschelde
2022-03-17Merge pull request #58993 from notSanil/device-limit-exceeded-fixRémi Verschelde
2022-03-17Fix alpha scissor supportAnsraer
2022-03-16Fix device limit exceeding for uniform buffernotSanil
2022-03-16Split dummy renderer classes into separate filesBastiaan Olij
Split canvas_texture_storage and texture_storage from render_storage class
2022-03-16Merge pull request #49092 from BastiaanOlij/multiview_clusteredRémi Verschelde
Add multiview support to the clustered forward renderer
2022-03-15Merge pull request #45263 from KoBeWi/😕Rémi Verschelde
2022-03-14Fix D_GGX code which can cause divide-by-zero valsnowapril
When given roughness is lower than 0.01, d value in original code will be zero. This can make last return value as NAN because of divide-by-zero. This is well addressed in issue #56373. Modified code is referenced on D_GGX function of google/filament (https://github.com/google/filament/blob/main/shaders/src/brdf.fs#L54-L79) Signed-off-by: snowapril <sinjihng@gmail.com>
2022-03-13Merge pull request #58819 from vreon/fix-eyedir-zRémi Verschelde
Fix flipped EYEDIR.z in sky shaders
2022-03-09Change some math macros to constexprkobewi
Changes `MAX`, `MIN`, `ABS`, `CLAMP` and `SIGN`.
2022-03-08Sky renderer: Only flip Z when calculating panorama_coordsJesse Dubay
2022-03-08Merge pull request #49447 from Calinou/remove-shadow-color-propertyRémi Verschelde
Remove unused `shadow_color` property from Light3D
2022-03-07Merge pull request #58779 from techiepriyansh/forward-mobile-ambient-accumRémi Verschelde
2022-03-06Sky renderer: Don't invert Z component of light directionJesse Dubay
2022-03-06Add a UniformSet cachereduz
* Changed syntax usage for RD::Uniform to create faster with a single RID * Converted render pass setup to use this in clustered renderer to test. This is the first step into creating a proper uniform set cache system to simplify large parts of the codebase.
2022-03-05Fix flipped EYEDIR.z in sky shadersJesse Dubay
2022-03-05use the computed value ambient_accum for ambient_light in ↵Priyansh Rathi
scene_forward_mobile.glsl
2022-03-04Remove unused `shadow_color` property from Light3DHugo Locurcio
This shadow color property was no longer effective since the shaders were optimized to improve occupancy.
2022-03-04Merge pull request #58734 from Calinou/tweak-render-timestamp-namesRémi Verschelde
Tweak render timestamp names for explicitness and consistency
2022-03-04Merge pull request #58512 from Calinou/light3d-add-distance-fadeRémi Verschelde
2022-03-04Tweak render timestamp names for explicitness and consistencyHugo Locurcio
- Add 2D and 3D in timestamp names when needed to avoid ambiguity. - Use present tense in all render timestamp names. - Add a space after ">" (begin) and "<" (end) symbols. - Remove redundant "End" in render timestamp names (indicated by "<").
2022-03-03Add multiview/stereoscopic rendering support to the clustered forward rendererBastiaan Olij
2022-03-01Revert "Fix particle trail glitch"Rémi Verschelde
2022-02-28Merge pull request #58614 from Calinou/ssr-roughness-quality-enum-fix-typoRémi Verschelde
Fix typo in SSR roughness quality enum value names
2022-02-28Fix typo in SSR roughness quality enum value namesHugo Locurcio
2022-02-26Fix particle trail glitchfloppyhammer
2022-02-25Implement distance fade properties in OmniLight3D and SpotLight3DHugo Locurcio
This can be used to fade lights and their shadows in the distance, similar to Decal nodes. This can bring significant performance improvements, especially for lights with shadows enabled and when using higher-than-default shadow quality settings. While lights can be smoothly faded out over distance, shadows are currently "all or nothing" since per-light shadow color is no longer customizable in the Vulkan renderer. This may result in noticeable pop-in when leaving the shadow cutoff distance, but depending on the scene, it may not always be that noticeable.
2022-02-23Filament specular fix. Clamp dot product between normal and view vectors. ↵Darryl Ryan
Fixes #58459.
2022-02-23Implementing OpenXR driverBastiaan Olij