[Bf-blender-cvs] [d5552a6d4ba] blender2.8: T55570: Moved Texture drawtype as to shading popover
Jeroen Bakker
noreply at git.blender.org
Thu Jun 21 14:59:18 CEST 2018
Commit: d5552a6d4ba5bb4ac34fe149c2ac9d7ff3f723fe
Author: Jeroen Bakker
Date: Thu Jun 21 14:56:00 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBd5552a6d4ba5bb4ac34fe149c2ac9d7ff3f723fe
T55570: Moved Texture drawtype as to shading popover
the use of the texture drawtype is limited. so who should we have it
this prominent on the screen. By adding it as a shading.color_type
option we should save some screenspace.
===================================================================
M release/scripts/startup/bl_ui/space_view3d.py
M source/blender/blenloader/intern/versioning_280.c
M source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
M source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl
M source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
M source/blender/draw/engines/workbench/workbench_data.c
M source/blender/draw/engines/workbench/workbench_deferred.c
M source/blender/draw/engines/workbench/workbench_forward.c
M source/blender/draw/engines/workbench/workbench_materials.c
M source/blender/draw/engines/workbench/workbench_private.h
M source/blender/draw/intern/draw_manager.c
M source/blender/makesdna/DNA_view3d_types.h
M source/blender/makesrna/intern/rna_space.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 0dbbf3ab927..804da7ede78 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3646,7 +3646,7 @@ class VIEW3D_PT_shading_lighting(Panel):
view = context.space_data
shading = view.shading
- if shading.type in ('SOLID', 'TEXTURED'):
+ if shading.type == 'SOLID':
layout.row().prop(shading, "light", expand=True)
if shading.light == 'STUDIO':
row = layout.row()
@@ -3663,7 +3663,7 @@ class VIEW3D_PT_shading_lighting(Panel):
sub.operator('VIEW3D_OT_toggle_matcap_flip', emboss=False, text="", icon='ARROW_LEFTRIGHT')
sub.operator('wm.studiolight_userpref_show', emboss=False, text="", icon='PREFERENCES')
- elif shading.type in ('MATERIAL'):
+ elif shading.type == 'MATERIAL':
row = layout.row()
row.template_icon_view(shading, "studio_light", show_labels=True)
sub = row.column()
@@ -3708,7 +3708,7 @@ class VIEW3D_PT_shading_options(Panel):
def poll(cls, context):
view = context.space_data
shading = view.shading
- return shading.type in ['SOLID', 'TEXTURED']
+ return shading.type == 'SOLID'
def draw(self, context):
layout = self.layout
@@ -3720,35 +3720,34 @@ class VIEW3D_PT_shading_options(Panel):
row = layout.row()
row.prop(shading, "show_specular_highlight")
- if shading.type in ('SOLID', 'TEXTURED'):
- row = layout.split(0.4)
- row.prop(shading, "show_xray")
- sub = row.row()
- sub.active = shading.show_xray
- sub.prop(shading, "xray_alpha", text="")
-
- row = layout.split(0.4)
- row.active = not shading.show_xray
- row.prop(shading, "show_shadows")
- sub = row.row()
- sub.active = shading.show_shadows and not shading.show_xray
- sub.prop(shading, "shadow_intensity", text="")
-
- row = layout.split(0.4)
- row.active = not shading.show_xray
- row.prop(shading, "show_cavity")
- sub = row.column(align=True)
- sub.active = not shading.show_xray and shading.show_cavity
- sub.prop(shading, "cavity_ridge_factor")
- sub.prop(shading, "cavity_valley_factor")
-
- row = layout.split(0.4)
- row.prop(shading, "show_object_outline")
- sub = row.row()
- sub.active = shading.show_object_outline
- sub.prop(shading, "object_outline_color", text="")
-
- layout.prop(view, "show_world")
+ row = layout.split(0.4)
+ row.prop(shading, "show_xray")
+ sub = row.row()
+ sub.active = shading.show_xray
+ sub.prop(shading, "xray_alpha", text="")
+
+ row = layout.split(0.4)
+ row.active = not shading.show_xray
+ row.prop(shading, "show_shadows")
+ sub = row.row()
+ sub.active = shading.show_shadows and not shading.show_xray
+ sub.prop(shading, "shadow_intensity", text="")
+
+ row = layout.split(0.4)
+ row.active = not shading.show_xray
+ row.prop(shading, "show_cavity")
+ sub = row.column(align=True)
+ sub.active = not shading.show_xray and shading.show_cavity
+ sub.prop(shading, "cavity_ridge_factor")
+ sub.prop(shading, "cavity_valley_factor")
+
+ row = layout.split(0.4)
+ row.prop(shading, "show_object_outline")
+ sub = row.row()
+ sub.active = shading.show_object_outline
+ sub.prop(shading, "object_outline_color", text="")
+
+ layout.prop(view, "show_world")
class VIEW3D_PT_overlay(Panel):
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 39be7dda054..dd5deb0fb89 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -1490,5 +1490,22 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
}
+
+ for (bScreen *screen = bmain->screen.first; screen; screen = screen->id.next) {
+ for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) {
+ for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) {
+ if (sl->spacetype == SPACE_VIEW3D) {
+ View3D *v3d = (View3D *)sl;
+ if (v3d->drawtype == OB_TEXTURE)
+ {
+ v3d->drawtype = OB_SOLID;
+ v3d->shading.light = V3D_LIGHTING_STUDIO;
+ v3d->shading.color_type = V3D_SHADING_TEXTURE_COLOR;
+ }
+ }
+ }
+ }
+ }
+
}
}
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
index 4a7d195a56a..1b3737193b0 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl
@@ -1,4 +1,4 @@
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
uniform sampler2D image;
#endif
uniform mat4 ProjectionMatrix;
@@ -10,7 +10,7 @@ uniform vec4 viewvecs[3];
#ifdef NORMAL_VIEWPORT_PASS_ENABLED
in vec3 normal_viewport;
#endif /* NORMAL_VIEWPORT_PASS_ENABLED */
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
in vec2 uv_interp;
#endif
#ifdef STUDIOLIGHT_ORIENTATION_VIEWNORMAL
@@ -32,12 +32,12 @@ void main()
{
vec4 diffuse_color;
vec3 diffuse_light = vec3(1.0);
-#ifdef OB_SOLID
- diffuse_color = material_data.diffuse_color;
-#endif /* OB_SOLID */
-#ifdef OB_TEXTURE
+
+#ifdef V3D_SHADING_TEXTURE_COLOR
diffuse_color = texture(image, uv_interp);
-#endif /* OB_TEXTURE */
+#else
+ diffuse_color = material_data.diffuse_color;
+#endif /* V3D_SHADING_TEXTURE_COLOR */
vec2 uv_viewport = gl_FragCoord.xy * invertedViewportSize;
vec3 I_vs = view_vector_from_screen_uv(uv_viewport, viewvecs, ProjectionMatrix);
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl
index 200850e3036..6aeb912377c 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_frag.glsl
@@ -4,7 +4,7 @@ layout(std140) uniform material_block {
MaterialData material_data;
};
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
uniform sampler2D image;
#endif
@@ -12,9 +12,9 @@ uniform sampler2D image;
in vec3 normal_viewport;
#endif /* NORMAL_VIEWPORT_PASS_ENABLED */
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
in vec2 uv_interp;
-#endif /* OB_TEXTURE */
+#endif /* V3D_SHADING_TEXTURE_COLOR */
#ifdef HAIR_SHADER
flat in float hair_rand;
@@ -40,17 +40,16 @@ void main()
n = normalize(n);
#endif
-#ifdef OB_SOLID
+#ifdef V3D_SHADING_TEXTURE_COLOR
+ diffuseColor = texture(image, uv_interp);
+#else
diffuseColor = vec4(material_data.diffuse_color.rgb, 0.0);
# ifdef STUDIOLIGHT_ORIENTATION_VIEWNORMAL
-
specularColor = vec4(material_data.diffuse_color.rgb, 0.0);
+
# endif
-#endif /* OB_SOLID */
+#endif /* V3D_SHADING_TEXTURE_COLOR */
-#ifdef OB_TEXTURE
- diffuseColor = texture(image, uv_interp);
-#endif /* OB_TEXTURE */
#ifdef HAIR_SHADER
float hair_color_variation = hair_rand * 0.1;
diffuseColor.rgb = clamp(diffuseColor.rgb - hair_color_variation, 0.0, 1.0);
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
index 82443e7336b..66b529fcf5e 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_prepass_vert.glsl
@@ -9,7 +9,7 @@ in vec3 pos;
in vec3 nor;
in vec2 uv;
#else /* HAIR_SHADER */
-# ifdef OB_TEXTURE
+# ifdef V3D_SHADING_TEXTURE_COLOR
uniform samplerBuffer u; /* active texture layer */
# endif
flat out float hair_rand;
@@ -19,7 +19,7 @@ flat out float hair_rand;
out vec3 normal_viewport;
#endif
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
out vec2 uv_interp;
#endif
@@ -34,7 +34,7 @@ float integer_noise(int n)
void main()
{
#ifdef HAIR_SHADER
-# ifdef OB_TEXTURE
+# ifdef V3D_SHADING_TEXTURE_COLOR
vec2 uv = hair_get_customdata_vec2(u);
# endif
float time, thick_time, thickness;
@@ -55,7 +55,7 @@ void main()
#else
gl_Position = ModelViewProjectionMatrix * vec4(pos, 1.0);
#endif
-#ifdef OB_TEXTURE
+#ifdef V3D_SHADING_TEXTURE_COLOR
uv_interp = uv;
#endif
diff --git a/source/blender/draw/engines/workbench/workbench_data.c b/source/blender/draw/engines/workbench/workbench_data.c
index efadf969830..d544e7614ab 100644
--- a/source/blender/draw/engines/workbench/workbench_data.c
+++ b/source/blender/draw/engines/workbench/workbench_data.c
@@ -15,7 +15,6 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd)
View3D *v3d = draw_ctx->v3d;
if (v3d) {
wpd->shading = v3d->shading;
- wpd->drawtype = v3d->drawtype;
if (wpd->shading.light == V3D_LIGHTING_MATCAP) {
wpd->studio_light = BKE_studiolight_find(
wpd->shading.matcap, STUDIOLIGHT_ORIENTATION_VIEWNORMAL);
@@ -30,7 +29,6 @@ void workbench_private_data_init(WORKBENCH_PrivateData *wpd)
wpd->shading.light = V3D_LIGHTING_STUDIO;
wpd->shading.shadow_intensity = 0.5;
copy_v3_fl(wpd->shading.single_color, 0.8f);
- wpd->drawtype = OB_SOLID;
wpd->studio_light = BKE_studiolight_find_first(STUDIOLIGHT_INTERNAL);
}
wpd->shadow_multiplier = 1.0 - wpd->shading.shadow_intensity;
diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c
index 9b1a17a372a..39a4197bdf3 100644
--- a/source/blender/draw/engines/workbench/workbench_deferred.c
+++ b/source/blender/draw/engines/workbench/workbench_deferred.c
@@ -175,17 +175,17 @@ static char *workbench_build_cavity_frag(void)
return str;
}
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list