Commit Graph

86 Commits

Author SHA1 Message Date
6e88d82520 WIP Render Graph Refactoring 2024-01-21 18:34:36 -08:00
9856a686cf KRCamera small cleanup 2024-01-21 15:13:31 -08:00
2925ea316d Bump copyright year
Update 1st party submodules
2024-01-20 19:01:29 -08:00
a2d125b15b Updated call sites to no longer pass clear color to KRRenderPass::Begin(), as KRRenderPass now retains the clear color after initialization.
KRRenderPass now has configurable stencil clear, load, and store operations.
2024-01-20 16:46:23 -08:00
b37acc1fd2 Remove test code used for verifying debug text functionality on Vulkan 2024-01-20 16:09:31 -08:00
8795e1e402 Suppressing debug text rendering until debug font texture has been streamed to the GPU. Fixes Vulkan validation errors on MacOS.
Fix Vulkan validation error on macOS when clearing with the black frame pass render pass during initialization.
2024-01-14 15:53:50 -08:00
e6706a4e1f Now rendering black frames rather than empty frames when scene isn't loaded, preventing some Vulkan validation errors.
Added keepColor, clearColor, and finalLayout attributes to KRRenderPass::RenderPassInfo.
Now able to render debug text on macOS.
2024-01-14 15:36:51 -08:00
04e0ada271 Moved hydra to its own namespace 2023-08-05 21:14:53 -07:00
e485261e53 Refactor - rename KRDataBlock to mimir::Block 2023-08-05 16:37:16 -07:00
8845e19273 Bump copyright year. 2023-01-10 14:22:26 -08:00
a2a9714f24 Removed camera downsampling functionality no longer in use. A more advanced postfx and compositor will be implemented instead. (Continued) 2022-09-27 18:49:03 -07:00
741b7848c5 Implemented camera surface setting for KrUpdateNode and KrCreateNode APIs.
Cameras now render only on their assigned surface.
2022-09-26 22:06:09 -07:00
482c03f9bb Implemented SkyBox texture change for KrCreateNode API. 2022-09-26 21:19:27 -07:00
1bb7238502 KRNode::update is now fallible.
Added stub function, KRCamera::update.
2022-09-23 23:43:06 -07:00
3f4289ec08 Merged appendBeforeNode, appendAfterNode, appendFirstChildNode, and appendLastChildNode API calls into a single createNode call. 2022-09-21 23:38:49 -07:00
4be16e3ddc Removed GLAD from CMake project
Replaced GL integer and size typedefs with native types.
2022-09-21 18:18:13 -07:00
d3912a9ffe Vulkan refactoring - Replaced GLint with int. 2022-09-21 17:59:23 -07:00
2a36e6a11e Re-enable camera sky box draw call 2022-09-21 01:13:16 -07:00
5219cf0ba7 Enabled draw call for debug text overlay
Vertically flipped debug text character sampling from font texture.
Debug text overlay pass now functioning in Vulkan
2022-09-21 00:59:31 -07:00
be6c3a148e Vulkan Refactoring - Updated KRTextureManager::selectTexture call sites to use KRShader::setImageBinding 2022-09-18 23:59:08 -07:00
8306202cf1 WIP Creating structures in KRPipeline to cache descriptor set binding reflection data.
Added stub function, KRPipeline::setImageBinding
2022-09-15 20:33:41 -07:00
e695bca3f9 Refactoring to rename uniform related functions and members to reflect that they are actually push constants after the Vulkan refactoring. 2022-09-07 23:48:46 -07:00
7433d54c16 Auto format C++ source 2022-08-08 01:07:26 -07:00
b714f7b52a Reduced verbosity of KRPipeline::Uniform 2022-08-02 01:31:13 -07:00
06f4056887 Added KRPipeline::Uniform enum class to replace existing untyped enum. 2022-08-02 01:04:00 -07:00
f52ddc007f Changed Vulkan test code in KRCamera::renderPost, preparing for testing the debug font shader.
Fixed bug causing KRMeshManager::KRVBOData::bind to crash when there is no index data.
2022-07-29 01:12:23 -07:00
fb6e197f2b Eliminated KRCamera::m_debug_text_indices 2022-07-29 01:01:17 -07:00
40024ed9d8 Added KRMeshManager::KRENGINE_VBO_DATA_RANDOM_PARTICLES and KRMeshManager::KRENGINE_VBO_DATA_VOLUMETRIC_LIGHTING.
The random particle and volumetric lighting plane geometry is now static, computed on initialization, and no longer lazily initialized.
Removed KRMeshManager::bindVBO function overload that accepted KRDataBlock's directly for index and vertex data.  This was creating KRVBOData objects with KRVBOData::IMMEDIATE that were no longer being owned or de-allocated by KRMeshManager.
2022-07-29 00:51:01 -07:00
5f7912524f vbo_type::TEMPORARY changed to vbo_type::IMMEDIATE.
KRMeshManager no longer allocates, owns, and deletes IMMEDIATE/TEMPORARY data.

