Program Listing for File GUISceneSharedVars.ixx

Program Listing for File GUISceneSharedVars.ixx#

Return to documentation for file (Src/GraphicsEngineVulkan/scene/GUISceneSharedVars.ixx)

module;

export module kataglyphis.vulkan.gui_scene_shared_vars;

export struct GUISceneSharedVars
{
    float direcional_light_radiance = 10.f;
    float directional_light_color[3] = { 1.f, 1.f, 1.f };
    float directional_light_direction[3] = { 0.075f, -1.f, 0.118f };

    // Shadows
    int shadow_map_res_index = 3;
    bool shadow_resolution_changed = false;
    int num_shadow_cascades = 5; // Default value, will be synced
    int pcf_radius = 2;
    float cascaded_shadow_intensity = 0.65f;
    const char* available_shadow_map_resolutions[4] = { "512", "1024", "2048", "4096" };

    // Clouds
    int cloud_speed = 6;
    int cloud_num_march_steps = 8;
    int cloud_num_march_steps_to_light = 3;
    float cloud_movement_direction[3] = { 1.f, 1.f, 1.f };
    float cloud_scale = 0.63f;
    float cloud_density = 0.493f;
    float cloud_pillowness = 0.966f;
    float cloud_cirrus_effect = 0.034f;
    bool cloud_powder_effect = true;
    bool clouds_enabled = false;
    float cloud_mesh_scale[3] = { 1000.f, 5.f, 1000.f };
    float cloud_mesh_offset[3] = { -0.364f, 367.f, -18.351f };

    // Shadows
    bool shadows_enabled = true;

    // Skybox
    bool skybox_enabled = true;

    // Model selection
    int selected_model_index = -1;
    bool model_reload_requested = false;
    bool model_transform_changed = false;
    float model_position[3] = { 0.f, 0.f, 0.f };
    float model_rotation[3] = { 0.f, 0.f, 0.f };
};