Commit Graph

131 Commits

Author SHA1 Message Date
91a6d02d1f feat: Enhance rendering and crash recovery configurations
- Added new rendering budget configurations including VRAM limits and texture dimensions in seed_runtime.json and seed_runtime_opengl.json.
- Introduced crash recovery parameters such as heartbeat timeouts and memory limits in the configuration files.
- Updated cube logic to utilize new camera and control settings from the configuration.
- Modified bgfx graphics backend to respect new rendering budget limits and handle texture loading accordingly.
- Implemented crash recovery service enhancements to utilize new configuration parameters for better resource management.
- Added unit tests to validate the integration of new rendering budgets and crash recovery configurations.
2026-01-08 18:11:21 +00:00
40740782d0 feat: Enhance JSON configuration with scene and physics settings 2026-01-08 17:33:58 +00:00
df19ae9264 feat: Enhance JSON configuration writer and add heartbeat recording to crash recovery service
- Updated JsonConfigWriterService to structure the JSON output with new sections for scripts, window settings, input bindings, paths, rendering, and GUI configurations.
- Introduced a new method in ICrashRecoveryService to record frame heartbeats, allowing for better tracking of long-running operations.
- Refactored existing code to improve readability and maintainability, including the addition of helper functions for adding string members to JSON objects.
2026-01-08 16:57:24 +00:00
4db6305154 feat(assets): add support for syncing MaterialX asset directories 2026-01-08 04:16:10 +00:00
dcec8f39a0 Revert "stuff"
This reverts commit 8dd30db30d.
2026-01-08 03:20:44 +00:00
8dd30db30d stuff 2026-01-08 03:06:30 +00:00
7968456f4f feat(mesh): add tangents to MeshPayload and compute during payload building
- Updated MeshPayload structure to include tangents.
- Modified BuildPayloadFromBspBuffer to compute tangents based on vertex normals.
- Enhanced AppendMeshPayload to handle tangents, either from mesh data or generated.
- Updated PushMeshToLua to expose tangents to Lua.
- Adjusted ReadVertexArray to read tangents from Lua.

feat(shader): implement ShaderPipelineValidator for shader validation

- Added ShaderPipelineValidator class to validate shader inputs/outputs and vertex layouts.
- Implemented methods to extract shader attributes and validate against vertex layouts.
- Added comprehensive validation checks for shader pipelines, including SPIR-V requirements.
- Created a logger interface for validation results.

test(shader): add unit tests for ShaderPipelineValidator

