Files
SDL3CPlusPlus/config/seed_runtime_opengl.json
johndoe6345789 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

121 lines
3.2 KiB
JSON

{
"launcher": {
"name": "Cube Demo",
"description": "3D cube room with first-person controls, lanterns, and physics interactions",
"enabled": true
},
"window_width": 1024,
"window_height": 768,
"lua_script": "scripts/cube_logic.lua",
"scripts_directory": "scripts",
"mouse_grab": {
"enabled": true,
"grab_on_click": true,
"release_on_escape": true,
"start_grabbed": false,
"hide_cursor": true,
"relative_mode": true,
"grab_mouse_button": "left",
"release_key": "escape"
},
"input_bindings": {
"move_forward": "W",
"move_back": "S",
"move_left": "A",
"move_right": "D",
"fly_up": "Q",
"fly_down": "Z",
"jump": "Space",
"noclip_toggle": "N",
"music_toggle": "M",
"music_toggle_gamepad": "start",
"gamepad_move_x_axis": "leftx",
"gamepad_move_y_axis": "lefty",
"gamepad_look_x_axis": "rightx",
"gamepad_look_y_axis": "righty",
"gamepad_dpad_up": "dpup",
"gamepad_dpad_down": "dpdown",
"gamepad_dpad_left": "dpleft",
"gamepad_dpad_right": "dpright",
"gamepad_button_actions": {
"a": "gamepad_a",
"b": "gamepad_b",
"x": "gamepad_x",
"y": "gamepad_y",
"leftshoulder": "gamepad_lb",
"rightshoulder": "gamepad_rb",
"leftstick": "gamepad_ls",
"rightstick": "gamepad_rs",
"back": "gamepad_back",
"start": "gamepad_start"
},
"gamepad_axis_actions": {
"lefttrigger": "gamepad_lt",
"righttrigger": "gamepad_rt"
},
"gamepad_axis_action_threshold": 0.5
},
"project_root": "../",
"shaders_directory": "shaders",
"bgfx": {
"renderer": "opengl"
},
"materialx": {
"enabled": true,
"parameters_enabled": true,
"library_path": "MaterialX/libraries",
"library_folders": [
"stdlib",
"pbrlib",
"lights",
"bxdf",
"cmlib",
"nprlib",
"targets"
]
},
"materialx_materials": [
{
"shader_key": "floor",
"document": "MaterialX/resources/Materials/Examples/StandardSurface/standard_surface_wood_tiled.mtlx",
"material": "Tiled_Wood"
},
{
"shader_key": "wall",
"document": "MaterialX/resources/Materials/Examples/StandardSurface/standard_surface_brick_procedural.mtlx",
"material": "M_BrickPattern"
},
{
"shader_key": "ceiling",
"document": "MaterialX/resources/Materials/Examples/StandardSurface/standard_surface_marble_solid.mtlx",
"material": "Marble_3D"
},
{
"shader_key": "solid",
"document": "MaterialX/resources/Materials/Examples/StandardSurface/standard_surface_brass_tiled.mtlx",
"material": "Tiled_Brass"
}
],
"atmospherics": {
"ambient_strength": 0.006,
"fog_density": 0.006,
"fog_color": [0.03, 0.04, 0.06],
"sky_color": [0.02, 0.03, 0.05],
"gamma": 2.2,
"exposure": 1.15,
"enable_tone_mapping": true,
"enable_shadows": true,
"enable_ssgi": true,
"enable_volumetric_lighting": true,
"pbr_roughness": 0.28,
"pbr_metallic": 0.08
},
"gui_font": {
"use_freetype": true,
"font_path": "scripts/assets/fonts/Roboto-Regular.ttf",
"font_size": 18.0
},
"gui_opacity": 1.0,
"config_file": "config/seed_runtime.json"
}