diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-12-03 02:36:54 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-12-03 19:19:11 +0300 |
commit | 24fd03d0c2fc5f49bc3813afce7ac5d67fc762bd (patch) | |
tree | 4af65d73762c28ce003d425cb288d66bec226a3d /source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl | |
parent | 17a4323ef59570975b254da9936fde16969b1df0 (diff) |
Workbench: Reduce VRAM usage depending on mode
We exploit the fact that we are using the metallic workflow for material
and pass the metallic parameter instead of the specular color.
Pack the front facing bit in the color buffer only for matcap display.
Change buffer formats to use less bytes as possible.
Also don't request buffers that we won't use.
Saved 40MB on 2K screen on StudioLight + Shadows + Specular Lighting.
Includes several cleanups.
Diffstat (limited to 'source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/workbench/shaders/workbench_forward_transparent_accum_frag.glsl | 8 |
1 files changed, 4 insertions, 4 deletions
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 c00edb06100..d42b6bde791 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 @@ -9,8 +9,8 @@ uniform float alpha = 0.5; uniform vec2 invertedViewportSize; uniform vec4 viewvecs[3]; -uniform vec4 materialDiffuseColor; -uniform vec4 materialSpecularColor; +uniform vec3 materialDiffuseColor; +uniform vec3 materialSpecularColor; uniform float materialRoughness; #ifdef NORMAL_VIEWPORT_PASS_ENABLED @@ -40,7 +40,7 @@ void main() discard; } #else - diffuse_color = materialDiffuseColor; + diffuse_color = vec4(materialDiffuseColor, 1.0); #endif /* V3D_SHADING_TEXTURE_COLOR */ vec2 uv_viewport = gl_FragCoord.xy * invertedViewportSize; @@ -62,7 +62,7 @@ void main() #elif defined(V3D_LIGHTING_STUDIO) vec3 shaded_color = get_world_lighting(world_data, - diffuse_color.rgb, materialSpecularColor.rgb, materialRoughness, + diffuse_color.rgb, materialSpecularColor, materialRoughness, nor, I_vs); #endif |