- Implemented extensive unit tests for shader validation, covering various scenarios.
- Tests include extraction of shader inputs/outputs, validation of vertex layout matches, stride checks, and interface matching.
- Added edge case tests for empty shaders and comments in GLSL code.
2026-01-07 23:12:45 +00:00
2eb7d632dd feat(tests): Update GPU render test expectations and remove skybox references 2026-01-07 20:24:53 +00:00
1a7f2dfc6e feat(scene_framework): Add reusable Lua framework for 3D scene construction with mesh generation and object builders 2026-01-07 15:31:56 +00:00
172543fc88 feat(cube_logic): Fix string formatting for object_type in create_spinning_cube function 2026-01-07 15:20:15 +00:00
a828a8e2e1 feat(cube_logic): Update create_spinning_cube to apply color and add object type for differentiation 2026-01-07 15:07:02 +00:00
b15d4468ee feat(cube_logic): Add object type parameter to create_static_cube and related functions for better differentiation 2026-01-07 15:06:46 +00:00
71c25e7ddb feat(tests): Enhance cube demo scene tests with improved object type differentiation and scale extraction 2026-01-07 15:06:00 +00:00
78c47c4429 feat(tests): Update cube demo scene tests for new tessellated floor and ceiling geometry 2026-01-07 14:50:27 +00:00
23e22c63c0 feat(tests): Add bgfx_gui_service_tests and integrate with CMake and dev commands 2026-01-07 13:01:26 +00:00
498cc56b34 feat(materialx): Refactor MaterialX shader handling to improve configuration and error handling 2026-01-07 12:47:04 +00:00
22f9a98ee1 feat(shader): Update shader handling to support multiple shader keys across various components 2026-01-07 12:27:20 +00:00
36d8a40fcc feat(shader): Enhance shader creation for OpenGL and Vulkan by adding SPIRV wrapping and improved error logging 2026-01-07 10:27:51 +00:00
e6055bb6d5 feat(shader): Remove shader path functions and related module references 2026-01-07 02:01:07 +00:00
172aa1a551 Refactor shader handling: Remove Lua shader variant script and update shader path loading
- Deleted the shader_variants.lua script, which contained functions for building shader parameter overrides and shader variants.
- Updated ShaderScriptService to remove Lua integration for shader path loading, now relying solely on MaterialX configuration.
- Simplified logging and error handling in shader path loading, ensuring clarity in the absence of shader variants.
2026-01-07 01:56:06 +00:00
fb811f4460 feat: Add MaterialX support and enhance time retrieval in scripting 2026-01-07 01:38:03 +00:00
4f86e0488a feat(physics): Disable physics state on setup failure 2026-01-07 01:08:50 +00:00
c0c1fb881e feat: Enhance physics integration and scripting capabilities
- Added support for triangle mesh rigid bodies in the physics bridge service.
- Implemented methods to create static meshes and retrieve linear velocities in the script engine service.
- Introduced new Lua bindings for physics operations, including `physics_create_static_mesh` and `physics_get_linear_velocity`.
- Improved shader creation in the graphics backend with auto-bind uniform options and error handling.
- Refactored shader generation to consolidate output and input declarations into structured blocks.
- Enhanced GUI service with better resource logging and error handling.
- Added utility functions for transforming points using matrices.
2026-01-07 01:08:26 +00:00
cb5b58ca9e feat(physics): Enhance physics bridge service with new functionalities
- Added SetGravity method to adjust the gravity in the physics world.
- Introduced AddSphereRigidBody method for creating sphere rigid bodies.
- Implemented RemoveRigidBody method to delete existing rigid bodies.
- Added SetRigidBodyTransform method to update the position and rotation of rigid bodies.
- Included ApplyForce and ApplyImpulse methods for applying forces and impulses to rigid bodies.
- Added SetLinearVelocity method to set the linear velocity of rigid bodies.
- Enhanced StepSimulation method to accept a maxSubSteps parameter.
- Implemented GetBodyCount method to retrieve the number of rigid bodies in the world.
- Added Clear method to remove all rigid bodies from the physics world.
- Updated the script engine service to bind new physics methods to Lua.
- Enhanced material configuration handling in shader script service.
- Introduced MaterialXMaterialConfig structure for better material management.
- Added texture binding support in ShaderPaths structure.
- Included stb_image implementation for image loading support.
2026-01-07 00:20:19 +00:00
7b6f2d4567 feat: Add support for loading meshes from PK3 archives
- Updated CMakeLists.txt to find and link libzip.
- Modified conanfile.py to include libzip as a dependency.
- Created a new configuration file for Quake 3 runtime settings.
- Implemented loading of Quake 3 maps from PK3 archives in mesh_service.
- Added new Lua bindings for loading meshes from archives in script_engine_service.
- Enhanced material handling in materialx_shader_generator to support vertex data blocks.
2026-01-06 17:33:43 +00:00
06e31cf536 feat: Enable MaterialX support and refactor rendering pipeline to utilize view state 2026-01-06 15:56:44 +00:00
512eced3b0 feat(materialx): Integrate MaterialX support for PBR parameters and enhance shader functionality 2026-01-06 15:29:59 +00:00
a5b47479d7 Refactor graphics service architecture and remove Vulkan-specific components
- Deleted VulkanGuiService and associated interfaces to streamline GUI rendering.
- Removed RenderGraphConfig and GraphicsBackendConfig, replacing them with BgfxConfig.
- Eliminated unused render graph structures and interfaces to simplify codebase.
- Updated IConfigService and IGraphicsBackend interfaces to reflect new configurations.
- Removed Vulkan device and buffer service interfaces to reduce complexity.
- Enhanced error handling and validation across Vulkan initialization and resource management.
- Updated unit tests to remove references to the obsolete render graph functionality.
2026-01-06 15:08:20 +00:00
793fea5e77 fix: Update paths for Conan toolchain and presets to use build-ninja layout 2026-01-06 13:46:13 +00:00
4e15e08b7f stuff 2026-01-06 13:25:49 +00:00
b05a63db9e feat(render): Implement compatibility render graph with tonemapping options and logging enhancements 2026-01-06 10:28:00 +00:00
fb71265a5b feat: Implement render graph support in Vulkan backend
- Added RecordRenderGraph method to IRenderCommandService and its implementation in RenderCommandService.
- Updated VulkanGraphicsBackend to handle render graph definitions and record commands accordingly.
- Introduced GetDepthFormat method in ISwapchainService to retrieve depth buffer format.
- Enhanced VulkanGraphicsBackend with methods to set render graph definitions and manage render graph resources.
- Added RenderGraphImage structure to manage render targets and depth targets within the render graph.
- Updated interfaces and services to accommodate new render graph functionality, including descriptor set layout retrieval in IPipelineService.
2026-01-06 02:02:52 +00:00
b11a2f9e30 fix(skybox): Adjust skybox scale calculation based on room dimensions 2026-01-06 01:20:00 +00:00
473b1f8e64 feat(vita): Enhance Vita SDK support with environment overrides and build configuration 2026-01-06 01:18:21 +00:00
1f3e48ae27 feat(atmospherics): Add sky color configuration and apply in rendering 2026-01-06 01:07:26 +00:00
73e92a39d2 fix(rendering): Enable SSGI in render graph configuration 2026-01-06 00:54:30 +00:00
c2346e5232 fix(cube_logic): Adjust lantern height and enable additional rendering features 2026-01-06 00:49:34 +00:00
1efaeb0510 feat(render-graph): Add support for SDF, SSGI, DDGI, VXGI, motion blur, and depth of field in render graph 2026-01-06 00:44:26 +00:00
9af460d252 feat(render-graph): Enhance render graph configuration with new resolution functions and improved pass handling 2026-01-06 00:40:44 +00:00
01f1e94994 feat(render-graph): Implement Lua-based render graph system
- Added render graph configuration to JSON files and runtime settings.
- Introduced RenderGraphScriptService to load and manage render graph definitions from Lua.
- Updated GraphicsService to handle render graph definitions.
- Enhanced cube_logic.lua with a sample render graph function.
- Modified various services and interfaces to support render graph functionality.
- Improved logging for render graph operations and configurations.
2026-01-06 00:14:00 +00:00
84cd9e4f46 feat: Enhance cube mesh handling with double-sided indices support 2026-01-06 00:03:53 +00:00
99690e381d feat: Implement double-sided cube indices generation for enhanced rendering 2026-01-05 23:56:04 +00:00
d7d4411251 feat: Refactor shader handling by implementing inline shader sources and enhancing error handling 2026-01-05 23:44:00 +00:00
945b724838 Refactor shader management and remove unused shaders
- Introduced a shader toolkit for dynamic shader generation in soundboard.lua.
- Removed obsolete shader files: ceiling.frag, cube.frag, cube.vert, floor.frag, pbr.frag, pbr.vert, solid.frag, solid.vert, wall.frag.
- Updated pipeline_service to handle inline shader sources and paths, improving shader registration and validation.
- Enhanced shader_script_service to support optional shader source paths alongside traditional paths.
- Modified ShaderPaths structure to include source fields for vertex, fragment, geometry, tessellation control, tessellation evaluation, and compute shaders.
- Updated test_gxm_backend to reflect changes in shader paths and ensure successful pipeline creation.
2026-01-05 23:34:48 +00:00
bd0568187e Refactor shader variant management and enhance shader generation
- Moved static shader variant definitions into a dedicated function for better organization.
- Introduced functions to count shader variants and build shader variants dynamically using a shader toolkit.
- Added error handling for shader toolkit availability and generation failures.
- Enhanced shader toolkit with new functions for reading and writing text files conditionally.
- Implemented new shader templates and variants for improved flexibility in shader generation.
- Updated existing shader templates to utilize the new structure and functions.
2026-01-05 23:16:44 +00:00
e0c35c6845 feat: Update shader paths to remove file extensions for consistency 2026-01-05 22:14:52 +00:00
90e7882cb2 feat: Integrate shaderc for shader compilation and enhance shader file handling 2026-01-05 22:12:13 +00:00
d5e14de2d0 feat: Add shaderc dependency and implement shader toolkit script 2026-01-05 21:57:12 +00:00
3f1684ef03 feat: Add support for additional shader types and enhance shader path handling 2026-01-05 21:38:56 +00:00
ce0a6d8754 feat: Update surface colors for floor, ceiling, and wall shaders 2026-01-05 21:17:41 +00:00