21 lines
568 B
GLSL

#version 430
in vec3 varPosition;
out float noise;
void main(void) {
// Base: Distance to a helix
vec3 helix_pos = vec3(sin(varPosition.y * 5.0) * 0.2 + 0.5, varPosition.y, cos(varPosition.y * 5.0) * 0.2 + 0.5);
float dist = distance(helix_pos, varPosition);
noise = 0.6 - dist;
// Create some blobby shapes on the helix
float f1 = sin((varPosition.x + varPosition.z) * 7.0);
float f2 = cos((varPosition.y + varPosition.x) * 3.0);
float f3 = cos((varPosition.z + varPosition.y) * 8.0);
noise += abs(f1 + f2 + f3) * 0.1;
}