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