summaryrefslogtreecommitdiff
path: root/servers/rendering/renderer_rd/shaders
AgeCommit message (Collapse)Author
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-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-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-10Renaming RendererSceneRenderForward to RendererSceneRenderForwardClustered ↵Bastiaan Olij
so we can introduce RendererSceneRenderForwardMobile
2021-02-18Merge pull request #45326 from clayjohn/VULKAN-ign-shadowsClay John
Use Interleaved gradient noise for shadow samples
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-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.
2021-02-04Rewrote how barriers work for faster renderingreduz
-Added more finegrained control in RenderingDevice API -Optimized barriers (use less ones for thee same) -General optimizations -Shadows render all together unbarriered -GI can render together with shadows. -SDFGI can render together with depth-preoass. -General fixes -Added GPU detection
2021-01-26Reorganize RenderingDevice barriersreduz
-Removed sync to draw, now everything syncs to draw by default. -Fixed many validation layer errors. -Added support for VkImageViewUsageCreateInfo to fix validation layer warnings. -Texture, buffer, raster and compute functions now all allow spcifying which barriers will be used.
2021-01-24Shadow map rendering optimizationreduz
-All shadow rendering is done with raster now (no compute) -All shadow rendering is done by rendering directly to the shadow atlas -Improved how buffer clearing is done to optimize the above. -Ability to set shadows as 16 bits.
2021-01-24Several GI related optimizations and fixesreduz
-SDFGI direct light is done over many frames -SDFGI Changed settings for rays/frame -SDFGI Misc optimizations -SDFGI Bug fix on probe scroll -GIProbe was not working, got it to work again -GIProbe dynamic objects were not working, fixed -Added a half size GI option.
2021-01-21Use Interleaved gradient noise for shadow samplesclayjohn
2021-01-19Added GPU based cluster builderreduz
Clustering is now GPU based, uses an implementation based on the Activision algorithm.
2021-01-19Shader optimizations to reduce VGPR usage and increase occupancyreduz
2021-01-12Renamed `emit_particle` to `emit_subparticle` shader functionYuri Roubinsky
2021-01-09Fix LIGHT compilation for canvas shaderYuri Roubinsky
2021-01-05Change the light attenuation formulas.reduz
-Much better looking, physically based. -Almost negligible extra cost.
2021-01-05Rewrite render code to be more cache and thread friendly.reduz
2021-01-05Reorganize renderer code.reduz
So it can hopefully be made more cache efficient afterwards.
2021-01-04Merge pull request #44842 from clayjohn/VULKAN-SSAO-2Rémi Verschelde
SSAO renames and move push constant binding
2021-01-04fix inconsistent normal map shader variable namingHendrik Brucker
2021-01-03SSAO cleanup and fixesclayjohn
2020-12-29Consistently use normal_mapMarcel Admiraal
2020-12-26Cleanup leftover functions from adding SSAOclayjohn
2020-12-21Port ASSAO to Godot to replace SAOclayjohn
2020-12-18Improved shadow rendering efficiencyreduz
-Do not bind attributes that are not needed -Improve a bit more how meshoptimizer interacts with Godot
2020-12-16Reimplement skeletons and blend shapesreduz
Uses compute shaders, which only once, on demand, and all in parallel.
2020-12-10Fixes to recent Vulkan errorsclayjohn
2020-12-07Add support for low-end 3D rendering.reduz
-Reduce number of uniform sets from 6 to 4. -Remove features in low end mode, in order to reduce the number of texture units fit to 16.
2020-12-04RenderingServer reorganizationreduz