Advertisement
Boost

Untitled

Feb 3rd, 2019
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #version 330
  2.  
  3. uniform sampler2D cloudTexture;
  4. uniform sampler2D perlinNoise;
  5.  
  6. uniform vec4 cloudColour1;
  7. uniform vec4 cloudColour2;
  8. uniform vec4 cloudColour3;
  9. uniform vec4 cloudColour4;
  10.  
  11. // Must match the names in compoundClouds.vs
  12. in vec2 oUV0;
  13.  
  14. out vec4 color;
  15.  
  16. void main()
  17. {
  18.     vec4 concentrations = texture2D(cloudTexture, oUV0);
  19.  
  20.     // Calculate all channels
  21.     float alpha1 = concentrations.r * texture2D(perlinNoise, oUV0 * 1.5f + 0.0f).x * 0.90f;
  22.     float alpha2 = concentrations.g * texture2D(perlinNoise, oUV0 * 1.5f + 0.2f).x * 0.90f;
  23.     float alpha3 = concentrations.b * texture2D(perlinNoise, oUV0 * 1.5f + 0.04f).x * 0.90f;
  24.     float alpha4 = concentrations.a * texture2D(perlinNoise, oUV0 * 1.5f + 0.6f).x * 0.90f;
  25.  
  26.     float totalAlpha = alpha1 + alpha2 + alpha3 + alpha4;
  27.  
  28.     // Adjust the alpha to get better looking blend
  29.     alpha1 *= alpha1 / totalAlpha;
  30.     alpha2 *= alpha2 / totalAlpha;
  31.     alpha3 *= alpha3 / totalAlpha;
  32.     alpha4 *= alpha4 / totalAlpha;
  33.  
  34.     // Then mix them all together
  35.     color =
  36.         // first
  37.         cloudColour1 * alpha1 +
  38.         // second
  39.         cloudColour2 * alpha2 +
  40.         // third
  41.         cloudColour3 * alpha3 +
  42.         // fourth
  43.         cloudColour4 * alpha4;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement