Fix T44076, SSAO in solid mode will disable antialiasing in wireframe

mode.

Yes it will, because those modes stay active. So on user side, expose
depth of field option always (I don't see why not), but disable SSAO in
wireframe/bounding box mode. It is a known limitation that compositing
does not support antialiasing yet, but better give users some more
control.

This could be included in final release but it's not that serious
either.
This commit is contained in:
Antonis Ryakiotakis 2015-03-23 18:54:56 +01:00
parent 1b71279adc
commit f65e3c7f1b
Notes: blender-bot 2023-02-14 09:21:21 +01:00
Referenced by issue #44076, SSAO in solid mode in viewport disables Antialiasing for wireframe mode too.
2 changed files with 20 additions and 4 deletions

View File

@ -2975,12 +2975,14 @@ class VIEW3D_PT_view3d_shading(Panel):
if obj and obj.mode == 'EDIT':
col.prop(view, "show_occlude_wire")
fx_settings = view.fx_settings
sub = col.column()
sub.active = view.region_3d.view_perspective == 'CAMERA'
sub.prop(fx_settings, "use_dof")
fx_settings = view.fx_settings
sub = col.column()
sub.active = view.region_3d.view_perspective == 'CAMERA'
sub.prop(fx_settings, "use_dof")
if view.viewport_shade not in {'BOUNDBOX', 'WIREFRAME'}:
col.prop(fx_settings, "use_ssao", text="Ambient Occlusion")
if fx_settings.use_ssao:
ssao_settings = fx_settings.ssao

View File

@ -3120,7 +3120,17 @@ void ED_view3d_draw_offscreen(
/* framebuffer fx needed, we need to draw offscreen first */
if (v3d->fx_settings.fx_flag && fx) {
GPUSSAOSettings *ssao = NULL;
if (v3d->drawtype < OB_SOLID) {
ssao = v3d->fx_settings.ssao;
v3d->fx_settings.ssao = NULL;
}
do_compositing = GPU_fx_compositor_initialize_passes(fx, &ar->winrct, NULL, fx_settings);
if (ssao)
v3d->fx_settings.ssao = ssao;
}
/* clear opengl buffers */
@ -3551,6 +3561,10 @@ static void view3d_main_area_draw_objects(const bContext *C, Scene *scene, View3
else {
fx_settings.dof = NULL;
}
if (v3d->drawtype < OB_SOLID)
fx_settings.ssao = NULL;
do_compositing = GPU_fx_compositor_initialize_passes(rv3d->compositor, &ar->winrct, &ar->drawrct, &fx_settings);
}