diff options
author | Jacques Lucke <jacques@blender.org> | 2021-06-14 13:44:13 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-06-14 13:44:13 +0300 |
commit | dddcf1e9bbf4a6d1f4ff03eaf0cb7e9228b18ec5 (patch) | |
tree | c20defa7efd54c933d20a296abefe567909bb6c0 /source/blender/draw/intern/shaders/common_hair_refine_comp.glsl | |
parent | 3b162b7c185d089e93d892169a458d552196b7b6 (diff) | |
parent | c9dc55301cd7903b7ef7c045d337ada29aa809a1 (diff) |
Merge branch 'master' into temp-compact-node-prototypetemp-compact-node-prototype
Diffstat (limited to 'source/blender/draw/intern/shaders/common_hair_refine_comp.glsl')
-rw-r--r-- | source/blender/draw/intern/shaders/common_hair_refine_comp.glsl | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source/blender/draw/intern/shaders/common_hair_refine_comp.glsl b/source/blender/draw/intern/shaders/common_hair_refine_comp.glsl new file mode 100644 index 00000000000..4dcde4b0245 --- /dev/null +++ b/source/blender/draw/intern/shaders/common_hair_refine_comp.glsl @@ -0,0 +1,24 @@ + +/* + * To be compiled with common_hair_lib.glsl. + */ + +layout(local_size_x = 1, local_size_y = 1) in; +layout(std430, binding = 0) writeonly buffer hairPointOutputBuffer +{ + vec4 posTime[]; +} +out_vertbuf; + +void main(void) +{ + float interp_time; + vec4 data0, data1, data2, data3; + hair_get_interp_attrs(data0, data1, data2, data3, interp_time); + + vec4 weights = hair_get_weights_cardinal(interp_time); + vec4 result = hair_interp_data(data0, data1, data2, data3, weights); + + uint index = uint(hair_get_id() * hairStrandsRes) + gl_GlobalInvocationID.y; + out_vertbuf.posTime[index] = result; +} |