Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upbge v0.3 release #1747

Open
wants to merge 2 commits into
base: upbge-v0.3-release
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion release/datafiles/locale
Submodule locale updated from 6178ba to 7be7af
2 changes: 1 addition & 1 deletion release/scripts/addons
Submodule addons updated 1170 files
2 changes: 1 addition & 1 deletion release/scripts/addons_contrib
Submodule addons_contrib updated from 164676 to 951074
39 changes: 36 additions & 3 deletions release/scripts/startup/bl_ui/properties_render.py
Expand Up @@ -417,7 +417,7 @@ def draw(self, context):


class RENDER_PT_eevee_screen_space_reflections(RenderButtonsPanel, Panel):
bl_label = "Screen Space Reflections"
bl_label = "Screen Space Ray Tracing 1.15 b"
bl_options = {'DEFAULT_CLOSED'}
COMPAT_ENGINES = {'BLENDER_EEVEE'}

Expand All @@ -440,13 +440,46 @@ def draw(self, context):
col = layout.column()
col.active = props.use_ssr
col.prop(props, "use_ssr_refraction", text="Refraction")
col.prop(props, "use_ssr_halfres")
#col.prop(props, "use_ssr_halfres")
col.prop(props, "ssr_border_fade")

col.label(text="Specular:", text_ctxt="", translate=False, icon='NONE', icon_value=0)

col.prop(props, "ssr_quality")
col.prop(props, "ssr_max_roughness")
col.prop(props, "ssr_thickness")
col.prop(props, "ssr_border_fade")
col.prop(props, "ssr_firefly_fac")

col.label(text="Diffuse:", text_ctxt="", translate=False, icon='NONE', icon_value=0)
col.prop(props, "ssr_diffuse_intensity")
col.prop(props, "ssr_diffuse_quality")
col.prop(props, "ssr_diffuse_thickness")
col.prop(props, "ssr_diffuse_resolve_bias")
col.prop(props, "ssr_diffuse_clamp")
col.prop(props, "ssr_diffuse_ao")
col.prop(props, "ssr_diffuse_ao_limit")

col.label(text="Probe Tracing(WIP):", text_ctxt="", translate=False, icon='NONE', icon_value=0)
col.prop(props, "ssr_diffuse_probe_trace")
col.prop(props, "ssr_diffuse_probe_intensity")
col.prop(props, "ssr_diffuse_probe_clamp")

col.label(text="Filter:", text_ctxt="", translate=False, icon='NONE', icon_value=0)
col.prop(props, "ssr_diffuse_filter")
col.prop(props, "ssr_diffuse_fsamples")
col.prop(props, "ssr_diffuse_fsize")
col.prop(props, "ssr_diffuse_fnweight")
col.prop(props, "ssr_diffuse_fdweight")
col.prop(props, "ssr_diffuse_faoweight")

#col.label(text="Debug:", text_ctxt="", translate=False, icon='NONE', icon_value=0)
#col.prop(props, "ssr_diffuse_debug_a")
#col.prop(props, "ssr_diffuse_debug_b")
#col.prop(props, "ssr_diffuse_debug_c")
#col.prop(props, "ssr_diffuse_debug_d")

#col.prop(props, "ssr_diffuse_versioning")


class RENDER_PT_eevee_shadows(RenderButtonsPanel, Panel):
bl_label = "Shadows"
Expand Down
51 changes: 51 additions & 0 deletions source/blender/blenloader/intern/versioning_280.c
Expand Up @@ -2240,6 +2240,32 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
scene->eevee.ssr_border_fade = 0.075f;
scene->eevee.ssr_firefly_fac = 10.0f;

scene->eevee.ssr_diffuse_versioning = 1.15f;

scene->eevee.ssr_diffuse_intensity = 1.0f;
scene->eevee.ssr_diffuse_thickness = 1.0f;
scene->eevee.ssr_diffuse_resolve_bias = 0.1f;
scene->eevee.ssr_diffuse_quality = 0.25f;
scene->eevee.ssr_diffuse_clamp = 1.0f;
scene->eevee.ssr_diffuse_ao = 1.0f;
scene->eevee.ssr_diffuse_ao_limit = 0.5f;

scene->eevee.ssr_diffuse_probe_trace = 0;
scene->eevee.ssr_diffuse_probe_intensity = 1.0f;
scene->eevee.ssr_diffuse_probe_clamp = 1.0f;

