Commit Graph

3902 Commits

Author SHA1 Message Date
SirLynix 201ac025e2 Graphics: Fix compilation 2024-01-05 11:23:55 +01:00
SirLynix e8a362b695 Graphics/MaterialInstance: Add Build method 2024-01-04 17:47:54 +01:00
SirLynix 7ae76b32b0 Utility: Rework MaterialData 2024-01-04 17:47:41 +01:00
SirLynix 2125b80b8d Use std::string_view for strings 2024-01-04 14:40:50 +01:00
SirLynix 0cd8cff53e OpenGLRenderer: Minor improvements 2024-01-04 10:19:38 +01:00
SirLynix f46f0da12a Graphics/Shaders: Fix point and spot lights in PhysicallyBasedMaterial 2024-01-04 00:03:32 +01:00
SirLynix 5a96ab3bf7 Graphics/PipelinePassList: Add AddPass overload taking a pass name 2024-01-03 18:18:09 +01:00
SirLynix 14f51b31ca Fix a bunch of warnings 2024-01-03 18:17:52 +01:00
SirLynix cd8c1cb160 Replace reinterpret_cast from/to pointers to BitCast 2024-01-03 17:19:42 +01:00
SirLynix 6d1e7d7852 Fix compilation on Windows 2024-01-02 13:07:38 +01:00
SirLynix 7dc7104cc4 Update to latest nazarautils 2024-01-02 12:02:45 +01:00
SirLynix d2e2c075b4 Update copyright year 2024-01-02 12:02:14 +01:00
SirLynix 448cf66846 Minor fixes 2024-01-02 11:50:04 +01:00
Jérôme Leclercq 79ec135af7
Optimize out a lot of std::string construction and allocations (#415)
Update CommandLineParameters.hpp

Update CommandLineParametersTests.cpp

Update WebContext.hpp

xmake check-files -f

Fix MaterialPassRegistry
2023-12-30 14:50:57 +01:00
SirLynix 69efb93671 Network/IpAddress: Add a parameter to exclude port from string 2023-12-30 11:14:29 +01:00
Lynix 8a32c748bb Physics2D/ChipmunkRigidBody2D: Fix SetGeom 2023-12-28 17:47:15 +01:00
SirLynix 08eaf396ed Update to NazaraUtils 2023.12.28 2023-12-28 13:26:04 +01:00
SirLynix 3d21401569 Fix compilation on Windows < Vista 2023-12-28 13:25:33 +01:00
SirLynix 9da6e2ef8c ChipmunkPhysics2D: Fix kinematic body handling 2023-12-26 12:42:08 +01:00
SirLynix 0d3a9547fc Graphics/PipelinePassList: Fix error introduced by 9fb308a531 2023-12-26 12:41:48 +01:00
Lynix e1b3832643 Minor cleanup 2023-12-25 21:02:24 +01:00
Lynix 9fb308a531 Graphics/FramePipelinePass: Replace pointer + size by span 2023-12-25 20:05:45 +01:00
Lynix 4065fbfb1a Core/OpenMode: Rename ReadOnly/WriteOnly to Read/Write 2023-12-25 19:49:03 +01:00
SirLynix 91221a9b4a Minor changes 2023-12-23 14:01:04 +01:00
SirLynix 496800fc5c Graphics/UberShader: throw an exception if shader module couldn't be resolved 2023-12-21 00:08:30 +01:00
SirLynix 92e9a75ffa Platform: Add MessageBox 2023-12-21 00:08:14 +01:00
SirLynix 83366e93d4 Make changes for breaking NZSL update
Fix build

Fix compilation (again)

Fix global included

TextureAsset belongs to another branch

Add missing include

Fix include (should be good, finally)
2023-12-17 20:40:45 +01:00
SirLynix 87bf4563f2 Update auto-gen files 2023-12-17 16:00:44 +01:00
SirLynix 3514ac6340 Widgets/Canvas: Add mouse unhandled signals 2023-12-07 18:28:11 +01:00
SirLynix f2672f6376 Fix compilation 2023-12-07 17:14:20 +01:00
SirLynix 3fd696385d JoltPhysics3D/JoltPhysWorld3D: Add CollisionQuery for points and shapes 2023-12-07 16:49:48 +01:00
SirLynix 26dbdef50d JoltPhysics3D: Add elapsedTime parameter to PostSimulate 2023-12-07 16:45:46 +01:00
SirLynix 6cbfb01243 JoltPhysics3D: Allow raycast to return hit characters (and retrieve their entities) 2023-12-07 16:45:14 +01:00
SirLynix 5253a80a24 Audio: Fix compilation on emscripten | unity_build 2023-12-04 17:50:12 +01:00
SirLynix 3fb1096d07 Audio: Implement support for ALC_EXT_thread_local_context 2023-12-04 17:38:05 +01:00
SirLynix 3e1b61070c Audio/OpenALDevice: Fix previous commit 2023-12-04 17:37:40 +01:00
SirLynix b5576ccb9f Audio: Fix data race when a device is used from multiple threads
OpenAL devices can be used from multiple threads and the error handling code (inspired by OpenGLRenderer) did not take that into account. This is not a problem for the OpenGLRenderer since contexts are thread-local which is not the case for OpenAL devices.
2023-12-04 11:01:01 +01:00
SirLynix 81c5322331 Widgets/BoxLayout: Try to fix widget layout 2023-12-04 09:49:48 +01:00
SirLynix 0c29bce3d8 Utility/SubMesh: Allow tangent generation with 3D texcoords 2023-12-04 09:46:31 +01:00
Jérôme Leclercq 876023ffa9
Core: Fix use of std::bit_cast 2023-12-04 00:38:10 +01:00
SirLynix f75a00efe2 Audio: Fix loading of OpenAL extensions (pointers are context-local) 2023-12-04 00:23:39 +01:00
SirLynix 6059f608c0 Minor improvements 2023-12-04 00:22:36 +01:00
SirLynix f7f31431cb JoltPhysics3D/JoltRigidBody3D: Fix IsSleeping 2023-12-04 00:21:51 +01:00
SirLynix e8c594e325 Graphics/ForwardFramePipeline: Fix viewers ordering 2023-12-03 15:45:44 +01:00
SirLynix 27bc5d48e9 Graphics/ForwardFramePipeline: Fix crash with multiple viewers on a single target 2023-12-03 15:31:32 +01:00
SirLynix 73fc061412 Audio/Music: Remove unnecessary code
Play() blocks until the thread (and source) has started
2023-12-03 15:30:39 +01:00
Lynix 4ee4092bba Cleanup includes 2023-12-02 13:56:24 +01:00
Lynix dc9c1e14c4 Allow to use env vars to override module configs 2023-12-02 13:56:23 +01:00
Lynix 5472514f4b Core: Add EnvironmentVariables 2023-12-02 13:56:23 +01:00
Lynix ba7d2221d0 Audio/SourceEmitter: Throw exception if audio source couldn't be created 2023-12-02 13:56:23 +01:00
Lynix 36dcc03c11 Audio/OpenALDevice: Improve error when buffer/source creation fails 2023-12-02 13:56:06 +01:00
Lynix 150787971a Audio/Music: Fix possible data-race in GetPlayingOffset 2023-11-29 22:26:19 +01:00
Jérôme Leclercq 32d227628c
Integrate render target handling in frame graphs (#411)
* Graphics: Integrate RenderTarget in FrameGraph

- This handles the blit to texture/swapchain in the FrameGraph and fixes RenderTextureBlit
- Dummy attachments were added to the FrameGraph class to handle link without texture (used to setup a dependency between two passes with no texture)
- FramePass now supports custom access/layout/usage for inputs

* Graphics/RenderTarget: Allow to set any RenderTarget as output
2023-11-28 21:00:57 +01:00
Lynix 079f153640 Minor fixes 2023-11-28 20:05:09 +01:00
SirLynix e6c5d95278 JoltPhysics3D/RigidBody: Fix mass being overriden by Jolt 2023-11-26 21:30:27 +01:00
SirLynix 962a2e71c7 Renderer/Texture: Allow to keep the texture format in TextureViewInfo 2023-11-26 21:29:49 +01:00
SirLynix 00935efbe0 OpenGLRenderer/Texture: Fix update of non-2D image types 2023-11-26 21:29:19 +01:00
SirLynix f09175228d JoltPhysics3D: Skip the rigid body update if no physics step took place
This improves the framerate if FPS > physics rate
2023-11-26 21:28:40 +01:00
SirLynix 72182327dd Core/PrimitiveList: Rework and inline the class 2023-11-26 21:27:24 +01:00
SirLynix e8eebc1dfc Core/ParameterList: Take advantage of movement 2023-11-26 14:01:23 +01:00
SirLynix 2622951144 Minor fixes 2023-11-26 11:25:52 +01:00
SirLynix 1ac992b5c7 Graphics: Add Billboard support 2023-11-25 15:52:58 +01:00
Lynix 4cbb5b91a3 OpenGLRenderer/FboFramebuffer: Fix texture view emulation with attachment != color0 2023-11-22 14:09:05 +01:00
Lynix fb425e310f Fixed compilation 2023-11-22 00:13:37 +01:00
Lynix 1e81b38c0f Graphics: Replace RenderFrame by RenderResources
This changes makes the whole rendering independent from the RenderFrame acquired from the Swapchain.
This may allow to do offscreen rendering (= without swapchain), or multi-window rendering in the future
2023-11-21 23:33:18 +01:00
Lynix d7d5c09428 Graphics/FrameGraph: Remove SwapchainFactors attachment size and fully handle multiple viewer sizes 2023-11-21 23:02:07 +01:00
Lynix 5f796666f0 Minor fixes 2023-11-21 22:07:00 +01:00
Lynix 80cab34088 Graphics: Add RenderTextureBlit 2023-11-21 22:06:44 +01:00
Lynix f3aacc0cd2 Graphics/FrameGraph: Rename AddBackbufferOutput to AddOutput 2023-11-21 22:06:24 +01:00
Lynix 6a19ab7ba2 Graphics/FrameGraph: Rename BindAttachmentToExternalTexture 2023-11-21 20:46:22 +01:00
Lynix a018701251 Graphics/ForwardFramePipeline: Fix render size mixup 2023-11-21 19:41:08 +01:00
Lynix 6268acbf04 Graphics: Fix compilation with clang 2023-11-21 08:05:35 +01:00
Lynix c93a5f1975 Graphics: Fix texture reuse when backbuffer is a proxy 2023-11-21 08:05:26 +01:00
Lynix c352e78e11 Compilation fixes 2023-11-21 07:44:44 +01:00
SirLynix eddd4e992b Fix previous commit 2023-11-20 23:19:41 +01:00
SirLynix 7991071e41 Graphics/RenderTexture: Remove no longer used config 2023-11-20 23:12:20 +01:00
SirLynix 938ba09d45 Graphics: Rework RenderTargets
- RenderTarget have been moved to the Graphics module and are now lightweight objects between the target of rendering (swapchain or texture)
- RenderTexture no longer require a blit between the framegraph texture and the target texture (the target texture is now directly rendered onto using a new feature of the framegraph)
- ForwardFramePipeline viewers are now properly ordered by render order
2023-11-20 23:00:06 +01:00
SirLynix f6c417ba8f Fix compilation 2023-11-20 12:36:34 +01:00
SirLynix aaf3d97954 Graphics: Add RenderTexture class 2023-11-20 12:36:34 +01:00
SirLynix 674610e9f8 Graphics/BakedFrameGraph: Don't resize fixed-size textures
Fixed-size attachments such as shadows maps were recreated on resize (oops)
2023-11-20 00:01:24 +01:00
SirLynix 2ef9cd0128 Graphics/ForwardFramePipeline: Optimize out merge pass when only one viewer renders to a target 2023-11-17 17:00:08 +01:00
SirLynix 97d5640967 Renderer: Blit texture to window instead of using a full renderpass
This may improve performance and allow for render targets to customize how they blit the final texture (allowing for render-to-texture)
2023-11-17 16:59:31 +01:00
SirLynix f2e77fb8a5 Rename Nz::Functor to Nz::AbstractFunctor 2023-11-17 13:19:21 +01:00
SirLynix 5a14808a57 Minor fixes 2023-11-17 11:58:03 +01:00
SirLynix ddc8cc6797 Core: Rework ParameterFile
Improve parsing and usage
2023-11-17 11:57:05 +01:00
SirLynix 592845e353 Graphics: Fix default atlas check 2023-11-16 09:00:33 +01:00
SirLynix b7aca4b22a Graphics: Update material shaders 2023-11-16 09:00:21 +01:00
SirLynix f5df12e740 JoltPhysics3D: Update for v4 2023-11-15 08:08:45 +01:00
SirLynix ddf0dc88bc Minor fixes 2023-11-15 08:07:06 +01:00
SirLynix 5e643bca7b Fix MinGW compilation 2023-11-15 08:06:50 +01:00
SirLynix cf222941ec Utility/Image: Fix functions taking a Color 2023-11-14 15:41:59 +01:00
SirLynix a4b10749f7 C++20 fixes 2023-11-14 15:40:48 +01:00
Lynix e5789d1749 Switch Nazara to C++20 2023-11-14 14:24:28 +01:00
SirLynix f0fd3b232c Core: Add generic ParameterConfig
This still needs to be improved
2023-11-12 12:54:34 +01:00
SirLynix 86e26008b3 Minor fixes 2023-11-12 12:51:56 +01:00
SirLynix 949573636d Graphics: RegisterDebugDrawPipelinePass 2023-11-06 21:30:49 +01:00
SirLynix db58921cc4 Graphics/PipelinePassList: Add support for attachment proxy 2023-11-06 21:30:49 +01:00
SirLynix 578240cd6f Graphics/PipelinePassListLoader: Replace Result by exception to improve readability 2023-11-06 21:30:49 +01:00
SirLynix 886991f86d Graphics: Add PipelinePassList loader (able to load from a file)
Fix compilation
2023-11-06 21:30:49 +01:00
SirLynix ef0a34b7b1 Graphics: Add FramePipelinePassFlag to fix shadows 2023-11-06 21:30:49 +01:00
SirLynix 8fb6ea728d Graphics: Add data-driven pipeline passes
Fix compilation
2023-11-06 21:30:49 +01:00
SirLynix 4995364418 Graphics/UberShader: Don't set debug level to regular by default 2023-11-04 17:55:26 +01:00
SirLynix 5382dd3ccd Graphics/UberShader: Hotreload shader when an imported module is modified 2023-11-04 17:55:04 +01:00
SirLynix fa54f1a3e4 Graphics/Material: Fix error message when module is not init 2023-11-04 17:52:47 +01:00
SirLynix c80e06226f Graphics/Graphics: Create default depth texture in preferred depth format 2023-11-04 17:52:27 +01:00
SirLynix 4b8a475bbd Split error macro into two versions (format vs non-formating) to allow format checking at compile-time 2023-11-02 15:18:03 +01:00
SirLynix a803a9cff4 Core: Update UnicodeData 2023-11-02 08:27:10 +01:00
SirLynix 2c6b507e62 Graphics/AbstractViewer: Make Project/Unproject const 2023-10-30 18:36:41 +01:00
SirLynix 6a9177a109 Graphics/ShadowMapping: Replace bias by a position scale
Inspired by Godot (see https://github.com/godotengine/godot-proposals/issues/4517)
2023-10-21 19:31:07 +02:00
SirLynix b04d7662ce Graphics/SlicedSprite: Fix UV inversion when texture coordinates don't take the whole texture 2023-10-21 19:26:26 +02:00
SirLynix a46e61e2e5 Widgets/SimpleWidgetStyles: Fix ImageButtonWidget pressed color 2023-10-21 19:26:26 +02:00
SirLynix da2b49d719 OpenGLRenderer: Fix depthBias constant and slope factors inversion 2023-10-21 19:26:26 +02:00
SirLynix ca4f1b49ac Graphics/Shaders: Adjust PBR ambient 2023-10-14 16:44:36 +02:00
SirLynix f0d809c22a Graphics/ForwardFramePipeline: Fix depth-prepass 2023-10-14 16:43:58 +02:00
SirLynix 4fc5f68f3d Graphics/ViewerInstance: Initialize far and near planes 2023-10-14 14:46:49 +02:00
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