- Added pure copy compute shader (used instead of kirsch)
- Created sparse set for lights
- Note that while the instanced attribute contains both EID and layer light index and in the future potentially more, the objects still write to a uint framebuffer.
- Light layer index is in a different frame buffer than the eid one.
- Updated shaders to accommodate light layer index.
- Changed the eid buffer for instanced rendering to a vec2 (potentially vec3 or 4), to pass other types of data like light layer index.
- Renamed some render graph nodes and subpasses. Added a dummy render pass to transition the scene to read only optimal.
- offscreen buffer resource now transitions to eShaderReadOnlyOptimal instead of eGeneral
Added customization for compute shader post processing after renderpass end
Added customization for compute shader post processing after renderpass end
Added Input attachment descriptor set support (incomplete, still need to bind and handle resizing)
Command buffers now take in a pipeline type to specify bind point. They also now store bind point specific data such as pipeline layout
More descriptor type support
Fixed a bug in batches where the frame index was not correct
Fixed a bug in pipeline layout where the descriptor set layout order was wrong
Render Graph now has 1 extra function at the start of generate where it checks render graph nodes for node computes. If they exist, add another subpass to transition all images involved.
Kirsch node compute for testing is in Graphics System.
Added function in SHVkUtil to convert pipeline type to pipeline bind point
Sp3 141 camera system
Added camera directors.
Use Transform Component's position and rotation for camera if entity has transform component.
Added a function to update editor camera
Bindings and Controllers
Logical bindings are stored in a map of strings (keys) and logical binding data (values). Logical binding data includes:
Positive Key Codes
Negative Key Codes
Positive Controller Codes
Negative Controller Codes
Mouse X Positive Multiplier
Mouse Y Positive Multiplier
Bindings can only handle for one player for now. Up to four users can be implemented with relative ease, but that depends on whether we want to make the game multiplayer for some reason.
Controller inputs are also handled, with 20 different inputs for the controller.