scene->eevee.ssr_diffuse_filter = 1.0f;
scene->eevee.ssr_diffuse_fsize = 32.0f;
scene->eevee.ssr_diffuse_fsamples = 1;
scene->eevee.ssr_diffuse_fnweight = 1.0f;
scene->eevee.ssr_diffuse_fdweight = 1.0f;
scene->eevee.ssr_diffuse_faoweight = 0.75f;

scene->eevee.ssr_diffuse_debug_a = 1.0f;
scene->eevee.ssr_diffuse_debug_b = 1.0f;
scene->eevee.ssr_diffuse_debug_c = 1.0f;
scene->eevee.ssr_diffuse_debug_d = 1.0f;

scene->eevee.volumetric_start = 0.1f;
scene->eevee.volumetric_end = 100.0f;
scene->eevee.volumetric_tile_size = 8;
Expand Down Expand Up @@ -2360,6 +2386,31 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
EEVEE_GET_FLOAT(props, ssr_border_fade);
EEVEE_GET_FLOAT(props, ssr_firefly_fac);

EEVEE_GET_FLOAT(props, ssr_diffuse_versioning);

EEVEE_GET_FLOAT(props, ssr_diffuse_intensity);
EEVEE_GET_FLOAT(props, ssr_diffuse_thickness);
EEVEE_GET_FLOAT(props, ssr_diffuse_resolve_bias);
EEVEE_GET_FLOAT(props, ssr_diffuse_quality);
EEVEE_GET_FLOAT(props, ssr_diffuse_clamp);
EEVEE_GET_FLOAT(props, ssr_diffuse_ao);

EEVEE_GET_INT(props, ssr_diffuse_probe_trace);
EEVEE_GET_FLOAT(props, ssr_diffuse_probe_intensity);
EEVEE_GET_FLOAT(props, ssr_diffuse_probe_clamp);

EEVEE_GET_FLOAT(props, ssr_diffuse_filter);
EEVEE_GET_FLOAT(props, ssr_diffuse_fsize);
EEVEE_GET_INT(props, ssr_diffuse_fsamples);
EEVEE_GET_FLOAT(props, ssr_diffuse_fnweight);
EEVEE_GET_FLOAT(props, ssr_diffuse_fdweight);
EEVEE_GET_FLOAT(props, ssr_diffuse_faoweight);

EEVEE_GET_FLOAT(props, ssr_diffuse_debug_a);
EEVEE_GET_FLOAT(props, ssr_diffuse_debug_b);
EEVEE_GET_FLOAT(props, ssr_diffuse_debug_c);
EEVEE_GET_FLOAT(props, ssr_diffuse_debug_d);

EEVEE_GET_FLOAT(props, volumetric_start);
EEVEE_GET_FLOAT(props, volumetric_end);
EEVEE_GET_INT(props, volumetric_tile_size);
Expand Down
32 changes: 32 additions & 0 deletions source/blender/blenloader/intern/versioning_290.c
Expand Up @@ -1780,6 +1780,38 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain)
FOREACH_NODETREE_END;
}

