How carcodee/coderaytracer works
CodeRT Engine is a Vulkan ray-tracing path tracer with an editor for loading scenes, inspecting resources, and viewing rendered output. Its documented user workflow starts with dragging a GLTF or OBJ model into the app; the engine loads the asset, makes it available to the model/rendering systems, and displays the result. The graph preserves documented rendering, input, and editor capabilities. Some subsystems are represented by their enclosing source directories because their implementation files were not included in the supplied tree or excerpts.
Main entry points: ModelHandler.cpp Model management · ResourcesUIHandler.cpp Resource inspector · Editor.cpp Editor app · RenderSystems Ray tracing
Components 16
App and input
- Editor app
Editor/Source/Editor.cpp - Engine app
Core/Source/VulkanApp.cpp - Input handling
Core/Source/VulkanAPI/Utility/InputSystem/InputHandler.cpp
Scene assets
- File handling
Core/Source/FileSystem/FileHandler.cpp - Async asset loading
Core/Source/VulkanAPI/ObjectLoader - Model management
Core/Source/VulkanAPI/Model/ModelHandler.cpp - Asset handling
- Material system
Vulkan rendering
- Pipeline setup
Core/Source/VulkanAPI/VulkanPipeline/PipelineReader.cpp - GPU buffers
Core/Source/VulkanAPI/VulkanObjects/Buffers/VKBufferHandler.cpp - Ray tracing
Core/Source/VulkanAPI/RenderSystems - Postprocessing
Core/Source/VulkanAPI/RenderSystems - ImGui rendering
Core/Source/VulkanAPI/RenderSystems/ImguiRenderSystem.h
Editor UI
- Resource inspector
Core/Source/VulkanAPI/ResourcesManagers/UI/ResourcesUIHandler.cpp - ImGui setup
Editor/Source/Imgui/ImguiSetup.cpp
Other components
- User
Connections 18
- User → Editor app: uses
- User → Async asset loading: drops model
- Editor app → Engine app: starts
- Editor app → ImGui setup: configures
- Editor app → Input handling: receives input
- Async asset loading → Model management: loads models
Core/Source/VulkanAPI/ObjectLoader/ModelLoaderHandler.cpp - Model management → File handling: uses paths
Core/Source/VulkanAPI/Model/ModelHandler.cpp - Model management → Asset handling: uses assets
Core/Source/VulkanAPI/Model/ModelHandler.cpp - Model management → ImGui rendering: uses
Core/Source/VulkanAPI/Model/ModelHandler.cpp - Model management → Ray tracing: supports rendering
Core/Source/VulkanAPI/Model/ModelHandler.cpp - Pipeline setup → GPU buffers: uses buffers
Core/Source/VulkanAPI/VulkanPipeline/PipelineReader.cpp - Resource inspector → Model management: inspects models
Core/Source/VulkanAPI/ResourcesManagers/UI/ResourcesUIHandler.cpp - Resource inspector → ImGui rendering: creates textures
Core/Source/VulkanAPI/ResourcesManagers/UI/ResourcesUIHandler.cpp - Resource inspector → File handling: uses files
Core/Source/VulkanAPI/ResourcesManagers/UI/ResourcesUIHandler.cpp - Resource inspector → Asset handling: uses assets
Core/Source/VulkanAPI/ResourcesManagers/UI/ResourcesUIHandler.cpp - Resource inspector → Material system: edits materials
- Ray tracing → Postprocessing: renders with
- Engine app → Ray tracing: runs