Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-04-04 15:43:54 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-04-04 15:44:19 +0300
commitaf3f4f29e46afb96aff49be8d1ca42c5fdd7d08e (patch)
treebdf1a62374a5ad2f9b9b7da4ceeca4d2f10364f2 /source/blender/draw/modes
parent3ab3f893a9d372ea9259c9cfc44891110d52d8da (diff)
DRW: Fix hair count being limited by recent refactor
This was making Autumn being half naked. Issue was introduced by rBe72dc667c4d3
Diffstat (limited to 'source/blender/draw/modes')
-rw-r--r--source/blender/draw/modes/shaders/common_hair_lib.glsl18
1 files changed, 3 insertions, 15 deletions
diff --git a/source/blender/draw/modes/shaders/common_hair_lib.glsl b/source/blender/draw/modes/shaders/common_hair_lib.glsl
index 9cda44c8f42..14df29f2e94 100644
--- a/source/blender/draw/modes/shaders/common_hair_lib.glsl
+++ b/source/blender/draw/modes/shaders/common_hair_lib.glsl
@@ -35,22 +35,12 @@ uniform samplerBuffer hairPointBuffer; /* RGBA32F */
/* -- Per strands data -- */
uniform usamplerBuffer hairStrandBuffer; /* R32UI */
+uniform usamplerBuffer hairStrandSegBuffer; /* R16UI */
/* Not used, use one buffer per uv layer */
//uniform samplerBuffer hairUVBuffer; /* RG32F */
//uniform samplerBuffer hairColBuffer; /* RGBA16 linear color */
-void unpack_strand_data(uint data, out int strand_offset, out int strand_segments)
-{
-#if 0 /* Pack point count */
- // strand_offset = (data & 0x1FFFFFFFu);
- // strand_segments = 1u << (data >> 29u); /* We only need 3 bits to store subdivision level. */
-#else
- strand_offset = int(data & 0x003FFFFFu);
- strand_segments = int(data >> 22u) + 1;
-#endif
-}
-
/* -- Subdivision stage -- */
/**
* We use a transform feedback to preprocess the strands and add more subdivision to it.
@@ -76,10 +66,8 @@ void hair_get_interp_attrs(out vec4 data0, out vec4 data1, out vec4 data2, out v
float local_time = float(gl_VertexID % hairStrandsRes) / float(hairStrandsRes - 1);
int hair_id = gl_VertexID / hairStrandsRes;
- uint strand_data = texelFetch(hairStrandBuffer, hair_id).x;
-
- int strand_offset, strand_segments;
- unpack_strand_data(strand_data, strand_offset, strand_segments);
+ int strand_offset = int(texelFetch(hairStrandBuffer, hair_id).x);
+ int strand_segments = int(texelFetch(hairStrandSegBuffer, hair_id).x);
int id = hair_get_base_id(local_time, strand_segments, interp_time);