SirLynix
caf8446707
Math: Remove Algorithm file and move string functions to StringExt
2023-06-06 08:59:58 +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
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
0c7efa05e2
Fix a bunch of warnings
2023-05-30 12:34:38 +02:00
SirLynix
dfe6b2ddcf
Make use of the new EnumMap class
2023-05-30 12:32:37 +02:00
SirLynix
14c9c7fffd
Graphics/GuillotineTextureAtlas: Disable mipmaps for now
2023-05-15 19:02:17 +02:00
SirLynix
1d32af53c5
Renderer: Add mipmaps generation support
2023-05-14 18:55:41 +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
0c64c3d68b
Graphics/ForwardFramePipeline: Use camera viewport
2023-05-01 18:36:29 +02:00
SirLynix
a578b061b4
Graphics/FrameGraph: Fix bug introduced in 97f1c2c56c
2023-05-01 17:05:07 +02:00
SirLynix
97f1c2c56c
Refactor xmake.lua and make some warnings as errors
2023-04-30 21:11:30 +02:00
SirLynix
2f5db80183
Remove empty source files
2023-04-11 13:51:11 +02:00
SirLynix
2c6191987f
Graphics/PhongMaterial: Add option to disable shadow mapping (and disable it by default on web)
2023-04-10 17:25:18 +02:00
SirLynix
f952c64642
Graphics/BasicMaterial: Fix compilation error when no UV are available ...
...
... but textures are mapped
2023-04-10 17:12:40 +02:00
SirLynix
9b4d297c04
Update includes for new NazaraUtils version
2023-03-19 13:01:56 +01:00
SirLynix
c700a7e45d
Graphics/ForwardFramePipeline: Fix shadow maps not showing up until scene update
2023-03-14 18:08:05 +01:00
SirLynix
88b6ff63b7
Graphics/AbstractViewer: Add Project & Unproject methods
2023-03-14 18:07:03 +01:00
SirLynix
780e7e2def
Graphics/Phong: Set default AmbientColor to white
2023-03-10 13:27:47 +01:00
SirLynix
3edffa8399
Graphics/MaterialInstance: Add UpdatePassesStates
2023-03-09 17:51:03 +01:00
SirLynix
55f2937678
Graphics/GraphicalMesh: Add AABB
2023-03-09 17:50:38 +01:00
SirLynix
5e6a20f479
Fix text outline render order
2023-02-26 13:46:19 +01:00
SirLynix
2e8ea0e887
Graphics/TextSprite: Fix outline showing up over glyphs
2023-02-22 19:12:15 +01:00
SirLynix
5833ce573d
Graphics: Switch glyph atlases to R8 instead of A8
...
A8 can't be supported efficiently on API lacking texture swizzle support (DX, WebGL, WebGPU), so we swizzle in the shader instead
2023-02-22 19:11:41 +01:00
SirLynix
e96204a2ab
Graphics/AbstractViewer: Set virtual destructor
2023-02-15 16:33:02 +01:00
SirLynix
5567a39a65
Fix widgets
2023-02-02 20:34:25 +01:00
SirLynix
292ca60592
WIP
2023-02-02 20:34:25 +01:00
SirLynix
c144435d4a
Graphics: Set default sprites size to the base color texture size, if any
2023-02-02 13:24:22 +01:00
SirLynix
8bc953240d
Core/FilesystemComponent: Add a way to fix indices accross DLL boundaries
2023-01-29 18:13:35 +01:00
SirLynix
d27ca55943
Core/AppFilesystemComponent: Add support for default resource parameters
2023-01-28 11:27:49 +01:00
SirLynix
c0024dfa34
Fix warnings
2023-01-28 11:14:02 +01:00
SirLynix
f98cbcd00a
Copyright year update
2023-01-22 17:41:18 +01:00
SirLynix
d3c05c9ade
Update globalheaders and fix includes/header guards
2023-01-22 12:37:58 +01:00
SirLynix
18851c9185
Replace RenderWindow with swapchains
2023-01-22 12:37:58 +01:00
SirLynix
a1480fc2db
Graphics: Fix text atlas resizing
2023-01-21 19:10:40 +01:00
Jérôme Leclercq
dd421a6385
Replace float/UInt64 durations by a more precise Time class ( #388 )
...
Improve Clock class with atomic RestartIfOver method and allows to choose required precision
2022-12-29 21:31:46 +01:00
SirLynix
9a553e5e9d
Core: Make Color constexpr
2022-12-29 12:13:00 +01:00
SirLynix
fe8715f1fb
Renderer: Working compute implementation
2022-12-25 19:19:16 +01:00
SirLynix
9578ba3ef5
Add initial support for compute pipelines
2022-12-25 19:19:16 +01:00
SirLynix
3c86b84e13
Graphics: Rework tilemap class (and fix its AABB)
2022-12-18 14:57:40 +01:00
SirLynix
830eee78a8
Math: Rework Box and Rect classes
2022-12-18 14:57:14 +01:00
SirLynix
d4422c4102
Graphics: Add origin to all sprite-based renderables (and made it a factor)
2022-12-17 14:48:50 +01:00
SirLynix
780359eb8b
Graphics: Fix point light shadowmaps
2022-12-08 18:28:17 +01:00
SirLynix
f8238a6e6c
Graphics: Implement point-light shadow-mapping
2022-12-08 18:17:13 +01:00
SirLynix
5a57976b4b
Graphics/FrameGraph: Add support for cubemap and slice rendering
2022-12-08 18:17:13 +01:00
SirLynix
08ea4c87a7
Improve texture view support
2022-12-08 18:17:13 +01:00
SirLynix
42f8cdb151
Add initial support for texture views
2022-12-08 18:17:13 +01:00
SirLynix
902dee6121
Renderer/TextureInfo: Separate layerCount from size
2022-12-08 18:17:13 +01:00
SirLynix
1768f20365
Graphics: Move shadow-mapping related code to LightShadow classes
2022-12-08 18:17:13 +01:00
SirLynix
d7eab778fb
Graphics/FrameGraph: Add FramePassAttachmentSize enum instead of boolean
2022-12-08 18:17:13 +01:00
SirLynix
34348b2dde
Minor fixes
2022-12-08 18:17:13 +01:00
SirLynix
f580ba523d
Graphics: Send shadow map res to shader
2022-12-08 18:17:13 +01:00
SirLynix
3623f4ccc4
Add support for moving shadow-casting lights
2022-12-08 18:17:13 +01:00
SirLynix
1727ae8631
Graphics/TextSprite: Fix front facing
2022-12-08 18:17:13 +01:00
SirLynix
6ef4c14772
Renderer: Change binding members order
2022-12-08 18:17:13 +01:00
SirLynix
e990a320cc
WIP
2022-12-08 18:17:13 +01:00
SirLynix
4a10c1f8fe
Add shadow mapping (wip)
2022-12-08 18:17:13 +01:00
SirLynix
be9fba3190
Graphics/Material: Fix uniform buffer size
2022-12-08 13:06:50 +01:00
SirLynix
77642cf431
Renderer: Implement and use debug names
2022-12-02 22:46:43 +01:00
Lynix
02387b8fe3
Graphics: Add Tilemap
2022-11-25 19:28:22 +01:00
SirLynix
2fd2e190b9
FrameGraph: Fix texture pool
2022-11-15 18:01:51 +01:00
SirLynix
ad1f3bc321
Graphics/Graphics: Add preferred depth format
2022-11-06 23:45:37 +01:00
SirLynix
ea3c363b58
Graphics/ShaderReflection: Add support for texture arrays
2022-11-06 23:15:22 +01:00
SirLynix
04a8b03cf3
Graphics/TextureLoader: Add support for alpha-test and alpha-blending
2022-11-05 00:29:25 +01:00
SirLynix
fe0d70d9e1
Graphics/MaterialInstance: Add LoadFrom*
2022-11-05 00:28:33 +01:00
SirLynix
5502e51d71
Graphics: Move skinning to a separate module
2022-11-05 00:26:56 +01:00
SirLynix
1205155466
Graphics/Material: Rename CreateInstance to Instantiate
2022-11-05 00:14:16 +01:00
SirLynix
ab154819a7
Graphics: Make use of new auto_binding
2022-10-31 22:44:19 +01:00
Jérôme Leclercq
dc6ce8427c
Refactor material system ( #382 )
2022-10-31 19:53:41 +01:00
SirLynix
9cd7976a91
Remove "MemoryManager" and very old code
2022-09-24 14:25:52 +02:00
SirLynix
6bf4ccaae1
Core/ParameterList: Rework Parameter getter using Result
2022-09-09 13:47:06 +02:00
SirLynix
3f38c52455
xmake check-files -f
2022-09-08 08:58:22 +02:00
SirLynix
a8c54abdd0
Graphics: Add skinning support to DepthMaterial
2022-09-08 08:57:37 +02:00
SirLynix
99c9df5731
Graphics: Add default materials
2022-09-08 08:57:11 +02:00
SirLynix
7f7ddb415b
Graphics: Fix TextureLoader
2022-09-08 08:56:57 +02:00
SirLynix
fbdc1faf8c
Graphics: Add TextureLoader
2022-09-07 13:31:21 +02:00
SirLynix
04d2f4a6c2
Graphics/MaterialPipeline: Rework GetRenderPipeline
...
Decrease the need for memory allocations in most cases (especially for sprites)
2022-08-30 19:29:23 +02:00
SirLynix
017a6c7af3
Graphics: Use memory pools for render elements
2022-08-30 19:27:52 +02:00
SirLynix
50ed8b4028
Add initial support for skeletal entities / components
2022-08-27 03:07:48 +02:00
SirLynix
7ada266917
Graphics: Add PredefinedSkeletalData
2022-08-25 12:59:01 +02:00
SirLynix
b37af6da31
Final skeletal fixes
2022-08-25 12:59:01 +02:00
SirLynix
a9801894e8
Merge fixes
2022-08-25 12:59:01 +02:00
SirLynix
d60fce169a
Fix merge
2022-08-25 12:59:01 +02:00
SirLynix
104f60f3e7
Add support for GPU skinning (WIP)
2022-08-25 12:59:01 +02:00
SirLynix
507a4f16be
Fix compilation
2022-08-17 20:22:49 +02:00
SirLynix
c669c68533
Minor fixes
2022-08-17 20:13:00 +02:00
SirLynix
f1549b934c
Graphics: Add DebugDrawer support
2022-08-17 20:12:49 +02:00
Lynix
bff356f7df
PhysicallyBasedMaterial: Fix AmbientColor/SpecularColor
2022-07-19 20:03:05 +02:00
Lynix
ad8b46db38
Rename Diffuse to BaseColor
2022-07-19 20:02:01 +02:00
Lynix
75015862dc
Fix PBR example
2022-07-18 22:34:14 +02:00
SirLynix
bcdb0f98f0
Move Cook-Torrance functions to a separate module
2022-07-18 22:04:44 +02:00
SirLynix
b2fad27618
Fix basic material and add demo
2022-07-18 22:04:44 +02:00
SirLynix
ccd7885213
Fix compilation
2022-07-18 22:04:44 +02:00
SirLynix
3e21b4bea6
Add PBR rendering (WIP)
2022-07-18 22:04:44 +02:00
SirLynix
6882163693
Update for latest NZSL version
2022-07-16 14:17:04 +02:00
SirLynix
96599d1116
Graphics: Add LinearSlicedSprite class
2022-07-12 08:45:02 +02:00
SirLynix
6203d5f0d1
Graphics/SlicedSprite: Fix GetTopLeftCorner linking
2022-07-12 08:44:43 +02:00
SirLynix
1b678defae
Add system graph (wip)
2022-07-02 19:45:50 +02:00
SirLynix
cefa620b20
PhongMaterial: Move TBN computation to fragment shader
2022-06-28 08:56:43 +02:00
SirLynix
9f360f6675
Graphics: Watch dev files in debug for changes
2022-06-28 08:56:14 +02:00
SirLynix
87012a4a52
GraphicalMesh: Handle missing index buffer
2022-06-28 08:55:48 +02:00
SirLynix
813314b5d5
UberShader: Handle case where entry points come from imported modules
2022-06-17 19:07:40 +02:00
SirLynix
6f18a02999
Add fullscreen vertex shader module
2022-06-16 19:26:57 +02:00
SirLynix
62ba4f172b
Graphics/GraphicalMesh: Allow to update submeshes
2022-06-16 18:19:48 +02:00
SirLynix
2cc4944f58
Fix compilation
2022-06-16 18:19:19 +02:00
SirLynix
8e8bee7037
Temp fix for NZSL update
2022-06-15 20:26:14 +02:00
SirLynix
c7b6d83bbc
Last nzsl version update
2022-06-07 20:18:16 +02:00
SirLynix
510ef8c41e
Update shaders to new import syntax
2022-06-05 18:51:46 +02:00
Jérôme Leclercq
03e2801dbe
Split engine to packages NazaraUtils and NZSL ( #375 )
...
* Move code to NazaraUtils and NZSL packages
* Reorder includes
* Tests: Remove glslang and spirv-tools deps
* Tests: Remove glslang init
* Remove NazaraUtils tests and fix Vector4Test
* Fix Linux compilation
* Update msys2-build.yml
* Fix assimp package
* Update xmake.lua
* Update xmake.lua
* Fix shader compilation on MinGW
* Final fixes
* The final fix 2: the fix strikes back!
* Disable cache on CI
* The return of the fix™️
2022-05-25 19:36:10 +02:00
SirLynix
41712a3f18
Minor fixes
2022-05-08 13:21:20 +02:00
SirLynix
e7274b24e9
Core/Color: Switch formal from RGBA8 to RGBA32F
2022-04-23 16:08:15 +02:00
SirLynix
a10682628d
Warning fixes
2022-04-23 12:25:54 +02:00
SirLynix
5a7bd44744
Graphics/MaterialPass: Fix option values in release
2022-04-19 19:16:03 +02:00
SirLynix
c209552f81
Math/Matrix4: Rework "transform matrix" support
2022-04-19 18:32:16 +02:00
SirLynix
cd08d97ac6
Graphics: Fix submesh rendering
2022-04-19 18:32:16 +02:00
SirLynix
ca9854d06a
Graphics/FrameGraph: Fix pipeline barrier from output to input
2022-04-08 13:36:07 +02:00
SirLynix
8784ec9b47
Add shader compiler (nzslc) and use it
2022-04-06 09:04:09 +02:00
SirLynix
68d2dfcae6
Move FieldOffsets class to Shader module and remove Utility dependency
2022-04-04 19:22:18 +02:00
SirLynix
9d526741b9
Add proper support for IndexType and uint32 indices
2022-04-04 09:02:00 +02:00
SirLynix
66ff6cfa81
Minor fixes
2022-04-04 08:17:03 +02:00
Lynix
83de0939bb
Shader: Fix validation and cast from u32 to i32
2022-04-02 21:20:01 +02:00
SirLynix
f14b10baf4
Graphics/ViewerInstance: fix typo
2022-03-31 13:35:08 +02:00
SirLynix
8146ec251a
Shader: Add support for partial sanitization
2022-03-25 12:54:51 +01:00
Jérôme Leclercq
63320fa205
macOS fixes (+ cache deps)
2022-03-20 11:29:39 +01:00
Jérôme Leclercq
615509d1ba
Add support for shader hotreloading
2022-03-17 21:36:36 +01:00
Jérôme Leclercq
801b06abfe
Shader: Fix module overwriting
2022-03-15 18:35:02 +01:00
Jérôme Leclercq
0e92ef823d
Graphics: Use module name to retrieve material shaders
2022-03-15 13:14:43 +01:00
Jérôme Leclercq
6bd9f1a9e4
Add unity build support
2022-03-15 12:44:21 +01:00
Jérôme Leclercq
e40e8eb204
Shader: Change module system (no longer based on path)
2022-03-14 18:30:55 +01:00
Jérôme Leclercq
2f26a1d9c7
Graphics: Move LightData to a shader module and add hotreload in debug
2022-03-14 18:30:55 +01:00
Jérôme Leclercq
db0c1e6e8c
Shader: Add module resolver + use modules for engine shaders
2022-03-14 18:30:55 +01:00
Jérôme Leclercq
98bd04e35a
Shader/SanitizeVisitor: Fix an issue when double-sanitizing
...
... with differents parameters (like reducing loops to while, which introduces new variables which would take over existing var indices)
2022-03-14 18:30:55 +01:00
Jérôme Leclercq
a7acf32886
Shader: Replace indices-based option keys by CRC32
2022-03-14 18:30:55 +01:00
Jérôme Leclercq
99e07e6e1e
Shader: Add module statement
2022-03-14 18:30:55 +01:00
Jérôme Leclercq
8a097afb1b
Graphics/FramePass: Replace render rect parameter of CommandCallback by FramePassEnvironment
2022-02-27 18:37:05 +01:00
Jérôme Leclercq
fe16584c8c
Minor fixes
2022-02-23 23:48:20 +01:00
Jérôme Leclercq
40a9d75bb7
spoilers...
2022-02-23 13:36:38 +01:00
Jérôme Leclercq
f38d2747b8
Minor stuff (mostly to shut up static analysis)
2022-02-23 13:20:06 +01:00
Jérôme Leclercq
1e9e05adfa
Graphics/MaterialPass: Fix shader option index
2022-02-23 13:14:30 +01:00
Jérôme Leclercq
004c0d84b1
Graphics/RenderSystem: Fix invisible graphics/lights unregistration
2022-02-23 13:10:33 +01:00
Jérôme Leclercq
9ee8196b83
Static analysis fix
2022-02-22 13:31:37 +01:00
Jérôme Leclercq
0dd8c21543
Graphics/ForwardFramePipeline: Fix scissor update
2022-02-22 13:31:22 +01:00
Jérôme Leclercq
20a86312ff
Graphics/FramePipeline: Replace maps with memory pools and indices
2022-02-21 20:47:11 +01:00
Jérôme Leclercq
a1b6f51398
Minor fixes
2022-02-21 20:46:37 +01:00
Jérôme Leclercq
cc0fc53bd3
Graphics: Move scissor box from InstancedRenderable to GraphicsComponent
2022-02-21 20:44:54 +01:00
Jérôme Leclercq
402e16bd2b
Shader: Handle type as expressions
2022-02-17 13:23:56 +01:00
Jérôme Leclercq
5ce8120a0c
Graphics: Move FramePipeline passes to separate classes
2022-02-16 18:29:27 +01:00
Jérôme Leclercq
f466a7494b
Update for EnTT 3.9
2022-02-08 20:05:14 +01:00