parent
8342a124c4
commit
3f37787c80
|
@ -583,7 +583,7 @@ class USERPREF_PT_viewport_display(PreferencePanel, Panel):
|
|||
|
||||
col = flow.column()
|
||||
col.prop(view, "gizmo_size")
|
||||
col.prop(view, "lookdev_ball_size")
|
||||
col.prop(view, "lookdev_sphere_size")
|
||||
|
||||
flow.separator()
|
||||
|
||||
|
|
|
@ -564,8 +564,8 @@ void BLO_version_defaults_userpref_blend(Main *bmain, UserDef *userdef)
|
|||
userdef->vbotimeout = 120;
|
||||
}
|
||||
|
||||
if (userdef->lookdev_ball_size == 0) {
|
||||
userdef->lookdev_ball_size = 150;
|
||||
if (userdef->lookdev_sphere_size == 0) {
|
||||
userdef->lookdev_sphere_size = 150;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -572,7 +572,7 @@ void EEVEE_draw_effects(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata)
|
|||
/* NOTE: Lookdev drawing happens before TAA but after
|
||||
* motion blur and dof to avoid distortions.
|
||||
* Velocity resolve use a hack to exclude lookdev
|
||||
* balls from creating shimering reprojection vectors. */
|
||||
* spheres from creating shimering reprojection vectors. */
|
||||
EEVEE_lookdev_draw(vedata);
|
||||
EEVEE_velocity_resolve(vedata);
|
||||
|
||||
|
|
|
@ -72,21 +72,21 @@ void EEVEE_lookdev_cache_init(EEVEE_Data *vedata,
|
|||
Scene *scene = draw_ctx->scene;
|
||||
|
||||
if (LOOK_DEV_OVERLAY_ENABLED(v3d)) {
|
||||
/* Viewport / Ball size. */
|
||||
/* Viewport / Spheres size. */
|
||||
rcti rect;
|
||||
ED_region_visible_rect(draw_ctx->ar, &rect);
|
||||
|
||||
/* Make the viewport width scale the lookdev balls a bit.
|
||||
/* Make the viewport width scale the lookdev spheres a bit.
|
||||
* Scale between 1000px and 2000px. */
|
||||
const float viewport_scale = clamp_f(
|
||||
BLI_rcti_size_x(&rect) / (2000.0f * U.dpi_fac), 0.5f, 1.0f);
|
||||
const int ball_size = U.lookdev_ball_size * U.dpi_fac * viewport_scale;
|
||||
const int sphere_size = U.lookdev_sphere_size * U.dpi_fac * viewport_scale;
|
||||
|
||||
if (ball_size != effects->ball_size || rect.xmax != effects->anchor[0] ||
|
||||
if (sphere_size != effects->sphere_size || rect.xmax != effects->anchor[0] ||
|
||||
rect.ymin != effects->anchor[1]) {
|
||||
/* If ball size or anchor point moves, reset TAA to avoid ghosting issue.
|
||||
/* If sphere size or anchor point moves, reset TAA to avoid ghosting issue.
|
||||
* This needs to happen early because we are changing taa_current_sample. */
|
||||
effects->ball_size = ball_size;
|
||||
effects->sphere_size = sphere_size;
|
||||
effects->anchor[0] = rect.xmax;
|
||||
effects->anchor[1] = rect.ymin;
|
||||
EEVEE_temporal_sampling_reset(vedata);
|
||||
|
@ -184,7 +184,7 @@ void EEVEE_lookdev_cache_init(EEVEE_Data *vedata,
|
|||
}
|
||||
|
||||
static void eevee_lookdev_apply_taa(const EEVEE_EffectsInfo *effects,
|
||||
int ball_size,
|
||||
int sphere_size,
|
||||
float winmat[4][4])
|
||||
{
|
||||
if (DRW_state_is_image_render() || ((effects->enabled_effects & EFFECT_TAA) != 0)) {
|
||||
|
@ -195,8 +195,8 @@ static void eevee_lookdev_apply_taa(const EEVEE_EffectsInfo *effects,
|
|||
|
||||
BLI_halton_2d(ht_primes, ht_offset, effects->taa_current_sample, ht_point);
|
||||
EEVEE_temporal_sampling_offset_calc(ht_point, 1.5f, ofs);
|
||||
winmat[3][0] += ofs[0] / ball_size;
|
||||
winmat[3][1] += ofs[1] / ball_size;
|
||||
winmat[3][0] += ofs[0] / sphere_size;
|
||||
winmat[3][1] += ofs[1] / sphere_size;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -226,7 +226,7 @@ void EEVEE_lookdev_draw(EEVEE_Data *vedata)
|
|||
DRWMatrixState matstate;
|
||||
unit_m4(matstate.winmat);
|
||||
|
||||
eevee_lookdev_apply_taa(effects, effects->ball_size, matstate.winmat);
|
||||
eevee_lookdev_apply_taa(effects, effects->sphere_size, matstate.winmat);
|
||||
|
||||
/* "Remove" view matrix location. Leaving only rotation. */
|
||||
DRW_viewport_matrix_get(matstate.viewmat, DRW_MAT_VIEW);
|
||||
|
@ -246,25 +246,25 @@ void EEVEE_lookdev_draw(EEVEE_Data *vedata)
|
|||
|
||||
GPU_framebuffer_bind(fb);
|
||||
|
||||
const int ball_margin = effects->ball_size / 6.0f;
|
||||
float offset[2] = {0.0f, ball_margin};
|
||||
const int sphere_margin = effects->sphere_size / 6.0f;
|
||||
float offset[2] = {0.0f, sphere_margin};
|
||||
|
||||
offset[0] = effects->ball_size + ball_margin;
|
||||
offset[0] = effects->sphere_size + sphere_margin;
|
||||
GPU_framebuffer_viewport_set(fb,
|
||||
effects->anchor[0] - offset[0],
|
||||
effects->anchor[1] + offset[1],
|
||||
effects->ball_size,
|
||||
effects->ball_size);
|
||||
effects->sphere_size,
|
||||
effects->sphere_size);
|
||||
|
||||
DRW_draw_pass(psl->lookdev_diffuse_pass);
|
||||
|
||||
offset[0] = (effects->ball_size + ball_margin) +
|
||||
(ball_margin + effects->ball_size + ball_margin);
|
||||
offset[0] = (effects->sphere_size + sphere_margin) +
|
||||
(sphere_margin + effects->sphere_size + sphere_margin);
|
||||
GPU_framebuffer_viewport_set(fb,
|
||||
effects->anchor[0] - offset[0],
|
||||
effects->anchor[1] + offset[1],
|
||||
effects->ball_size,
|
||||
effects->ball_size);
|
||||
effects->sphere_size,
|
||||
effects->sphere_size);
|
||||
|
||||
DRW_draw_pass(psl->lookdev_glossy_pass);
|
||||
|
||||
|
|
|
@ -606,7 +606,7 @@ typedef struct EEVEE_EffectsInfo {
|
|||
/* Other */
|
||||
float prev_persmat[4][4];
|
||||
/* Lookdev */
|
||||
int ball_size;
|
||||
int sphere_size;
|
||||
int anchor[2];
|
||||
/* Bloom */
|
||||
int bloom_iteration_len;
|
||||
|
|
|
@ -645,7 +645,7 @@ typedef struct UserDef {
|
|||
char _pad3[4];
|
||||
short gizmo_flag, gizmo_size;
|
||||
short edit_studio_light;
|
||||
short lookdev_ball_size;
|
||||
short lookdev_sphere_size;
|
||||
short vbotimeout, vbocollectrate;
|
||||
short textimeout, texcollectrate;
|
||||
int memcachelimit;
|
||||
|
|
|
@ -3272,7 +3272,7 @@ static void rna_def_space_view3d_overlay(BlenderRNA *brna)
|
|||
prop = RNA_def_property(srna, "show_look_dev", PROP_BOOLEAN, PROP_NONE);
|
||||
RNA_def_property_boolean_sdna(prop, NULL, "overlay.flag", V3D_OVERLAY_LOOK_DEV);
|
||||
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
|
||||
RNA_def_property_ui_text(prop, "Look Dev Preview", "Show look development balls and palette");
|
||||
RNA_def_property_ui_text(prop, "Look Dev Preview", "Show look development spheres and palette");
|
||||
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
|
||||
|
||||
prop = RNA_def_property(srna, "show_wireframes", PROP_BOOLEAN, PROP_NONE);
|
||||
|
|
|
@ -4134,12 +4134,12 @@ static void rna_def_userdef_view(BlenderRNA *brna)
|
|||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
/* Lookdev */
|
||||
prop = RNA_def_property(srna, "lookdev_ball_size", PROP_INT, PROP_PIXEL);
|
||||
RNA_def_property_int_sdna(prop, NULL, "lookdev_ball_size");
|
||||
prop = RNA_def_property(srna, "lookdev_sphere_size", PROP_INT, PROP_PIXEL);
|
||||
RNA_def_property_int_sdna(prop, NULL, "lookdev_sphere_size");
|
||||
RNA_def_property_range(prop, 50, 400);
|
||||
RNA_def_property_int_default(prop, 150);
|
||||
RNA_def_property_ui_text(
|
||||
prop, "LookDev Balls Size", "Maximum diameter of the LookDev balls size");
|
||||
prop, "Look Dev Spheres Size", "Maximum diameter of the look development sphere size");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
/* View2D Grid Displays */
|
||||
|
|
Loading…
Reference in New Issue