Commit Graph

442 Commits

Author SHA1 Message Date
Kah Wei 0fadbc8a9d Renamed Handle, ResourceManager and ResourceLibrary to SHHandle, SHResourceHub and SHResourceLibrary 2022-10-20 19:00:36 +08:00
Brandon Mak 603470eeb6 Fixed some camera resizing issues 2022-10-19 17:06:37 +08:00
Brandon Mak d9136de134 Integrated Daniel's camera
Still need to integrate camera directors
2022-10-19 16:53:45 +08:00
Brandon Mak 284ee12205 Broken Camera 2022-10-19 15:32:07 +08:00
Sri Sham Haran 15a17deaf0 select picked entity in hierarchy panel 2022-10-18 19:08:31 +08:00
Brandon Mak 9ce5a4a47b Mouse picking system now uses cursor returned from editor
- This new cursor position is relative to where the viewport is rendering
- Window resize callback in Graphics system now checks if editor is enabled before signaling for resize. This is because editor will handle the signaling for resizing when its enabled. When its disabled, the graphics system will signal itself to resize when the window resize callback is called.
2022-10-18 17:41:14 +08:00
Brandon Mak e76bc6ef58 World render graph now doesn't render to swapchain image.
world render graph now only renders to "Scene" resource.
Editor render graph renders to "Present" swapchain image.
Removed some unnecessary if statements slowing down the resizing
Printing for success also disabled for now
2022-10-18 02:41:27 +08:00
Brandon Mak 7b7533420e WIP 2022-10-18 01:12:03 +08:00
Brandon Mak 17b71393f3 Restructured abit 2022-10-17 16:50:53 +08:00
Brandon Mak 95ee4b7b55 Resize half working 2022-10-16 19:42:44 +08:00
Brandon Mak c16bea2d39 WIP 2022-10-16 17:35:15 +08:00
Brandon Mak 1117ecc5ef WIP 2022-10-16 17:31:53 +08:00
Brandon Mak 0d02ece4c1 Wrote handle resize for mouse picking objects 2022-10-16 16:28:29 +08:00
Brandon Mak 2830dad8e3 Fixed Kai Wei's issues (sampler move ctor never move device :D) 2022-10-16 15:35:32 +08:00
Brandon Mak 808274fce0 Lots of changes
- World renderer graph add new resource for scene
- G-Buffer Write subpass now renders offscreen to a color attachment
- Added a new subpass "Scene layout transition" to get vulkan to help transition our scene image layout to shader read
- Added back SHEDITOR check
- Created a post offscreen render system to create the necessary objects
- SH_ATT_DESC_TYPE is now SH_ATT_DESC_TYPE_FLAGS. Render graph resources also now store a bit field instead of a single type.
- Render graph nodes now have more customization when it comes to registering resources. They now have the option to not clear resources on begin.
2022-10-16 14:16:14 +08:00
Brandon Mak faa55847cb Mouse picking is working from rendering side
- Buffer now has function to get data from mapped pointer if it exists
- Batches now also pass a buffer of EIDs to the GPU
- Global vertex attributes now have 1 extra instanced attribute for storing EntityIDs
- Render graph resources now have a usage flags on top of the usage flags calculated in the graph AddResource function. This is to tell vulkan that we want some resources to be copyable for example (EID render target copy to buffer).
-  Mouse pick system stores eid picked
2022-10-14 11:52:15 +08:00
Brandon Mak ab09d78e42 removed routines for graphics from application (remember to add back after ingui update routine is added).
Scene graph and physics system had some extra couts
input system bug fix (this change is now in main)
Mouse pick system wip
2022-10-14 00:08:14 +08:00
Brandon Mak 0a3d211f02 Added a render target to store entity ID
Pipelines created from pipeline library now checks if the resources pointed to by a subpass requires blending and adds a blend state accordingly.
Fragment shader writes to this new render target for testing (works)
2022-10-13 16:57:08 +08:00
Brandon Mak 0dba60f9f1 Small fix 2022-10-02 03:09:09 +08:00
Kah Wei 45514ac77e Fixed warnings and errors 2022-10-02 03:06:13 +08:00
Brandon Mak 4771fbfb76 WIP 2022-10-02 02:28:50 +08:00
Kah Wei e5df98aaa6 Added missing move assignment and extra check for command buffer destructor 2022-10-02 02:00:11 +08:00
Brandon Mak d432822608 Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2022-10-02 01:13:43 +08:00
Brandon Mak 9fabb7d672 Window can close properly (with the exception of scene graph dtor crash) 2022-10-02 01:13:04 +08:00
Sri Sham Haran 8a6ef1fc2d Merge remote-tracking branch 'origin/SP3-1-Rendering' into SP3-1-Rendering 2022-10-02 01:01:50 +08:00
Sri Sham Haran 9e8b4414d1 add window close callback 2022-10-02 01:00:07 +08:00
Kah Wei 201ce17a40 Fixed validation errors when closing the app 2022-10-02 00:56:34 +08:00
Brandon Mak 64d1c2ab2e Minimize is now working 2022-10-02 00:47:26 +08:00
Brandon Mak 32a3cc0674 Merge remote-tracking branch 'origin/SP3-1-Rendering' into SP3-1-Rendering 2022-10-02 00:00:07 +08:00
Xiao Qi 61e353164b Fixed all asset related warnings 2022-10-01 23:57:26 +08:00
Brandon Mak 0f13476c08 Merge remote-tracking branch 'origin/SP3-1-Rendering' into SP3-1-Rendering 2022-10-01 23:57:13 +08:00
Brandon Mak e2b86545bb Window resize working 2022-10-01 23:57:08 +08:00
Sri Sham Haran 77653ebde5 add window isMinimized 2022-10-01 23:56:45 +08:00
Kah Wei 1a14e5241b Added names for SHGraphicsSystem Routines 2022-10-01 23:14:42 +08:00
Brandon Mak 1a725c24e2 Stored renderpass attachement information in SHVkRenderpass 2022-10-01 21:25:22 +08:00
Brandon Mak b657ad8884 Handled resizing for the render graph resource (not tested) 2022-10-01 16:33:16 +08:00
mushgunAX 0360a8bfa1 made the Input Manager NOT be a System anymore 2022-10-01 14:34:30 +08:00
Brandon Mak 78f216e445 Rendered multiple racoons 2022-09-28 20:33:29 +08:00
Brandon Mak 2df9252e17 Fixed material desc set binding 2022-09-28 15:31:37 +08:00
Kah Wei d9582cd0bd Fixed first instance in MDI call being wrong 2022-09-28 14:47:50 +08:00
Brandon Mak a23f4f5218 Merge remote-tracking branch 'origin/SP3-1-Rendering' into SP3-1-Rendering 2022-09-28 10:28:19 +08:00
Brandon Mak d9cdf26098 Changed depth buffer format 2022-09-28 10:28:12 +08:00
Kah Wei d71fbc22de Merge branch 'SP3-1-Rendering' of https://github.com/SHADE-DP/SHADE_Y3 into SP3-1-Rendering
# Conflicts:
#	TempShaderFolder/TestCubeFs.glsl
#	TempShaderFolder/TestCubeFs.spv
2022-09-27 21:07:55 +08:00
Kah Wei 61219f5136 Added tests for material binding and fixed some crashes 2022-09-27 21:06:14 +08:00
Brandon Mak 70940534e1 Merge remote-tracking branch 'origin/SP3-1-Rendering' into SP3-1-Rendering 2022-09-27 20:07:29 +08:00
Brandon Mak b7adf8815b Fixed camera. Can see texture now 2022-09-27 19:18:45 +08:00
Kah Wei 04b452543c Modified TextureLibrary to use SHTextureAsset instead of SHDDSAsset 2022-09-27 16:05:47 +08:00
Kah Wei 10b22374c0 Merge branch 'main' into SP3-1-Rendering
# Conflicts:
#	SHADE_Application/src/Scenes/SBTestScene.cpp
2022-09-27 15:48:51 +08:00
Kah Wei b3417c2011 Made SHGraphicsGlobalData static and modified SHBatch to generate and bind material descriptor set 2022-09-27 15:44:36 +08:00
Kah Wei 76617ae571 Enabled Multi-Draw Indirect feature 2022-09-27 14:12:14 +08:00
Kah Wei 65c67c14b7 Fixed crash if no textures were loaded 2022-09-27 14:11:56 +08:00
Kah Wei e9496bead6 Fixed bug where different Renderables of different meshes are thrown into the same SubBatch 2022-09-27 13:43:59 +08:00
Brandon Mak 187329c384 Fixed texture issues 2022-09-27 12:02:06 +08:00
Kah Wei 3e2bcf28b6 Added texture loading that is almost working 2022-09-26 20:59:20 +08:00
mushgunAX 3b0ea251f3 mouse wheel delta poll 2022-09-26 18:08:59 +08:00
Kah Wei a06c30266e Merge branch 'main' into SP3-1-Rendering 2022-09-26 17:56:30 +08:00
Kah Wei 5ac90eebec Fixed compilation errors 2022-09-26 17:26:33 +08:00
Kah Wei 927944d55a Merge branch 'SP3-1-Rendering' of https://github.com/SHADE-DP/SHADE_Y3 into SP3-1-Rendering 2022-09-26 17:18:55 +08:00
Kah Wei d938007d8a Added TextureLibrary updating of descriptor sets 2022-09-26 17:18:51 +08:00
Kah Wei 5e7ffd6028 Added SHVkSampler and SHVKSamplerCache 2022-09-26 16:41:57 +08:00
Brandon Mak 0a024e1b2d Separated render graph contents into separate files 2022-09-26 14:49:48 +08:00
Sri Sham Haran 247930ea68 Merge branch 'main' into SP3-4-editor_fix 2022-09-26 14:04:02 +08:00
Brandon Mak 9fe5793dd7 Split the render graph into multiple files
doesn't compile
2022-09-26 09:37:59 +08:00
Brandon Mak 6d68e6cb5e FIXED MY SHIT WHEE
(render graph color present attachment now have correct layout)
2022-09-26 00:38:36 +08:00
Kah Wei a5c804ca8b Fixed SHRenderGraph not moving the batcher 2022-09-26 00:08:32 +08:00
Brandon Mak 8649833604 subpass not null anymore 2022-09-25 23:45:05 +08:00
Brandon Mak dc6289e8cf WIP 2022-09-25 23:25:51 +08:00
Brandon Mak 8ac2c39e2b Fixed some render graph ctors and added if checks for buffers 2022-09-25 23:13:37 +08:00
Kah Wei fc5ff763f3 Added SHMaterialInstanceCache 2022-09-25 22:55:14 +08:00
Sri Sham Haran 335c19cfc7 Editor 2022-09-25 22:33:07 +08:00
Kah Wei a197ae842c Fixed crash on AMD GPUs resulting from Nvidia treating UniformBuffers and UniformBuffersDynamic as the same 2022-09-25 21:46:57 +08:00
Kah Wei 15f12a2608 Fixed warnings in SHBatch.cpp 2022-09-24 02:13:09 +08:00
Kah Wei 759c87e2a1 Material data on the GPU is now updated when material data changes 2022-09-24 02:07:47 +08:00
Brandon Mak 32278e1564 Merge remote-tracking branch 'origin/SP3-1-Rendering' into SP3-1-Rendering 2022-09-23 18:50:52 +08:00
Brandon Mak bd54b16e01 Ctor for compute pipelines 2022-09-23 18:50:40 +08:00
Kah Wei bb38246111 Added stress test code for 20000 objects 2022-09-23 18:49:04 +08:00
Kah Wei 77cccd63be Renderables now use TransformComponent's matrix 2022-09-23 16:41:44 +08:00
Kah Wei 23f0f9f77e Triple buffered the batching buffers 2022-09-23 16:24:35 +08:00
Kah Wei 5c4384b589 Fixed SHVkBuffer initial copy data for mapped buffers and made the cube spin 2022-09-22 20:53:03 +08:00
Kah Wei c4ab45ad34 Merge branch 'main' into SP3-1-Rendering
# Conflicts:
#	SHADE_Application/src/Scenes/SBTestScene.cpp
#	SHADE_Application/src/Scenes/SBTestScene.h
#	SHADE_Engine/SHADE_Engine.vcxproj
#	SHADE_Engine/SHADE_Engine.vcxproj.filters
2022-09-22 20:51:33 +08:00
Kah Wei 495d2b4b66 Added per-frame update of gpu transforms buffer 2022-09-22 20:04:53 +08:00
Brandon Mak cb31628e66 Dummy pipeline layout ctor created
Renderer now can update and bind descriptor set
2022-09-22 19:38:43 +08:00
Kah Wei f28d966ebb Merge branch 'SP3-1-Rendering' of https://github.com/SHADE-DP/SHADE_Y3 into SP3-1-Rendering 2022-09-22 12:40:25 +08:00
Kah Wei e87c4c8dc8 Fixed SHTextureLibrary compiler errors 2022-09-22 12:39:05 +08:00
Brandon Mak 1290e99dda Merge remote-tracking branch 'origin/SP3-1-Rendering' into SP3-1-Rendering 2022-09-22 12:12:47 +08:00
Brandon Mak 7ddf665460 Updated Descriptor sets
Descriptor set layouts now have set index stored in them
It should be noted that when passed into a pipeline layout as global descriptor sets, these don't matter since the pipeline layout will use these in the order that they are passed in.
2022-09-22 12:12:44 +08:00
Brandon Mak ba181eb9c9 Shifted Command buffers outside of render graph
Command buffers now exist in renderer instead
Graphics system that calls the renderer, begins and ends the renderer recording in it's main loop as well
2022-09-22 09:23:40 +08:00
Kah Wei 3d9abcf19c Implemented image creation for textures in the texture bank 2022-09-22 09:19:18 +08:00
Xiao Qi d2e2e85726 Added build path ignore
Readded output dir and removed interdir from premake
Added DEBUG guards in SHVkPhysicalDeviceLibrary when using SHLOG_TRACE
2022-09-21 22:54:15 +08:00
Kah Wei 791c4cd0d0 Merge branch 'SP3-1-Rendering' of https://github.com/SHADE-DP/SHADE_Y3 into SP3-1-Rendering 2022-09-21 20:03:03 +08:00
Brandon Mak 8d2b6aec46 Descriptor set fix and camera descriptor set
Fixed SHVkDescriptorSetGroup bug with vkLayouts inside the ctor
Added descriptor set to renderer for camera
Logical Device now stores a buffer alignment variable for UBOs
2022-09-21 15:41:30 +08:00
Kah Wei 5f305f9609 Added SHTextureLibrary stub 2022-09-20 18:13:13 +08:00
Brandon Mak c194765889 More warnings fixed. More graphics constants. 2022-09-20 16:12:47 +08:00
Brandon Mak 0bc3a23161 Fixed the fence with high quality wood 2022-09-20 14:15:09 +08:00
Brandon Mak 147292f91c Fence is broken. The neighbour's kids went to knock it down again. 2022-09-20 12:15:06 +08:00
Brandon Mak d9213fe35d Moved a bunch of global data from Graphics System to new class
New class in SHGraphicsGlobalData
2022-09-20 10:39:52 +08:00
Brandon Mak 77330511ee Fixed pipeline default color blend state
Remember to switch winding back to CCW after rendering in world space
2022-09-20 09:27:13 +08:00
Kah Wei 8ad0eee032 Fixed vertex data buffer being incorrect 2022-09-19 21:31:23 +08:00
Kah Wei 9e09896984 Fixed SHVkBuffer move and reworked batching buffers to be host visible 2022-09-19 20:15:39 +08:00
Kah Wei 4023b9d136 Added tests for rendering and fixed bugs with Batching system 2022-09-19 18:37:57 +08:00
Kah Wei f408247007 Linked MeshLibrary to RenderGraph 2022-09-19 15:52:51 +08:00
Brandon Mak d025abe43a Render graph execution now takes in graph scope buffers 2022-09-19 15:32:03 +08:00
Kah Wei 8070b2dafa Accounted for Shaders with no SHShaderBlockInterface 2022-09-19 00:11:57 +08:00
Brandon Mak 23fe51b483 Merge remote-tracking branch 'origin/SP3-1-Rendering' into SP3-1-Rendering 2022-09-19 00:04:42 +08:00
Brandon Mak 643efbe1bb WIP 2022-09-19 00:00:07 +08:00
Kah Wei b9185eab18 Added Mesh Registration Functions to SHGraphicsSystem and a SHGraphicsSystem compatible version of mesh generation functions for SHPrimitiveGenerator 2022-09-18 23:23:48 +08:00
Kah Wei 41daaaba9c Added SHPrimitiveGenerator 2022-09-18 23:11:08 +08:00
Brandon Mak 28a5f8e4e5 Auto stash before merge of "SP3-1-Rendering" and "origin/SP3-1-Rendering" 2022-09-18 22:34:48 +08:00
Kah Wei 96ec1afcdd Changed batching system to use SHRenderable* instead of handles 2022-09-18 17:02:02 +08:00
Brandon Mak ec40754eb9 Render graph, graphics system and pipeline library changes lel
Solved errors
Graphics system AddMaterial now takes in a subpass
Pipeline library now stored in render graph node instead since pipelines have to be compatible with a renderpass.
Renderers now bind render graphs instead of storing them
2022-09-18 15:23:10 +08:00
Kah Wei 8c30e656f7 Modified AddMaterial() to take in a subpass 2022-09-18 14:58:32 +08:00
Kah Wei 7a126bf1fc SHViewport now takes in a RenderGraph instead of creating one 2022-09-18 14:49:15 +08:00
Kah Wei a3aa708b34 Fixed numerous template errors and warnings 2022-09-18 00:49:27 +08:00
Kah Wei 6e4d6abd1c Fixed Handle<> include issues 2022-09-17 23:37:22 +08:00
Kah Wei 1c8a434b26 Added Batcher classes and fixed errors 2022-09-17 23:37:22 +08:00
Brandon Mak c1a3a6acf1 Created global descriptor set layouts 2022-09-17 23:32:03 +08:00
Brandon Mak bff27a7188 Added a bunch of KW's files for batching
Prepared Graphics system for merging with batcher
2022-09-17 22:29:22 +08:00
Sri Sham Haran eb8cbaeebb init vulkan for imgui 2022-09-16 16:40:42 +08:00
Brandon Mak c1c5e70676 Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2022-09-16 14:46:48 +08:00
Brandon Mak a42a8b0c46 SH_API EVERYWHERE 2022-09-16 14:20:21 +08:00
Brandon Mak eb975d96c6 Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2022-09-16 14:08:36 +08:00
Brandon Mak f0b9f19f4d clear color value fix 2022-09-16 12:33:42 +08:00
Brandon Mak 169822c221 Render graph execution fixed
GetVkQueue function deleted. More specific function implemented (Present).
2022-09-15 09:16:13 +08:00
Brandon Mak 44e529f06f Merge branch 'SP3-4-editor' into SP3-1-Rendering 2022-09-14 19:44:01 +08:00
Brandon Mak 7459e19846 Changes 2022-09-14 19:19:24 +08:00
Brandon Mak 5a1abe6530 Auto stash before merge of "SP3-4-editor" and "origin/SP3-4-editor" 2022-09-14 19:18:54 +08:00
Sri Sham Haran fdc8a61c1d Added SHWindow to SHImguiWindow 2022-09-14 16:01:40 +08:00
Kah Wei cba3aa0663 Converted SHADE_Engine to a DLL project and exported common use classes 2022-09-13 21:08:13 +08:00
Brandon Mak 4ccfd399af Renderpass execution and descriptor set writes 2022-09-13 19:46:51 +08:00
Brandon Mak 8f7d8cd8bc Added vertex attributes 2022-09-13 09:13:39 +08:00
Brandon Mak 506d3a1c35 WIP 2022-09-12 20:08:01 +08:00
Brandon Mak 47e9e3d3f2 WIP 2022-09-11 22:34:55 +08:00
Brandon Mak bf447c1d1d Auto stash before merge of "SP3-4-editor" and "origin/SP3-4-editor" 2022-09-11 20:03:11 +08:00
Brandon Mak 09c1d2654d WIP 2022-09-09 16:02:34 +08:00
Brandon Mak 361237ede1 GETTER FOR RENDER GRAPH 2022-09-09 14:38:09 +08:00
Brandon Mak ae372f2917 Getter for renderpass in render node 2022-09-09 14:34:09 +08:00
Brandon Mak d7954245d6 Created a descriptor pool for Graphics System 2022-09-09 14:21:13 +08:00
Brandon Mak fe954271cb Getter for queue 2022-09-09 14:02:48 +08:00
Brandon Mak 78f8a9e455 Getter for physical device 2022-09-09 13:55:00 +08:00
Brandon Mak bed017e539 Fixed some warnings and premake files now include hpp files 2022-09-09 13:28:57 +08:00
Brandon Mak fe6c5be8c6 Graphics System called in application 2022-09-09 11:20:38 +08:00
Brandon Mak 62c67909ee Rendering Integration 2022-09-08 19:11:25 +08:00