Added KRCamera::m_debug_text_vertices, and KRCamera::m_debug_text_vbo_data in preparation for further work on immediately loaded mesh data.
2022-07-29 00:10:13 -07:00
85847fd2e0 Beginning refactoring of KRTexture for Vulkan. Added KRTexture::TextureHandle. 2022-07-13 23:24:46 -07:00
0382c15fe3 Re-enabling KRCamera::renderPost 2022-07-13 22:54:10 -07:00
64341c4e90 Deleted commented dead code from KRCamera::renderPost 2022-07-09 23:42:43 -07:00
6b8404c3d7 Removed rim_color and rim_power arguments from KRPipeline::bind.
Updated the call site in KRMaterial to set rim_color and rim_power explicitly.
2022-07-08 00:01:40 -07:00
b0be60cf18 Removed fade_color argument from KRPipeline::bind.
Updated call sites to only set this attribute in the one case needed (post_fx shader)
2022-07-07 23:49:27 -07:00
216cbe3eec PipelineInfo::CullMode and PipelineInfo::RasterMode are no longer within the PipelineInfo class, enabling easier forward declaration.
KRMaterial::bind now accepts remaining parameters required to set up the pipeline.
Removed GL calls from KRModel.
Replaced ifdef guards with pragma once.
KRMesh::model_format_t changed to ModelFormat and is no longer within KRMesh, enabling easier forward declaration.
2022-07-07 22:51:16 -07:00
560f7da9e7 Implemented automatic binding of push constants at runtime using SPIRV-Reflection.
Replaced GL uniforms with Vulkan push constants.
2022-07-07 19:29:50 -07:00
88a1ca186b Added KRMesh::isReady
Vulkan test code now uses KRMesh and asset ingestion pipeline for vertex and index data.
Updated Vulkan test shader to match KRMesh attribute layout.
2022-07-07 00:23:14 -07:00
85b7b2cd31 (continued...)
KRMesh::renderSubmesh is now private.
Added KRMesh::renderNoMaterials.
Replaced renderSubmesh loops outside KRMesh with calls to KRMesh::renderNoMaterials.
Added KRMesh::getVertexAttributes.
Call sites are now using KRMesh::getVertexAttributes and KRMesh::getModelFormat to configure the pipeline.
2022-07-06 23:11:00 -07:00
b7e4415b16 Inlined, removed wrapper function KRPipelineManager::selectPipeline 2022-07-06 21:59:50 -07:00
8e9885b46c WIP Inlining KRPipelineManager::selectPipeline wrapper function. 2022-07-05 22:22:48 -07:00
bbc0de400c Added PipelineInfo::vertexAttributes and PipelineInfo::modelFormat
KRPipelineManager::getPipeline now has just one version with two arguments.
Commented out GL version of getPipeline, to be later merged into the Vulkan version.
2022-07-05 21:27:41 -07:00
68c3831fde Added composite buffer render passes for deferred lighting path.
Refactoring KRCamera::renderFrame to use render passes.
Eliminate composite buffer binding GL code from KRCamera::renderFrame
2022-07-04 22:08:05 -07:00
17113b59ea Removing no longer needed OpenGL code. 2022-07-04 21:20:43 -07:00
943bbfda2f Added PipelineInfo::CullMode
Replaced GL culling functions with CullMode pipeline option.
2022-07-04 20:49:46 -07:00
b801da7eb3 Blending and depth testing refactoring to Vulkan. Eliminating OpenGL state following. 2022-07-04 20:18:00 -07:00
2e371386cf Added PipelineInfo::RasterMode::kOpaqueNoDepthWrite
Refactored additional GL depth and blending state to use RasterMode
2022-07-03 21:52:54 -07:00
8db6a4313f Combined depth test and depth write modes into PipelineInfo.rasterMode. 2022-07-02 21:01:02 -07:00
d571bcbdc3 Refactor OpenGL alpha blending to use PipelineInfo.rasterMode 2022-07-02 20:07:11 -07:00
d1b085ffb5 Moved PipelineInfo to KRPipeline.h
Added PipelineInfo::RasterMode
2022-04-14 00:48:03 -07:00
767ba5932b Implement KRNode::RenderInfo
Use KRNode::RenderInfo to reduce render related argument counts and pass KRSurface through render functions.
Refactor render functions to use KRNode::RenderInfo
2022-04-06 01:00:13 -07:00