Commit Graph

442 Commits

Author SHA1 Message Date
Kah Wei 98ff16d00c Added deebug drawing of cubes of any transform 2022-12-15 01:45:44 +08:00
Kah Wei 06cc969658 Reworked DebugDraw system (only lines now) 2022-12-14 01:20:12 +08:00
Kah Wei c84e33731b Fixed crash which occurs when changing the material of an object twice in a row 2022-11-25 22:24:30 +08:00
Xiao Qi b7b3301158 Added isDirty copy in move ctor for SHBatch 2022-11-24 02:01:41 +08:00
Kah Wei 6261661ef6 Added potential fix for Vulkan buffer creation crashes from SHBatch 2022-11-23 19:30:51 +08:00
Kah Wei 20a1fdc16e Fixed Application::Close() not closing but instead minimizing the window 2022-11-23 17:03:57 +08:00
XiaoQiDigipen 6161d81c4a
Merge pull request #256 from SHADE-DP/Fix-NoGPUClarity
Added explicit error check for when no supported GPUs are available to use
2022-11-23 13:48:37 +08:00
Xiao Qi 0edd2f24e3 Added VS and FS shaders to tile singular textures
Added shader stage flag bit for vertex shaders
2022-11-23 13:02:33 +08:00
Kah Wei 1a26b0ac70 When no GPU is detected, a proper exception describing it is now thrown instead of failing silently 2022-11-23 09:57:55 +08:00
maverickdgg a57145b510 Merge branch 'main' into SP3-20-UI-System 2022-11-22 20:39:39 +08:00
maverickdgg a612e71f0c Added Buttons, Added Canvas Scaling matrix, Added Serialization of buttons and camera arm 2022-11-22 20:39:15 +08:00
Kah Wei 7d692061fb Reworked how Materials are handled on C# 2022-11-22 17:23:50 +08:00
Xiao Qi 3b6d1c815d Merge branch 'main' into SP3-17-animation-system 2022-11-22 13:55:17 +08:00
Brandon Mak cf0b94e97d Merge branch 'main' into SP3-1-Rendering 2022-11-22 10:50:04 +08:00
Brandon Mak dfe86ce7db Fixed resizing bug 2022-11-22 10:43:59 +08:00
Brandon Mak 4377972315 Added functionality for graphics system to render to swapchain image
- Added functionality for graphics system to render to swapchain image when SHEDITOR is disabled. This is done via rendering a simple quad on screen and using an input attachment as a texture to the shader.
2022-11-22 10:10:26 +08:00
Brandon Mak 964b375ccd Write to swapchain image without SHEDITOR defined WIP 2022-11-22 09:05:56 +08:00
Kah Wei af2ad6cc80 Merge branch 'main' into SP3-6-c-scripting 2022-11-21 20:59:08 +08:00
Kah Wei 4172362790 Renamed SHTextRenderer to SHTextRenderable 2022-11-21 20:35:31 +08:00
Brandon Mak cd6edeeee4 Merge branch 'main' into SP3-1-Rendering 2022-11-21 20:29:10 +08:00
Kah Wei 9cc008eaf4 Fixed ghosts of a renderable being rendered when a material is changed 2022-11-21 20:21:08 +08:00
Kah Wei 611744f5d4 Fleshed out SHAnimationComponent more and added preliminary implementation of SHBatch for bone data 2022-11-21 15:09:15 +08:00
Kah Wei 1ff8c9715d Merge branch 'main' into SP3-17-animation-system 2022-11-21 12:15:57 +08:00
Brandon Mak 485b60c6d8 Added debug check in SHGraphicsSystem to compile assets only in debug 2022-11-21 00:39:13 +08:00
Xiao Qi 1666a0113b Removed test lines for shader compile in graphics system 2022-11-21 00:29:46 +08:00
Brandon Mak 5d3603ac7d Text Renderer Component serialization 2022-11-20 22:24:24 +08:00
Brandon Mak c686954c77 Implemented Text Rendering
- The Text Renderer Component serialization and reflection onto inspector is not in yet, but there is basic functionality.
- Updated shaders
- Topology for text rendering is changed to triangle fan. Front facing for primitives is clockwise. Vertex state has both the positionOffset and glyphIndex attribute set as instanced.
-  Freetype instance is now initialized in InitBoilerplate
- SHCamera no longer calling SetPerspective/Ortho inside HandleResize
- Font Geometry is now loaded in SHFontLoader into SHFontAsset fontGeometry variable.
2022-11-20 19:03:12 +08:00
Brandon Mak 575132c4bb Added UI Component check in SHBatch
- UI Component shader changes
- Fixed picking issue
2022-11-20 01:45:14 +08:00
Kah Wei 841948b82c Added support for Bone Weights and Bone Indices vertex attributes for meshes 2022-11-20 01:33:55 +08:00
Brandon Mak d55adcdfe4 Merge remote-tracking branch 'origin/main' into UI_Integration 2022-11-19 22:08:16 +08:00
Brandon Mak 6d1f30e05b Merge branch 'SP3-1-Rendering' into UI_Integration 2022-11-19 21:45:21 +08:00
Brandon Mak 223276dd87 Created partial functionality to render a texture to swapchain image 2022-11-19 21:44:41 +08:00
Xiao Qi c4be9b1cba Initial commit, change of data structs containing data for model and animation assets.
Changed all other references to previous mode and mesh asset names
2022-11-19 21:16:24 +08:00
Kah Wei 92b1c6676b Merge branch 'main' into Fix-BatchCrash 2022-11-19 18:26:37 +08:00
Kah Wei b2dc440d03 Fixed bug where moving objects stopped moving after chanigng their material's shader 2022-11-19 18:26:11 +08:00
Kah Wei 58e6a3c4c2 Re-aded ability to change shaders
Bugged, replacing shaders results in object being rendered in the old position
2022-11-19 17:30:48 +08:00
XiaoQiDigipen bd3b643c19
Merge pull request #228 from SHADE-DP/Fix-BatchCrash
Fixed crash caused when loading more than one graphics pipeline
2022-11-19 16:26:37 +08:00
Kah Wei f3a44d2ead Fixed crash caused when loading more than one graphics pipeline 2022-11-19 16:11:07 +08:00
Brandon Mak 798803cf81 UI WIP 2022-11-18 22:03:21 +08:00
Kah Wei 27413c380e Renderables now no longer render if disabled 2022-11-18 21:59:18 +08:00
Kah Wei 5ec8475842 Merge branch 'main' into SP3-1-RenderOnlyActive 2022-11-18 21:34:28 +08:00
Brandon Mak 03ce142137 Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2022-11-18 16:37:06 +08:00
Brandon Mak 66f33554a3 Tested adding text component to entities 2022-11-18 16:35:49 +08:00
Kah Wei 19bc90845f Added additional checks for SetProperty() of Material and MaterialInstance 2022-11-16 21:01:51 +08:00
Kah Wei 8869b42db2 Fixed memory corruption in SHSubpass 2022-11-16 21:00:27 +08:00
Kah Wei c5bca4111b Fixed validation error caused by deleting empty batches 2022-11-16 19:23:26 +08:00
Kah Wei f0c09817ce EnsureBufferAndCopy utility functions now avoid resizes if new size is smaller or equal 2022-11-16 17:49:11 +08:00
Kah Wei 29b4465dfd Split pre-rendering tasks to a PrepareRenderRoutine 2022-11-16 17:48:15 +08:00
Kah Wei 506b8836fe Materials now keep track of their modified state and associated MaterialInstances keep track of changes to their base 2022-11-16 17:46:36 +08:00
Brandon Mak f991e7b227 Fixed some text shaders and changed some image parameters
- SHApplication has a font compiler exe call to test compiling a sample font
- SHVkImage now takes in a vector instead of a span for mip offsets (fuck it, copy the mip offset. The RAM can cry about it).
- Removed font data descriptor set layouts from graphics global data
- FONT_DATA set index is changed to 4 instead. This clashes with Render graph resource set index but it won't matter. 
- Added entity ID render graph resource to scene render graph
- SHFont format for images is now R8G8B8A8UNorm
2022-11-16 16:57:08 +08:00
Kah Wei 760c0386a9 Merge branch 'SP3-1-MaterialUpdate' into SP3-1-MaterialEditSupport
# Conflicts:
#	SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHMaterial.h
2022-11-16 16:45:22 +08:00
Kah Wei acae84d12c Fixed bug where creation of custom material instance for Renderables are not updated on the GPU 2022-11-16 16:38:04 +08:00
Kah Wei 3e3a66f261 Fixed memory corruption issue caused by SHMaterialInstance::SetMaterial() 2022-11-16 16:32:12 +08:00
Kah Wei 3a6f1f852b SHMaterialInstance::GetProperty() will now retrieve a property from the base material if it was not overriden 2022-11-16 15:29:11 +08:00
Kah Wei 3affaf426d WIP Runtime Material Editing support 2022-11-16 09:06:29 +08:00
Brandon Mak 292fdf4ee2 Fixed some bugs but SHFont constructor still breaks
the vkImage is not loading correctly
2022-11-15 20:40:43 +08:00
Kah Wei 75f103c372 Setting pipeline of a material now triggers a reset of all properties for material instances based on the material 2022-11-15 15:58:38 +08:00
Xiao Qi 92ddc3f1eb Fixed wrong include path to SHUtilities 2022-11-15 13:30:25 +08:00
Xiao Qi 3dcb6f26c2 Merge branch 'main' into SP3-1-Rendering 2022-11-15 13:21:28 +08:00
Diren D Bharwani e93eea6381 Cleaned up tools folder. Added debug only logging macros with _D suffix 2022-11-15 03:03:37 +08:00
Brandon Mak 2a05d821d5 Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2022-11-14 18:36:33 +08:00
Brandon Mak d95ed3f067 Text Rendering WIP 2022-11-14 18:36:26 +08:00
Kah Wei 9e8674859c Fixed script serialization for objects with no default values set 2022-11-14 17:05:54 +08:00
Brandon Mak ac17721363 Merge branch 'main' into SP3-1-Rendering 2022-11-14 15:38:33 +08:00
Brandon Mak 7209785f9b Text Rendering WIP
- Added font library to store font resources (not yet synced with resource manager)
2022-11-14 14:14:11 +08:00
Brandon Mak 898b7fbf2c Text Rendering WIP 2022-11-14 10:11:47 +08:00
Kah Wei ab869348f1 Added code that only renders objects which are active 2022-11-14 00:59:21 +08:00
Brandon Mak 95d2836c94 God I felt so much pain writing this
- Thank god this botchy/hacky resource linking feature between graphs will only be used for a couple of resources. 
- Setup environment for UI rendering
- "Scene" resource is now used in BOTH world render graph and screen render graph. Layouts are setup accordingly. 
- A very horrible result of this is that linked resources have to be resized in their original graph and it has to be resized BEFORE the graphs linked to it since the framebuffers use their image views. 
- sigh.
2022-11-11 02:40:02 +08:00
Brandon Mak d17a83ab77 From last commit. Whoops. 2022-11-11 00:02:18 +08:00
Brandon Mak c78aade245 Resource manager for render graph is the one in Graphics System
- Renamed SH_ATT_DESC_TYPE_FLAGS to SH_RENDER_GRAPH_RESOURCE_FLAGS and added SHARED flag to represent that a resource is shared between graphs
- Allowed linking of resources between graphs (unideal implementation)
- Added info tracker for the render graph resources. Right now only layouts are being tracked.
2022-11-11 00:02:07 +08:00
Brandon Mak 9d367a359a Text Rendering WIP 2022-11-10 16:59:26 +08:00
Diren D Bharwani c40992b48c Merge remote-tracking branch 'origin/main' into SP3-2-Physics 2022-11-10 14:44:18 +08:00
Brandon Mak be6a11c629 Text Rendering WIP 2022-11-10 08:28:44 +08:00
Diren D Bharwani 99f41e947f Merge remote-tracking branch 'origin/main' into SP3-2-Physics 2022-11-10 02:16:42 +08:00
Diren D Bharwani 4731df28f0 Skeleton for Reworked Physics Debug Draw 2022-11-10 02:16:33 +08:00
Brandon Mak 67f7d0ea2e Text Rendering WIP 2022-11-10 00:19:38 +08:00
Kah Wei 41b7cb842c Added C# Gizmos class interface 2022-11-08 21:31:53 +08:00
Kah Wei 1f4a530dcc Fixed compile error in Release 2022-11-08 14:06:01 +08:00
Brandon Mak 572700fbb3 Text Rendering WIP 2022-11-08 10:57:07 +08:00
Kah Wei ed3131143d Added debug labels for samplers and fixed issue with compute pipeline names not being labelled correctly 2022-11-07 23:51:48 +08:00
Kah Wei 0b813d769a Added WIP Compute Pipelines labeling 2022-11-07 19:41:19 +08:00
Brandon Mak 1165b9fa47 Text Rendering WIP 2022-11-07 19:38:08 +08:00
Kah Wei d302d7e07d Added labels for more buffers, images, imageviews, frames, semaphores and more 2022-11-07 19:32:12 +08:00
Kah Wei 44ae6d0a8f Removed unused descriptor sets in SHGraphicsGlobalData 2022-11-07 17:28:03 +08:00
Kah Wei 0bda3d5151 Added labels for resources of Mesh and Texture libraries 2022-11-07 14:08:19 +08:00
Kah Wei fb37742ee0 Staging Buffers are now labeled 2022-11-07 13:28:49 +08:00
Kah Wei 782db1e2a4 Added debug labels for Renderpasses 2022-11-07 13:22:16 +08:00
Kah Wei 4bd9f0817a Buffers are now tagged as buffers for debug labels 2022-11-07 13:21:17 +08:00
Kah Wei 37c765d5cd Merge branch 'main' into SP3-1-DebugLabels 2022-11-07 11:24:18 +08:00
Brandon Mak cc5c764307 Text Rendering WIP 2022-11-07 02:32:38 +08:00
Brandon Mak 88530e9909 Text Rendering WIP 2022-11-07 00:10:57 +08:00
Kah Wei 40422a6d23 Added built-in primitives 2022-11-05 00:10:54 +08:00
Kah Wei b5bc64456c Added debug names for some SHVkBuffers 2022-11-04 19:16:57 +08:00
Kah Wei d8ee991213 Steps in the rendering process are now highlighted and named for debugging tools 2022-11-04 18:39:45 +08:00
Sri Sham Haran b86f092f52 Merge branch 'main' into SP3-305-configurationsMerge 2022-11-04 18:37:19 +08:00
Sri Sham Haran 1267442210 Deserialization flow is now as follows:
Create entities and components >> Fetch Assets needed >> Load assets needed >> Initialize entities
Some other bug fixes
2022-11-04 18:27:25 +08:00
Xiao Qi 6d0089ee12 Merge branch 'main' into SP3-13-Assets-Manager 2022-11-04 17:49:13 +08:00
Sri Sham Haran 4ee0294977 Scene loads correctly now 2022-11-04 14:44:18 +08:00
Xiao Qi 544716547e Added preprocessor check for debug to turn off renderdoc 2022-11-03 02:37:38 +08:00
Sri Sham Haran 86254a5bf3 Merge branch 'main' into SP3-4-Editor 2022-11-02 21:41:38 +08:00
Sri Sham Haran e609b5634a Material Inspector
Can set material
2022-11-02 21:31:27 +08:00
Xiao Qi d1f624b2eb Removed SHMeshData declaration/definition in graphics middle end
Renamed some data members in SHMeshData
Replaced calls and references to mesh data in Primitive Generator
2022-11-02 21:09:53 +08:00
Kah Wei c68c5adc0d Added GetTextureHandle() to SHGraphicsSystem 2022-11-02 17:51:07 +08:00
Kah Wei 4721a133e1 Added a way to retrieve texture handles from texture indices 2022-11-02 17:43:28 +08:00
Brandon Mak 53397e884d Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2022-11-02 17:18:44 +08:00
Brandon Mak ebc94225e7 Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2022-11-02 17:04:31 +08:00
Kah Wei d207042fec Reworked SHMaterialSpec and SHMaterial loading system 2022-11-02 16:56:38 +08:00
Kah Wei d818adf2a2 Fixed DrawPoly() 2022-11-02 15:34:35 +08:00
Kah Wei f0ef9fc0cf Fixed validation errors due to debug draw 2022-11-02 15:13:12 +08:00
Kah Wei 82e0e4df5c Added editor gridlines and cardinal axes 2022-11-02 10:33:17 +08:00
Kah Wei 41e1f01f29 Added support for persistent debug draw 2022-11-02 10:11:13 +08:00
Kah Wei 1371302a40 Generalised Draw functions in SHDebugDrawSystem for potentially any number of draw queues 2022-11-02 09:34:36 +08:00
Kah Wei 5f7b28e8a0 Added SHDebugDraw convenience static class for debug drawing 2022-11-02 01:11:28 +08:00
Kah Wei dc8ed48be3 Fixed debug draw system cube rendering 2022-11-01 21:49:57 +08:00
Sri Sham Haran 129f92e4b6 mat inspector properties handling (WIP) 2022-11-01 21:49:42 +08:00
Kah Wei 904d6be6b0 Merge branch 'main' into SP3-1-DebugDraw2
# Conflicts:
#	SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp
#	SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.h
2022-11-01 21:00:55 +08:00
Kah Wei 0096bc4975 Debug Draw fixes 2022-11-01 20:32:35 +08:00
Brandon Mak b0d08d27fd SSAO is fully implemented 2022-11-01 20:10:59 +08:00
Kah Wei e1587c7252 Fixed SetMesh() not working and loading of mesh and textures 2022-11-01 14:56:03 +08:00
Brandon Mak 5852c409e6 SSAO WIP 2022-11-01 11:57:08 +08:00
Kah Wei b35ca86ae9 BatcherDispatcher should now account for mesh changes properly 2022-11-01 00:53:15 +08:00
Brandon Mak 53b9c8f746 SSAO WIP 2022-10-31 23:28:46 +08:00
Brandon Mak 2bd3b45ba0 SSAO sort of working 2022-10-31 20:49:28 +08:00
Kah Wei 5bb728663c Materials are now serializable and deserializable 2022-10-31 17:47:38 +08:00
Kah Wei 797f4bfd75 Fixed shader changes 2022-10-31 17:35:52 +08:00
Kah Wei a9b9695155 Merge branch 'main' into SP3-1-SerialisedRenderable 2022-10-31 16:31:22 +08:00
Kah Wei 42a80bfc3b Merge branch 'main' into SP3-1-SerialisedRenderable 2022-10-31 15:31:38 +08:00
Kah Wei 66529474cd Added Application class equivalent to SHADE_Managed 2022-10-31 14:51:50 +08:00
Kah Wei 5eaf2b55aa Added WIP Application class and adjustments to how ScriptStore destroys scripts (SpdLog errors) 2022-10-31 12:20:46 +08:00
Brandon Mak 94a57219da Created CPU and GPU data for SSAO
Renderpass for SSAO not yet done (that's next)
2022-10-31 10:32:32 +08:00
Brandon Mak 997ce3011a Screw you SPIRV-Reflect and screw you GLSL
- Pipeline layouts now have a parameter to decide if a binding with a buffer descriptor stores a dynamic type instead.
- SHRenderGraphNodeCompute has catered for this as well through its ctor params
2022-10-30 23:15:52 +08:00
Brandon Mak 647182241e Fixed a buy with view space lighting calculations 2022-10-30 19:21:02 +08:00
Kah Wei b1a933a2c3 Merge branch 'main' into SP3-1-SerialisedRenderable
# Conflicts:
#	Assets/Shaders/TestCube_FS.shshaderb
#	Assets/Shaders/TestCube_VS.shshaderb
#	SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp
2022-10-30 17:14:28 +08:00
Brandon Mak 39b5ac0774 LIGHTING NOW DONE IN VIEW SPACE 2022-10-30 16:52:40 +08:00
Brandon Mak 4711a131eb Shifted the lighting system run outside the viewport loop.
- Since lighting is only calculated in the world render graph for now, this will do just fine
- Renderer takes in a view and projection matrix and does the transpose of the multiplication in the renderer
2022-10-30 16:35:55 +08:00
Sri Sham Haran ca659e272b Designate keys for Copy/Paste of entities in hierarchy panel
Change default brush for SHWindow so we don't flashbang everytime we run engine
2022-10-30 15:01:36 +08:00
Brandon Mak fad9d37cd4 Lighting data is now copied to CPU buffer and GPU buffer every frame
Since lighting will be done in view space, the camera's constant movement will make it so that the light data is often changing. Keeping track of these changes for optimization might prove to be counter productive. Copying data every frame might just be more ideal.
2022-10-30 14:17:36 +08:00
Brandon Mak 94f579e8e3 CompileAsset function from Asset manager is working 2022-10-30 13:25:15 +08:00
Sri Sham Haran 86e8415845 Merge branch 'main' into SP3-4-Editor 2022-10-30 11:28:01 +08:00
Brandon Mak 7c5a24b8e1 Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2022-10-30 00:00:17 +08:00
Kah Wei cac93b7df9 Fixed indentation issue in SHGraphicsSystem 2022-10-29 23:56:37 +08:00
Brandon Mak 5da7638c0a Compute barriers 2022-10-29 22:52:15 +08:00
Brandon Mak 6f2ca54f7e WIP compute barriers 2022-10-29 21:36:11 +08:00
Brandon Mak 25db4db99a Catered to light comp deletion and solved minimize bugs
Editor can also now shift the viewport around without Vulkan vomiting validation layers
2022-10-29 17:00:35 +08:00
Kah Wei dbf1b0b8de Merge branch 'main' into SP3-6-c-scripting
# Conflicts:
#	SHADE_Managed/src/Components/Collider.hxx
2022-10-29 02:32:21 +08:00
Kah Wei 3c2e51cb0b Built-in shaders are now fully loaded via the SHResourceManager 2022-10-29 01:38:29 +08:00
Sri Sham Haran f9f818b49c Merge branch 'main' into SP3-4-Editor 2022-10-28 20:31:51 +08:00
Kah Wei 541f44c039 Fixed bugs in SHMaterial, SHMeshLibrary and removed unused functions in SHTextureLibrary 2022-10-28 19:02:54 +08:00
Sri Sham Haran fa6e3cf1df Light Component Serialization & Inspector 2022-10-28 17:58:16 +08:00
Brandon Mak f110f9b16b Removed isActive from component 2022-10-28 15:56:22 +08:00