summaryrefslogtreecommitdiff
path: root/servers/rendering/renderer_rd
AgeCommit message (Collapse)Author
2021-05-12Implementing blit shader with versionsBastiaan Olij
2021-05-12Merge pull request #48472 from BastiaanOlij/render_stateRémi Verschelde
Make better use of our render_state struct
2021-05-11Fixes missng 2D engine bitsreduz
-Mesh2D now works -MultiMesh2D now works -Polygon2D now works -Added hooks for processing 2D particles -Skeleton2D now works 2D particles still not working, but stuff needed for it is now implemented.
2021-05-10Split RenderDataRD struct from RenderState struct to simplify passing our ↵Bastiaan Olij
render data around the renderer.
2021-05-05Merge pull request #48435 from BastiaanOlij/no_repeat_mobile_rendererRémi Verschelde
Remove repeat from forward mobile renderer
2021-05-04Remove repeat from forward mobile rendererBastiaan Olij
2021-05-03Assorted fixes to UV unwrapping and GPU lightmapperjfons
Various fixes to UV2 unwrapping and the GPU lightmapper. Listed here for context in case of git blame/bisect: * Fix UV2 unwrapping on import, also cleaned up the unwrap cache code. * Fix saving of RGBA images in EXR format. * Fixes to the GPU lightmapper: - Added padding between atlas elements, avoids bleeding. - Remove old SDF generation code. - Fix baked attenuation for Omni/Spot lights. - Fix baking of material properties onto UV2 (wireframe was wrongly used before). - Disable statically baked lights for objects that have a lightmap texture to avoid applying the same light twice. - Fix lightmap pairing in RendererSceneCull. - Fix UV2 array generated from `RenderingServer::mesh_surface_get_arrays()`. - Port autoexposure fix for OIDN from 3.x. - Save debug textures as EXR when using floating point format.
2021-05-03Create mobile rendererBastiaan Olij
2021-04-30Implement Particle Trailsreduz
-Enable the trails and set the length in seconds -Provide a mesh with a skeleton and a skin -Or, alternatively use one of the built-in TubeTrailMesh/RibbonTrailMesh -Works deterministically -Fixed particle collisions (were broken) -Not working in 2D yet (that will happen next)
2021-04-28Merge pull request #48239 from akien-mga/goodbye-copymemRémi Verschelde
Core: Drop custom `copymem`/`zeromem` defines
2021-04-27Merge pull request #48050 from JFonS/occlusion_cullingRémi Verschelde
2021-04-27Core: Drop custom `copymem`/`zeromem` definesRémi Verschelde
We've been using standard C library functions `memcpy`/`memset` for these since 2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb. There was still the possibility for third-party platform ports to override the definitions with a custom header, but this doesn't seem useful anymore.
2021-04-25Remove duplicate commentsDennis Brakhane
A few single line comments were duplicated, probably due to bad merges. This commit removes the obviously duplicate ones.
2021-04-23Implement occlusion cullingjfons
Added an occlusion culling system with support for static occluder meshes. It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`. Occluders are defined via the new `Occluder3D` resource and instanced using the new `OccluderInstance3D` node. The occluders can also be automatically baked from a scene using the built-in editor plugin.
2021-04-21Fix reflection probeBastiaan Olij
2021-04-17Split particle shader entry pointsreduz
* Particle shaders now have start() and process() * Particle collision happens between them. * The RESTART property is kept, so porting an old shader is still possible. This fixes the problem of particle collisions not functioning on the first particle frame.
2021-04-14Refactor GLSL shader compilationreduz
-Used a more consistent set of keywords for the shader -Remove all harcoded entry points -Re-wrote the GLSL shader parser, new system is more flexible. Allows any entry point organization. -Entry point for sky shaders is now sky(). -Entry point for particle shaders is now process().
2021-04-09Remove low_end option from renderer, being replaced by separate implementationBastiaan Olij
2021-04-05Move clustered renderer functionalityBastiaan Olij
2021-04-05Style: Apply clang-tidy's `readability-braces-around-statements`Rémi Verschelde
2021-04-05Style: Apply clang-tidy's `modernize-use-default-member-init`Rémi Verschelde
2021-03-31As GLSLang seems to be all or nothing, added our own definesBastiaan Olij
2021-03-18Changed SCsub for shaders to find shaders automatically and create ↵Bastiaan Olij
dependencies with include files
2021-03-17Added validation when assigning heightfield_resolution (Fix #46281)Ignacio Abal
2021-03-11Removed time duplicate from ForwardClustered. Just use the variable from its ↵Bastiaan Olij
superclass
2021-03-11Combine init_gi and init_sdfgi into a single initBastiaan Olij
2021-03-11Renamed one more Forward render struct and fixed typoBastiaan Olij
2021-03-11Moving RendererStorageRD *storage to protected, no sense duplicating it in ↵Bastiaan Olij
forward_clustered
2021-03-10Renaming RendererSceneRenderForward to RendererSceneRenderForwardClustered ↵Bastiaan Olij
so we can introduce RendererSceneRenderForwardMobile
2021-03-08Merge pull request #46642 from BastiaanOlij/sdfgi_rename_and_cleanupRémi Verschelde
Renamed SDGIShader to SDFGIShader and moved a bunch of things to private
2021-03-05Fix negative VRAM valuesEv1lbl0w
2021-03-04Renamed SDGIShader to SDFGIShader and moved a bunch of things to privateBastiaan Olij
2021-02-25Moving GI code into RendererServerGIRDBastiaan Olij
Moving Skyshader code into RendererServerSkyRD
2021-02-18Merge pull request #45326 from clayjohn/VULKAN-ign-shadowsClay John
Use Interleaved gradient noise for shadow samples
2021-02-18Reorganize Project Settingsreduz
-Advanced Settings toggle also hides advanced properties when disabled -Simplified Advanced Bar (errors were just plain redundant) -Reorganized rendering quality settings. -Reorganized miscelaneous settings for clean up.
2021-02-17Fix math error in blend shape application toleranceKayomn
2021-02-12Merge pull request #45859 from Kayomn/masterRémi Verschelde
Accomodate blend shape ranges of -1 to +1 for Vulkan
2021-02-11Allow passing varying from fragment to light shader functionYuri Roubinsky
2021-02-10Make Servers truly Thread Safereduz
-Rendering server now uses a split RID allocate/initialize internally, this allows generating RIDs immediately but initialization to happen later on the proper thread (as rendering APIs generally requiere to call on the right thread). -RenderingServerWrapMT is no more, multithreading is done in RenderingServerDefault. -Some functions like texture or mesh creation, when renderer supports it, can register and return immediately (so no waiting for server API to flush, and saving staging and command buffer memory). -3D physics server changed to be made multithread friendly. -Added PhysicsServer3DWrapMT to use 3D physics server from multiple threads. -Disablet Bullet (too much effort to make multithread friendly, this needs to be fixed eventually).
2021-02-09Accomodate blend shape ranges of -1 to +1Kayomn
2021-02-07Improve SDFGI indirect light feedback loopreduz
-Use occlusion for feedback, further reduces light leaking. -More control on feedback, now its a slider.
2021-02-07Invert spotlight angle attenuationjfons
Inverted the spotlight angle attenuation so a higher value results in a dimmer light, this makes it more consistent with the distance attenuation. Also changed the way spotlighs are computed in SDFGI and GIPorbes and GPU lightmapper, now it matches the falloff used in the scene rendering code.
2021-02-07Merge pull request #45786 from reduz/fix-sdfgi-radeonRémi Verschelde
Fixed an SDFGI reflections bug in Radeon
2021-02-07Fixed a SDFGI reflections bug in Radeonreduz
-Code was using too many conditionals. -Rewrote it to use less and it now works fine.
2021-02-07Fix volumetric fog for SpotLightsjfons
The code for spot lights was referencing the omni light list. Most likely a copy-paste mistake :)
2021-02-06Fix SDFGI bug after previous optimization.reduz
Was causing arctifacts, should be good now.
2021-02-06Simplify Volumetric Fogreduz
-Always use temporal reproject, it just loos way better than any other filter. -By always using termporal reproject, the shadowmap reduction can be done away with, massively improving performance. -Disadvantage of temporal reproject is update latency so.. -Made sure a gaussian filter runs in XY after fog, this allows to keep stability and lower latency.
2021-02-05Fix mismatched define in scene_forward.glsl for POSITION overrideLyuma
2021-02-05Added temporal reprojection to Volumetric Fogreduz
-It's an option, just enable it -Just works, don't have to do anything else.
2021-02-05Fixes to get Godot running again on Intel IGPreduz
-Fixed strange bug with shadowed instance_param (this should not have worked anywhere, odd..) -Cleaned up barrier usage further.