summaryrefslogtreecommitdiffstats
path: root/servers/rendering_server.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #48239 from akien-mga/goodbye-copymemRémi Verschelde2021-04-281-16/+16
|\ | | | | Core: Drop custom `copymem`/`zeromem` defines
| * Core: Drop custom `copymem`/`zeromem` definesRémi Verschelde2021-04-271-16/+16
| | | | | | | | | | | | | | | | 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.
* | Implement occlusion cullingjfons2021-04-231-1/+20
|/ | | | | | | | | 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.
* Rename get_surface_material to get_surface_override_materialclayjohn2021-04-141-1/+1
|
* Reorganize Project Settingsreduz2021-02-181-120/+120
| | | | | | | -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.
* Make Servers truly Thread Safereduz2021-02-101-2/+2
| | | | | | | | | -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).
* Simplify Volumetric Fogreduz2021-02-061-5/+1
| | | | | | | -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.
* Merge pull request #37547 from aaronfranke/tauRémi Verschelde2021-02-011-4/+6
|\ | | | | Use Math_TAU and deg2rad/etc in more places and optimize code
| * Use Math_TAU and deg2rad/rad2deg in more places and optimize codeAaron Franke2021-01-091-4/+6
| |
* | Shadow map rendering optimizationreduz2021-01-241-13/+2
| | | | | | | | | | | | | | -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.
* | Several GI related optimizations and fixesreduz2021-01-241-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | -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.
* | Added GPU based cluster builderreduz2021-01-191-0/+3
|/ | | | Clustering is now GPU based, uses an implementation based on the Activision algorithm.
* Threaded optimizations to cull and renderreduz2021-01-051-0/+7
| | | | | -Reorganize thread work pool for rendering -Fixes to make secondary command buffers to work (disabled because they need more testing)
* Update copyright statements to 2021Rémi Verschelde2021-01-011-2/+2
| | | | | | | | | | | | | | Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
* Expose gltf2 eight weights.K. S. Ernest (iFire) Lee2020-12-291-1/+15
|
* Merge pull request #44641 from reduz/get-frame-setup-timeRémi Verschelde2020-12-241-0/+3
|\ | | | | Add API to get frame setup time on CPU
| * Add API to get frame setup time on CPUreduz2020-12-241-0/+3
| | | | | | | | Needed for benchmarks
* | Merge pull request #44623 from reduz/rewrite-renderer-indexerJuan Linietsky2020-12-241-0/+3
|\ \ | |/ |/| Replace Octree by DynamicBVH in cull code
| * Replace Octree by DynamicBVH in cull codereduz2020-12-231-0/+3
| | | | | | | | | | | | -Much greater pairing/unpairing performance -For now, using it for culling too, but this will change in a couple of days. -Added a paged allocator, to efficiently alloc/free some types of objects.
* | Bind viewport measure functionsreduz2020-12-231-0/+4
|/
* Port ASSAO to Godot to replace SAOclayjohn2020-12-211-8/+13
|
* Reimplement skeletons and blend shapesreduz2020-12-161-7/+8
| | | | Uses compute shaders, which only once, on demand, and all in parallel.
* Cleanup unused engine codeTomasz Chabora2020-12-091-9/+0
|
* Add support for low-end 3D rendering.reduz2020-12-071-0/+3
| | | | | -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.
* doc: Sync classref with current sourceRémi Verschelde2020-12-041-0/+20
| | | | | | | | And fixups: - Add missing bindings in RenderingServer - Remove duplicate ArrayMesh enum bindings (they're in Mesh already) - Remove redundant _unhandled_key_input binding in Control (it's in Node already)
* Refactored Mesh internals and formats.reduz2020-12-021-449/+356
| | | | | | | | | | | | | | | -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-1/+1
|\ | | | | Environment brightness, contrast, saturation restore with 3d LUT.
| * Environment brightness, contrast, saturation restore with color correction.clayjohn2020-11-281-1/+1
| | | | | | | | | | | | | | | | | | 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>
* | Merge pull request #42987 from clayjohn/VULKAN-sky-onlyRémi Verschelde2020-11-281-0/+1
|\ \ | | | | | | Add sky_only setting to DirectionalLight3Ds
| * | Add sky_only setting to DirectionalLight3Dsclayjohn2020-10-211-0/+1
| | |
* | | Implement signed distance fields for 2D shadersreduz2020-11-261-1/+0
| |/ |/|
* | Remove empty lines around braces with the formatting scriptAaron Franke2020-11-161-1/+0
| |
* | Reorganized core/ directory, it was too fatty alreadyreduz2020-11-071-1/+1
| | | | | | | | | | | | -Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
* | doc: Sync classref with current source + fixup some bindingsRémi Verschelde2020-11-041-0/+7
| | | | | | | | Includes various changes triggered by the refactoring of method bindings.
* | Implement DirectionalLight2Dreduz2020-11-041-5/+4
| | | | | | | | | | | | | | 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.
* | Refactored 2D shader and lighting systemreduz2020-10-241-1/+2
|/ | | | | | | | | | -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.
* Fixup method binding from #42910Rémi Verschelde2020-10-191-1/+1
|
* Merge pull request #38097 from Calinou/add-viewport-debandingJuan Linietsky2020-10-191-0/+2
|\ | | | | Add a debanding property to Viewport
| * Add a debanding property to ViewportHugo Locurcio2020-08-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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-181-11/+9
| |
* | Merge pull request #42077 from clayjohn/MSSAOJuan Linietsky2020-10-181-9/+11
|\ \ | | | | | | Replace SAO implementation with MSSAO
| * | Replace SAO implementation with MSSAOclayjohn2020-10-181-9/+11
| | |
* | | Merge pull request #42201 from clayjohn/Vulkan-new-glowJuan Linietsky2020-10-181-1/+1
|\ \ \ | |/ / |/| | Optimize Glow with local memory
| * | Optimize Glow with local memoryclayjohn2020-10-181-1/+1
| | |
* | | Merge pull request #41418 from clayjohn/Vulkan-aerialRémi Verschelde2020-10-181-1/+1
|\ \ \ | | | | | | | | Add aerial perspective to fixed fog
| * | | Add aerial perspective to fixed fogclayjohn2020-10-171-1/+1
| |/ /
* / / Refactor MethodBind to use variadic templatesreduz2020-10-181-1/+0
|/ / | | | | | | Removed make_binders and the old style generated binders.
* | Fix typo in soft shadow quality project settings hintsHugo Locurcio2020-10-151-2/+2
| |
* | doc: Sync classref with current sourceRémi Verschelde2020-10-121-0/+1
| |
* | expose local RenderingDevice creation to RenderingServerclayjohn2020-09-161-0/+5
| |