/* using float property check for versioning since can't rely on blender version*/
if (!DNA_struct_elem_find(fd->filesdna, "SceneEEVEE", "float", "diffuse_intensity")) {
LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
if (scene->eevee.ssr_diffuse_versioning < 1.15f) {
scene->eevee.ssr_diffuse_versioning = 1.15f;

scene->eevee.ssr_diffuse_intensity = 1.0f;
scene->eevee.ssr_diffuse_thickness = 1.0f;
scene->eevee.ssr_diffuse_resolve_bias = 0.1f;
scene->eevee.ssr_diffuse_quality = 0.25f;
scene->eevee.ssr_diffuse_clamp = 1.0f;
scene->eevee.ssr_diffuse_ao = 1.0f;
scene->eevee.ssr_diffuse_ao_limit = 0.5f;

scene->eevee.ssr_diffuse_probe_trace = 0;
scene->eevee.ssr_diffuse_probe_intensity = 1.0f;
scene->eevee.ssr_diffuse_probe_clamp = 1.0f;

scene->eevee.ssr_diffuse_filter = 1.0f;
scene->eevee.ssr_diffuse_fsize = 32.0f;
scene->eevee.ssr_diffuse_fsamples = 1;
scene->eevee.ssr_diffuse_fnweight = 1.0f;
scene->eevee.ssr_diffuse_fdweight = 1.0f;
scene->eevee.ssr_diffuse_faoweight = 0.75f;

scene->eevee.ssr_diffuse_debug_a = 1.0f;
scene->eevee.ssr_diffuse_debug_b = 1.0f;
scene->eevee.ssr_diffuse_debug_c = 1.0f;
scene->eevee.ssr_diffuse_debug_d = 1.0f;
}
}
}
if (!MAIN_VERSION_ATLEAST(bmain, 293, 9)) {
if (!DNA_struct_elem_find(fd->filesdna, "SceneEEVEE", "float", "bokeh_overblur")) {
LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
Expand Down
5 changes: 5 additions & 0 deletions source/blender/draw/CMakeLists.txt
Expand Up @@ -277,6 +277,10 @@ data_to_c_simple(engines/eevee/shaders/effect_dof_setup_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_reflection_lib.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_reflection_resolve_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_reflection_trace_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_ssgi_filter_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_ssgi_filter_sec_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_ssgi_resolve_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_ssgi_trace_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_downsample_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_downsample_cube_frag.glsl SRC)
data_to_c_simple(engines/eevee/shaders/effect_gtao_frag.glsl SRC)
Expand Down Expand Up @@ -366,6 +370,7 @@ data_to_c_simple(intern/shaders/common_hair_refine_vert.glsl SRC)
data_to_c_simple(intern/shaders/common_hair_refine_comp.glsl SRC)
data_to_c_simple(intern/shaders/common_math_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_math_geom_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_colorpacking_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_view_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_fxaa_lib.glsl SRC)
data_to_c_simple(intern/shaders/common_smaa_lib.glsl SRC)
Expand Down
2 changes: 1 addition & 1 deletion source/blender/draw/engines/eevee/eevee_effects.c
Expand Up @@ -263,7 +263,7 @@ void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
DRW_PASS_CREATE(psl->color_copy_ps, DRW_STATE_WRITE_COLOR);
grp = DRW_shgroup_create(EEVEE_shaders_effect_color_copy_sh_get(), psl->color_copy_ps);
DRW_shgroup_uniform_texture_ref_ex(grp, "source", &e_data.color_src, GPU_SAMPLER_DEFAULT);
DRW_shgroup_uniform_float(grp, "fireflyFactor", &sldata->common_data.ssr_firefly_fac, 1);
DRW_shgroup_uniform_float(grp, "fireflyFactor", &sldata->common_data.ssr_firefly_fac, 1); /* TODO SSGI */
DRW_shgroup_call_procedural_triangles(grp, NULL, 1);

DRW_PASS_CREATE(psl->color_downsample_ps, DRW_STATE_WRITE_COLOR);
Expand Down
43 changes: 42 additions & 1 deletion source/blender/draw/engines/eevee/eevee_private.h
Expand Up @@ -299,6 +299,10 @@ typedef struct EEVEE_PassList {
struct DRWPass *volumetric_accum_ps;
struct DRWPass *ssr_raytrace;
struct DRWPass *ssr_resolve;
struct DRWPass *ssgi_raytrace;
struct DRWPass *ssgi_resolve;
struct DRWPass *ssgi_filter;
struct DRWPass *ssgi_filter_sec;
struct DRWPass *sss_blur_ps;
struct DRWPass *sss_resolve_ps;
struct DRWPass *sss_translucency_ps;
Expand Down Expand Up @@ -365,6 +369,7 @@ typedef struct EEVEE_FramebufferList {
struct GPUFrameBuffer *cryptomatte_fb;
struct GPUFrameBuffer *shadow_accum_fb;
struct GPUFrameBuffer *ssr_accum_fb;
struct GPUFrameBuffer *ssgi_accum_fb; /* TODO - use */
struct GPUFrameBuffer *sss_blur_fb;
struct GPUFrameBuffer *sss_blit_fb;
struct GPUFrameBuffer *sss_resolve_fb;
Expand All @@ -390,6 +395,7 @@ typedef struct EEVEE_FramebufferList {
struct GPUFrameBuffer *volumetric_integ_fb;
struct GPUFrameBuffer *volumetric_accum_fb;
struct GPUFrameBuffer *screen_tracing_fb;
struct GPUFrameBuffer *screen_tracing_ssgi_fb; // Filter
struct GPUFrameBuffer *mist_accum_fb;
struct GPUFrameBuffer *material_accum_fb;
struct GPUFrameBuffer *renderpass_fb;
Expand Down Expand Up @@ -436,6 +442,7 @@ typedef struct EEVEE_TextureList {
struct GPUTexture *emit_accum;
struct GPUTexture *bloom_accum;
struct GPUTexture *ssr_accum;
struct GPUTexture *ssgi_accum; /* TODO - use */
struct GPUTexture *shadow_accum;
struct GPUTexture *cryptomatte;
struct GPUTexture *taa_history;
Expand Down Expand Up @@ -745,13 +752,18 @@ typedef struct EEVEE_EffectsInfo {
struct GPUTexture *volume_scatter;
struct GPUTexture *volume_transmit;
/* SSR */
bool reflection_trace_full;
bool reflection_trace_full; /* TODO SSGI separate res toggle */
bool ssr_was_persp;
bool ssr_was_valid_double_buffer;
struct GPUTexture *ssr_normal_input; /* Textures from pool */
struct GPUTexture *ssr_specrough_input;
struct GPUTexture *ssr_hit_output;
struct GPUTexture *ssr_hit_depth;
/* SSGI (shares ssr data) */
struct GPUTexture *ssgi_hit_output; //trace
struct GPUTexture *ssgi_hit_depth; //trace
struct GPUTexture *ssgi_filter_input; //filter a
struct GPUTexture *ssgi_filter_sec_input; //filter b
/* Temporal Anti Aliasing */
int taa_reproject_sample;
int taa_current_sample;
Expand Down Expand Up @@ -916,6 +928,31 @@ typedef struct EEVEE_CommonUniformBuffer {
float pad8; /* float */
float pad9; /* float */
float pad10; /* float */
/* SSGI */
float ssr_diffuse_versioning; /* float */
float ssr_diffuse_intensity; /* float *//* trace */
float ssr_diffuse_thickness; /* float */
float ssr_diffuse_resolve_bias; /* float */
float ssr_diffuse_quality; /* float */
float ssr_diffuse_clamp; /* float */
float ssr_diffuse_ao; /* float */
float ssr_diffuse_ao_limit; /* float */
int ssr_diffuse_probe_trace; /* int */ /* probe */
float ssr_diffuse_probe_intensity; /* float */
float ssr_diffuse_probe_clamp; /* float */
float ssr_diffuse_filter; /* float *//* filter */
float ssr_diffuse_fsize; /* float */
int ssr_diffuse_fsamples; /* int */
float ssr_diffuse_fnweight; /* float */
float ssr_diffuse_fdweight; /* float */
float ssr_diffuse_faoweight; /* float */
float ssr_diffuse_debug_a; /* float *//* debug */
float ssr_diffuse_debug_b; /* float */
float ssr_diffuse_debug_c; /* float */
float ssr_diffuse_debug_d; /* float */
float pad130;
float pad131;
float pad132;
} EEVEE_CommonUniformBuffer;

BLI_STATIC_ASSERT_ALIGN(EEVEE_CommonUniformBuffer, 16)
Expand Down Expand Up @@ -1235,6 +1272,10 @@ struct GPUShader *EEVEE_shaders_effect_ambient_occlusion_sh_get(void);
struct GPUShader *EEVEE_shaders_effect_ambient_occlusion_debug_sh_get(void);
struct GPUShader *EEVEE_shaders_effect_reflection_trace_sh_get(void);
struct GPUShader *EEVEE_shaders_effect_reflection_resolve_sh_get(void);
struct GPUShader *EEVEE_shaders_effect_ssgi_trace_sh_get(void);
struct GPUShader *EEVEE_shaders_effect_ssgi_resolve_sh_get(void);
struct GPUShader *EEVEE_shaders_effect_ssgi_filter_sh_get(void);
struct GPUShader *EEVEE_shaders_effect_ssgi_filter_sec_sh_get(void);
struct GPUShader *EEVEE_shaders_renderpasses_post_process_sh_get(void);
struct GPUShader *EEVEE_shaders_cryptomatte_sh_get(bool is_hair);
struct GPUShader *EEVEE_shaders_shadow_sh_get(void);
Expand Down