Commit Graph

3787 Commits

Author SHA1 Message Date
SirLynix d92a307fb8 Graphics/Shader: Add light shadow support to PBR 2023-10-14 14:46:49 +02:00
SirLynix ceedfbabaf Graphics/Shaders: Move shadow factor to a separate file 2023-10-14 14:46:49 +02:00
SirLynix c191cb227b Fix compilation 2023-10-14 14:46:49 +02:00
SirLynix d6a99da2ea Graphics/Graphics: Enable depth-clamp on shadow pass if supported 2023-10-14 14:46:49 +02:00
SirLynix 35414ec5d8 Use Nz::Bitset<> for-range 2023-10-14 14:46:49 +02:00
SirLynix addbb98671 Graphics/Shaders: Add support for DistanceDepth (aka point-light shadow maps) 2023-10-14 14:46:49 +02:00
SirLynix b3a43eb5ed Graphics: Improve directional light stabilization and split 2023-10-14 14:46:49 +02:00
SirLynix 96504a0a21 Graphics/FramePipeline: Fix UpdateViewerRenderMask name (=> RenderOrder) 2023-10-14 14:46:49 +02:00
SirLynix 9aebb4f745 Graphics: Rework shadowing (add cascaded shadow mapping)
- Add support for per-viewer shadows
- Add cascaded shadow mapping for directional lights (wip)
- Rework the way lights are sent to the shaders (they are now selected once per viewer)
- Fixes PointLight shadow mapping (using a dedicated pass)
- Lights out of frustum for every viewers are no longer processed (wip)
2023-10-14 14:46:49 +02:00
SirLynix a08850946a Graphics/FrameGraph: Fix texture 2D array reuse 2023-10-14 14:46:49 +02:00
SirLynix e10f15243d Graphics: Replace runtime structs offsets by compile-time struct offsets
now that nzsl::FieldOffsets is constexpr this is possible
2023-10-14 14:46:49 +02:00
SirLynix 929b599337 Graphics/ViewerData: Add near and far plane 2023-10-14 14:46:49 +02:00
SirLynix 2a3da7384d Graphics/RenderSystem: Add support for external swapchains 2023-10-13 20:17:31 +02:00
SirLynix 55b4e47582 Graphics/MaterialInstanceLoader: Add sRGB parameter 2023-10-13 19:56:07 +02:00
SirLynix c2e47501e4 Graphics: Embed new NZSL modules 2023-10-13 19:56:07 +02:00
SirLynix d40b8af68d Graphics: Add gamma correction 2023-10-13 19:56:07 +02:00
SirLynix b09b4d2419 Graphics: Add a way to set which passes are enabled in a frame pipeline
This will be replaced soon with a better system
2023-10-08 23:44:24 +02:00
SirLynix 98fe974fc8 Fix some Vulkan errors
Depth buffers were not tagged as output on passes writing on it
Handle holes in clear values
2023-10-08 13:47:15 +02:00
SirLynix 078542e44b VulkanRenderer: Improve performance of validation message filtering 2023-10-08 13:25:42 +02:00
SirLynix c02a20457a VulkanRenderer: Fix best usage warning 2023-10-08 13:24:35 +02:00
SirLynix 4723c92a65 Graphics/FrameGraph: Reuse memory when building physical passes 2023-09-10 14:46:09 +02:00
Jérôme Leclercq 5203a4fb49
Fix previous fix 2023-09-08 14:00:52 +02:00
Jérôme Leclercq 18efb2016d
Fix Fletcher16 and CRC64 2023-09-08 13:40:30 +02:00
Jérôme Leclercq e8ddac4964
Fix CRC32 2023-09-08 09:58:05 +02:00
SirLynix 85d13ae436 Fix wrong commit 2023-09-08 09:14:13 +02:00
SirLynix 21680171a2 Replace GetPlatformEndianness() by PlatformEndianness constexpr
from nazarautils
2023-09-08 09:13:04 +02:00
SirLynix a3bf80a805 Utility/PixelFormat: Fix a bunch of conversions 2023-09-08 09:10:38 +02:00
SirLynix 1009b296a1 Update for latest nazarautils 2023-09-08 09:10:22 +02:00
SirLynix aef8b01f15 Math/Box: Rename FromExtends to FromExtents 2023-09-08 09:06:26 +02:00
SirLynix 5f8b7b361e Renderer/CommandBuffer: Add support for InsertDebugLabel 2023-09-06 13:24:31 +02:00
SirLynix 07d3ccd75d Graphics/UberShader: Log uber-shader compilation errors 2023-09-06 13:23:49 +02:00
SirLynix 7e93666224 Graphics: Give debug names to buffers 2023-09-06 13:23:07 +02:00
SirLynix 1b9c19fd78 Minor fixes 2023-08-31 18:01:59 +02:00
SirLynix b1487a04fd Graphics/FrameGraph: Add support for texture arrays 2023-08-31 18:00:58 +02:00
SirLynix 2a41afa5af VulkanRenderer: Rewrite errors 2023-08-31 17:57:43 +02:00
SirLynix 51e0876bed Renderer/RenderDeviceInfo: Ensure storage/uniform buffer alignment is a power of two 2023-08-31 17:55:15 +02:00
SirLynix d4b2cede15 Fix compilation of FFMpeg plugin/emscripten/ShaderNode 2023-08-24 17:58:49 +02:00
SirLynix f7df4f56b4 Widgets/RichTextAreaWidget: Fix backspace 2023-08-24 17:47:41 +02:00
SirLynix 557da10dc6 Rework TextDrawer interface 2023-08-24 17:47:20 +02:00
SirLynix 9579eba43d Widgets/BaseWidget: Fix warning in release 2023-08-24 08:42:37 +02:00
SirLynix ad738a2803 Core/StringExt: Add IterateOnCodepoints to remove std::u32string allocations 2023-08-24 08:42:25 +02:00
SirLynix bd53245f42 Core/StringExt: Don't pass string_view by ref
https://quuxplusone.github.io/blog/2021/11/09/pass-string-view-by-value/
2023-08-24 08:23:14 +02:00
SirLynix 1b7a89213d Widgets: Fix manually hidden entities being incorrectly shown when widget itself is shown 2023-08-24 07:54:33 +02:00
SirLynix 98c0a47dcc Widgets/TextAreaWidgets: Keep selections active (and visible) when losing focus 2023-08-23 17:56:36 +02:00
SirLynix 8f0890f719 Widgets: Fix new line selection not being bound to scissor box 2023-08-23 17:33:59 +02:00
SirLynix 66f7e4b6ad Core/SignalHandlerAppComponent: Fix warning 2023-08-17 18:05:03 +02:00
SirLynix ae62e1f6c9 Network/WebService: Make Pool return a boolean indicating if a request finished 2023-08-17 18:04:12 +02:00
SirLynix 0989a25a99 Core/SignalHandlerAppComponent: Fix "failed to install signal handlers" warning popping out even if it worked 2023-08-16 18:18:33 +02:00
SirLynix 49adcd7b81 VulkanRenderer/Loader: Try to load other vulkan libs 2023-08-16 18:12:26 +02:00
SirLynix f2fc02cbd4 Core/ErrorFlags: Turn this class into an inline class 2023-08-16 18:11:18 +02:00
SirLynix ab8bac2575 Use fmt store instead of ToString fallback
Thanks to @jonathanpoelen for the idea
2023-08-15 01:10:01 +02:00
SirLynix a741672a51 Allow error message to be formatted 2023-08-15 01:10:01 +02:00
SirLynix e8620894f7 Renderer: Expose present mode and allow to query/set it 2023-08-13 18:16:03 +02:00
SirLynix 7e54b19eb5 Fix unity compilation 2023-08-12 14:08:48 +02:00
SirLynix 68ce2b2d00 ChipmunkPhysics2D/PhysWorld2D: Change default step size to 1 / 120 2023-08-12 12:23:11 +02:00
SirLynix 887bd875f7 Remove unused headers 2023-08-12 12:22:27 +02:00
SirLynix 689ea06fe1 ChipmunkPhysics2D/Constraint2D: Fix leak and implement single body constraints
Also move anchors to world space
2023-08-12 12:12:20 +02:00
SirLynix 65a1c195ac ChipmunkPhysics2D/RigidBody2D: Add ToLocal/ToWorld methods 2023-08-12 12:11:24 +02:00
SirLynix 4642ea778c ChipmunkPhysics2D/PhysicsSystem: Add query functions wrappers 2023-08-10 12:05:31 +02:00
SirLynix ab95bec41b Fix compilation 2023-08-10 12:03:56 +02:00
SirLynix efa2a30934 Fix check-files ordering headers by folder count for different libs 2023-08-10 08:59:50 +02:00
SirLynix 494a83e817 JoltPhysics3D/Physics3DSystem: Cleanup test code 2023-08-10 08:59:20 +02:00
SirLynix 5484967498 ChipmunkPhysics2D/RigidBody2D: Add unique body index and remove userdata 2023-08-10 08:40:21 +02:00
SirLynix 09f282f2fe JoltPhysics3D/JoltCharacter: Fix IsOnGround returning true when touching walls 2023-08-09 19:38:07 +02:00
SirLynix a6fbf3c622 Fix previous commit 2023-08-08 18:26:53 +02:00
SirLynix cf6fdf258f Graphics: Add new functions to get default material types/presets 2023-08-08 18:17:58 +02:00
SirLynix 32f8141bd8 ChipmunkPhysics2D: Rework RigidBody2D 2023-08-07 18:17:00 +02:00
SirLynix fd73d62adf Graphics/RenderSystem: Fix skeleton not being used when added after graphics component 2023-08-06 10:14:01 +02:00
SirLynix 5444e4186e Core/Thread: Remove MinGW compiler defines (as they are now part of NazaraUtils) 2023-08-04 16:40:46 +02:00
SirLynix c97bba71e7 Utility/Node: Translate comment 2023-08-04 12:28:32 +02:00
SirLynix b3ad0e3a06 JoltPhysics3D: Fix raycast body for static bodies 2023-08-04 12:28:15 +02:00
SirLynix e6f26f04a9 JoltPhysics3D: Fix destruction of just created bodies 2023-08-04 12:27:26 +02:00
SirLynix 62adfdd26c Graphics: Fix warning 2023-08-04 12:24:29 +02:00
SirLynix 816d9d1174 Allow to setup/override module configuration from commandline 2023-07-30 12:44:43 +02:00
SirLynix c081811760 JoltPhysics3D: Allow to construct components without using the system 2023-07-23 13:05:33 +02:00
SirLynix e42b2c87fc Fix unity build compilation 2023-07-22 12:38:07 +02:00
SirLynix 6370e0d16d Core: Fix compilation with MinGW MCF threads 2023-07-22 12:25:40 +02:00
SirLynix 0c6ca52af0 Core/Thread: Fix MinGW compilation in unity build 2023-07-21 12:14:11 +02:00
SirLynix e3da81dff4 ComputeTest: Fix Vulkan error 2023-07-21 12:12:10 +02:00
SirLynix dee47c6f15 Renderer: Fix BuildMipmaps 2023-07-21 12:12:10 +02:00
SirLynix 4db5b59ec9 Renderer: Refactor transient resources (allow access at any time) 2023-07-21 12:12:10 +02:00
SirLynix e34ba8c05d Add ComputeParticlesTest
Renderer: Add a way to execute commands on the device
2023-07-21 12:12:10 +02:00
Jérôme Leclercq 9e7b98a017
Fix recent GetThreadDescription change 2023-07-21 09:20:46 +02:00
SirLynix ef669d8c9a Core/ThreadImpl: Fix GetThreadDescription link error on older Windows 2023-07-21 09:01:15 +02:00
SirLynix fbf4da3c4f VulkanRenderer: Improve transient command buffer usage
Allocate and reuse them between frames, by resetting the command pool
2023-07-21 09:00:34 +02:00
SirLynix cbe055d412 Core/AppFilesystemComponent: Use hash as key for resource parameters 2023-07-17 19:07:45 +02:00
SirLynix f2bc1bff7a Update for latest nazarautils update 2023-07-17 19:05:15 +02:00
SirLynix af3d1cfa26 Network/NetPacket: Fix mutex recursive lock leading to an exception 2023-07-15 10:36:41 +02:00
SirLynix 42ea4ebbfb Widgets/BaseWidget: Fix background entity not being released 2023-07-15 10:36:03 +02:00
SirLynix 5e4c175395 VulkanRenderer: Implement CommandBufferBuilder::BuildMipmaps 2023-07-14 14:25:08 +02:00
SirLynix 6308553886 Graphics/TextSprite: Fix AABB when scale is used 2023-07-14 14:18:44 +02:00
SirLynix 62663dc8e1 Vulkan 2023-07-14 14:18:04 +02:00
SirLynix 4f3542356d Graphics/RenderSystem: Handle visibility immediatly
This fixes an issue when rendermask/scissor box is updated right after making an entity visible (e.g. widgets)
2023-07-02 14:04:00 +02:00
SirLynix fff4029047 Graphics/ForwardFramePipeline: Fix crash when removing a viewer 2023-07-02 14:02:11 +02:00
SirLynix b66c50a5da Graphics/ForwardFramePipeline: Fix light frustum culling 2023-06-28 17:44:34 +02:00
SirLynix 96618cbb5b Fix some warnings 2023-06-27 19:31:24 +02:00
SirLynix b01ee18eaf Graphics/ForwardFramePipeline: Fix frustum test 2023-06-25 10:02:20 +02:00
SirLynix 8481cc7c15 Widgets/BoxLayout: Fix warning 2023-06-21 20:14:31 +02:00
SirLynix 9887f73116 BulletPhysics3D!: Remove unused variable 2023-06-21 20:14:11 +02:00
SirLynix da6d3afa33 Core/ThreadImpl: Fix warning and merge implementations 2023-06-21 20:13:58 +02:00
SirLynix 6778d6ea33 Fix warning 2023-06-21 19:50:09 +02:00
SirLynix 2a9ec4f3bb Minor fixes 2023-06-16 13:06:11 +02:00
SirLynix 6bf91e10e5 Network: Implement WebService with emscripten fetch API on wasm 2023-06-14 20:13:17 +02:00
SirLynix c65daba072 Network: Add WebService 2023-06-14 20:13:17 +02:00
SirLynix b5206ebdb7 Utility/STBSaver: Replace static map by constexpr unordered_map 2023-06-13 19:39:28 +02:00
NeDKaM ced5083aef Utility : Fixed STBSaver supported file extensions 2023-06-13 19:30:27 +02:00
SirLynix 504c0f771b Minor fixes 2023-06-09 09:24:03 +02:00
SirLynix 40bb69bc60 Core: Add SignalHandlerAppComponent 2023-06-07 22:28:55 +02:00
SirLynix 51ac2b71df Fix thread support on MinGW 2023-06-07 18:54:37 +02:00
Jérôme Leclercq 4c21821802
Core: Add missing GetCurrentThreadName on POSIX 2023-06-07 14:12:32 +02:00
SirLynix bf0d7674c7 Core: Add thread extension functions 2023-06-07 13:35:40 +02:00
SirLynix 628a3a8375 Include fixes 2023-06-07 13:30:25 +02:00
SirLynix caf8446707 Math: Remove Algorithm file and move string functions to StringExt 2023-06-06 08:59:58 +02:00
Jérôme Leclercq c87c45f332
Fix missing include 2023-06-05 20:46:54 +02:00
SirLynix b9c1559d97 Random code cleanup 2023-06-05 18:05:16 +02:00
Jérôme Leclercq 1a55b550fb
Improve math module (#396)
* Improve math module

- Mark almost everything constexpr
- Equality (a == b) is now exact, down to the bit level. If you want approximate equality use the new ApproxEqual method/static method
- Rename Nz::Extend to Nz::Extent
- Removed Make[] and Set[] methods in favor of their static counterpart and operator=
2023-06-02 22:30:51 +02:00
SirLynix de88873c35 Make use of the new Flags iterator 2023-06-02 17:57:26 +02:00
SirLynix 1672765936 JoltPhysics3D/JoltCollider3D: Add Mesh JoltMeshCollider3D 2023-06-02 17:47:25 +02:00
SirLynix d310bf478b Core/VirtualDirectoryFilesystemResolver: Fix unicode path 2023-05-30 19:09:11 +02:00
SirLynix ae5b1dc485 Fix compilation 2023-05-30 13:49:28 +02:00
SirLynix 2886a2e0c0 Rename EnumMap to EnumArray after nazarautils update 2023-05-30 13:49:19 +02:00
SirLynix cff918f6a3 Graphics/ForwardFramePipeline: Fix unregister + register the same renderable pointer not invalidating rendering
This can happen with ECS components which are mostly stable in memory, when destroying a graphics entity and recreating it (even with a different mesh) its pointer may not change due to memory recycling, especially on simple scenes.

A UInt8 generation counter helps prevents this
2023-05-30 13:34:41 +02:00
SirLynix f2f90e2ca3 Fix compilation 2023-05-30 12:37:22 +02:00
SirLynix 0c7efa05e2 Fix a bunch of warnings 2023-05-30 12:34:38 +02:00
SirLynix 68b3e31eec Utility/PixelFormat: use std::string_view to store name 2023-05-30 12:33:40 +02:00
SirLynix dfe6b2ddcf Make use of the new EnumMap class 2023-05-30 12:32:37 +02:00
SirLynix d914f41404 JoltPhysics3D/JoltCharacter: Fix crash after move 2023-05-21 14:58:55 +02:00
SirLynix a6f4e7b08d Add missing include 2023-05-16 14:32:33 +02:00
SirLynix 6f15400d01 JoltPhysics3D: Rework Character class 2023-05-15 19:03:28 +02:00
SirLynix 14c9c7fffd Graphics/GuillotineTextureAtlas: Disable mipmaps for now 2023-05-15 19:02:17 +02:00
SirLynix 34b8bb5d65 Core/Resource: Pass filePath by value and move to prevent useless copy 2023-05-15 08:31:42 +02:00
SirLynix 1d32af53c5 Renderer: Add mipmaps generation support 2023-05-14 18:55:41 +02:00
SirLynix 3712b641f8 Widgets: Improve BoxLayout 2023-05-14 18:53:56 +02:00
SirLynix f1cd5ad048 Fix ShaderNode compilation 2023-05-14 18:51:46 +02:00
SirLynix 383e905b3f Utility/Image: Add LoadFaceFromImage 2023-05-12 19:14:44 +02:00
SirLynix e1d38abc04 Graphics/ForwardFramePipeline: Fix crash with multiple viewers 2023-05-12 19:14:18 +02:00
SirLynix bbbd3f88c1 Core: Add DisabledComponent (to temporary disable an entity) 2023-05-07 22:43:48 +02:00
SirLynix c69397707e Core: Add StateMachine
Backported from legacy Nazara
2023-05-07 22:42:54 +02:00
SirLynix 9aeaaa9495 Core/Application: Fix updater elapsed time 2023-05-06 15:44:52 +02:00
SirLynix 19d0342082 Fix warning 2023-05-01 18:36:34 +02:00
SirLynix 0c64c3d68b Graphics/ForwardFramePipeline: Use camera viewport 2023-05-01 18:36:29 +02:00
SirLynix 3e4f32140e Core/ApplicationBase: Fix elapsedTime in updaters for non-fixed intervals 2023-05-01 18:03:01 +02:00
SirLynix a578b061b4 Graphics/FrameGraph: Fix bug introduced in 97f1c2c56c 2023-05-01 17:05:07 +02:00
SirLynix 3957687a31 OpenGLRenderer/CommandBuffer: Replace std::visit by a switch (to improve performance) 2023-04-30 21:12:33 +02:00
SirLynix 97f1c2c56c Refactor xmake.lua and make some warnings as errors 2023-04-30 21:11:30 +02:00
SirLynix de5e7bd8a8 Core/ApplicationBase: Add support for updaters with intervals 2023-04-23 19:45:33 +02:00
SirLynix cdb4ff2de9 Fix compilation on wasm 2023-04-12 15:31:04 +02:00
SirLynix d717335bca VulkanRenderer: Fix unitybuild causing #define issue because of Windows.h 2023-04-12 14:13:34 +02:00
SirLynix f034e71ba4 Core/HardwareInfo: Fix compilation for other arch than x86 2023-04-12 14:10:55 +02:00
SirLynix 6d8734f288 Add support for ARM64 on Windows 2023-04-11 18:15:29 +02:00