varying float LightIntensity; varying vec3 MCposition; uniform sampler3D Noise3; uniform vec4 LightWoodColor; uniform vec4 DarkWoodColor; uniform float RingFreq; uniform float NoiseScale; uniform float NoiseMag; void main() { vec3 noisevec = NoiseMag * texture3D( Noise3, NoiseScale * MCposition ).rgb; vec3 location = MCposition + noisevec; float dist = sqrt(location.x * location.x + location.z * location.z); dist *= RingFreq; // create an up-down ramp: float r = fract(dist + noisevec[0] + noisevec[1] + noisevec[2]) * 2.0; if( r > 1.0 ) r = 2.0 - r; vec4 color = mix( LightWoodColor, DarkWoodColor, r ); color *= LightIntensity; gl_FragColor = vec4( color.rgb, 1. ); }