summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rasterizer_rd/shaders
Commit message (Collapse)AuthorAgeFilesLines
* RenderingServer reorganizationreduz2020-12-0444-14310/+0
|
* Refactored Mesh internals and formats.reduz2020-12-022-7/+33
| | | | | | | | | | | | | | | -Changed how mesh data is organized, hoping to make it more efficient on Vulkan and GLES. -Removed compression, it now always uses the most efficient format. -Added support for custom arrays (up to 8 custom formats) -Added support for 8 weights in skeleton data. -Added a simple optional versioning system for imported assets, to reimport if binary is newer -Fixes #43979 (I needed to test) WARNING: -NOT backwards compatible with previous 4.x-devel, will most likely never be, but it will force reimport scenes due to version change. -NOT backwards compatible with 3.x scenes, this will be eventually re-added. -Skeletons not working any longer, will fix in next PR.
* Merge pull request #42761 from fire/color-grading-3dRémi Verschelde2020-11-281-6/+18
|\ | | | | Environment brightness, contrast, saturation restore with 3d LUT.
| * Environment brightness, contrast, saturation restore with color correction.clayjohn2020-11-281-6/+18
| | | | | | | | | | | | | | | | | | Allow gradients and 2d images. Use shader versions for LUT in tonemap Co-authored-by: alex-poe <3957610+CptPotato@users.noreply.github.com> Co-authored-by: QbieShay <cislaghi.ilaria@gmail.com> Co-authored-by: Clay John <claynjohn@gmail.com>
* | Implement signed distance fields for 2D shadersreduz2020-11-265-5/+206
|/
* Remove empty lines around braces with the formatting scriptAaron Franke2020-11-161-2/+0
|
* Implement DirectionalLight2Dreduz2020-11-042-81/+148
| | | | | | | Also separated Light2D in PointLight2D and DirectionalLight2D. Used PointLight2D because its more of a point, and it does not work the same as OmniLight (as shape depends on texture). Added a few utility methods to Rect2D I needed.
* Alpha Hash and Alpha2Coverage ImplementationMarios Staikopoulos2020-11-021-12/+98
|
* Refactor pixel snapping.reduz2020-10-302-3/+3
| | | | | | | | | -Rename pixel_snap to snap_2d_to_vertices -Added snap_2d_to_transforms which is more useful Fixes #41814 Solves proposal https://github.com/godotengine/godot-proposals/issues/1666 Supersedes #35606, supersedes #41535, supersedes #41534
* Implement CanvasGroup and CanvasItem clippingreduz2020-10-281-11/+17
| | | | | | | | -Allows merging several 2D objects into a single draw operation -Use current node to clip children nodes -Further fixes to Vulkan barriers -Changed font texture generation to white, fixes dark eges when blurred -Other small misc fixes to backbuffer code.
* Merge pull request #43058 from clayjohn/VULKAN-FXAA-bugRémi Verschelde2020-10-251-3/+2
|\ | | | | [4.0]Remove extra exposure multiply in FXAA
| * Remove extra exposure multiply in FXAAclayjohn2020-10-241-3/+2
| |
* | Refactored 2D shader and lighting systemreduz2020-10-243-77/+87
|/ | | | | | | | | | -Removed normal/specular properties from nodes -Create CanvasTexture, which can contain normal/specular channels -Refactored, optimized and simplified 2D shaders -Use atlas for light textures. -Use a shadow atlas for shadow textures. -Use both items aboves to make light rendering stateless (faster). -Reorganized uniform sets for more efficiency.
* Remove unused `#define` from the tonemap shaderHugo Locurcio2020-10-201-2/+0
| | | | | It was a leftover from an earlier version of the debanding PR which used a simpler (but less effective) algorithm.
* Merge pull request #42915 from Yetizone/negative_lights_behaviorRémi Verschelde2020-10-191-0/+4
|\ | | | | tonemap.glsl: Ensure color parameter of tonemap_reinhard() is positive
| * tonemap.glsl: Ensure color parameter of tonemap_reinhard() is positiveYetizone2020-10-201-0/+4
| | | | | | | | | | Color values can become negative in the case of negative lights which leads to undesired behaviour.
* | Fix debanding slightly brightening the whole viewportHugo Locurcio2020-10-191-2/+4
|/ | | | Thanks to Mikkel Gjoel on Twitter for the tip :)
* Merge pull request #38097 from Calinou/add-viewport-debandingJuan Linietsky2020-10-191-1/+18
|\ | | | | Add a debanding property to Viewport
| * Add a debanding property to ViewportHugo Locurcio2020-08-141-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | It can be enabled in the Project Settings (`rendering/quality/screen_filters/use_debanding`). It's disabled by default as it has a small performance impact and can make PNG screenshots much larger (due to how dithering works). It will also slightly brighten the scene's dark areas. As a result, it should be enabled only when banding is noticeable enough. This closes #17006.
* | Revert "Replace SAO implementation with MSSAO"Juan Linietsky2020-10-189-507/+452
| |
* | Merge pull request #42077 from clayjohn/MSSAOJuan Linietsky2020-10-189-452/+507
|\ \ | | | | | | Replace SAO implementation with MSSAO
| * | Replace SAO implementation with MSSAOclayjohn2020-10-189-452/+507
| | |
* | | Merge pull request #41415 from clayjohn/VULKAN-shader-overridesJuan Linietsky2020-10-182-1/+30
|\ \ \ | | | | | | | | Add FOG, RADIANCE, and IRRADIANCE shader overrides
| * | | Add FOG, RADIANCE, and IRRADIANCE shader overridesclayjohn2020-10-182-1/+30
| | | |
* | | | Merge pull request #42201 from clayjohn/Vulkan-new-glowJuan Linietsky2020-10-182-73/+82
|\ \ \ \ | |_|/ / |/| | | Optimize Glow with local memory
| * | | Optimize Glow with local memoryclayjohn2020-10-182-73/+82
| | | |
* | | | Merge pull request #38949 from puchik/ssr-fix-cutoffJuan Linietsky2020-10-181-7/+3
|\ \ \ \ | | | | | | | | | | Continue tracing screen space reflection after encountering sky
| * | | | Continue tracing screen space reflection after encountering skyArman2020-05-221-7/+3
| | | | | | | | | | | | | | | | | | | | Instead of breaking the whole trace when encountering the sky/camera far clip, continue tracing and check if "hits" are sky/far clip or not. Prevents some objects not being reflected due to gaps.
* | | | | Add aerial perspective to fixed fogclayjohn2020-10-173-10/+28
| |/ / / |/| | |
* | | | Fix "fixed" fog drawing in front of volumetric fog with a sky backgroundHugo Locurcio2020-10-152-12/+15
| | | | | | | | | | | | | | | | | | | | | | | | This closes #42820. Co-authored-by: Clay John <claynjohn@gmail.com>
* | | | Implement GPU Particle Collisionsreduz2020-10-091-89/+244
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -Sphere Attractor -Box Attractor -Vector Field -Sphere Collider -Box Collider -Baked SDF Collider -Heightmap Collider
* | | | Fix typos with codespellRémi Verschelde2020-09-188-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using codespell 1.17.1. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear dof doubleclick fave findn leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```
* | | | Implement manual particle emission and particle sub emitters.reduz2020-09-061-53/+185
| | | |
* | | | Merge pull request #40958 from clayjohn/VULKAN-shadow-noiseRémi Verschelde2020-09-041-2/+6
|\ \ \ \ | | | | | | | | | | Improve the quick hash function for all GPUs
| * | | | Improve the quick hash function for all GPUsclayjohn2020-08-011-2/+6
| | | | |
* | | | | Re-Implement GPU particles on master.Juan Linietsky2020-09-024-0/+550
| | | | | | | | | | | | | | | | | | | | | | | | | -No new features yet -Unlike godot 3.x, sorting happens using GPU
* | | | | Merge pull request #41668 from clayjohn/GLOW-HQRémi Verschelde2020-09-011-7/+33
|\ \ \ \ \ | | | | | | | | | | | | Add high quality glow mode
| * | | | | Add high quality glow modeclayjohn2020-08-311-7/+33
| | | | | |
* | | | | | Fix typo in SDF jumpflood shaderJFonS2020-09-011-1/+1
|/ / / / /
* | | / / Fix recent glow regressionsclayjohn2020-08-291-1/+1
| |_|/ / |/| | |
* | | | Add fog to sky shadersclayjohn2020-08-191-12/+69
| |_|/ |/| |
* | | Restored fog (non volumetric).Juan Linietsky2020-08-132-33/+47
| | | | | | | | | | | | | | | Uses a simpler and more intuitive implementation based on density. Its less flexible than before, but its easier to get nice results.
* | | Added volumetric fog effect.Juan Linietsky2020-08-138-109/+791
|/ /
* | Refactor light clusteringJuan Linietsky2020-07-222-3/+3
| | | | | | | | Move from high end to shared, so all renderers use clustering.
* | Slight occlusion improvements.Juan Linietsky2020-06-282-102/+7
| |
* | Addition of SDFGI for open world global illuminationJuan Linietsky2020-06-2613-224/+4230
|/ | | | Move GI to a deferred pass
* GLSL: Change shader type specifier from [vertex] to #[vertex]Rémi Verschelde2020-05-1828-192/+47
| | | | | | | | | | | | | | | The added `#` prevents clang-format from misinterpreting the meaning of this statement and thus messing up the formatting of the next lines up until the first `layout` statement. Similarly, a semicolon is now enforced on `versions` defines to prevent clang-format from messing up formatting and putting them all on a single line. Note: In its current state the code will ignore chained statements on a single line separated by a semicolon. Also removed some extraneous lines missed in previous style changes or added by mistake with said changes (e.g. after uniform definitions that clang-format messes up somewhat too, but we live with it).
* Style: Enforce separation line between function definitionsRémi Verschelde2020-05-1425-0/+63
| | | | | | | | | | | | | | | | | | | | | | | I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
* Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde2020-05-1424-150/+0
| | | | | | | | | | | | | | Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
* New lightmapperJuan Linietsky2020-05-109-50/+166
| | | | | | | -Added LocalVector (needed it) -Added stb_rect_pack (It's pretty cool, we could probably use it for other stuff too) -Fixes and changes all around the place -Added library for 128 bits fixed point (required for Delaunay3D)