Loading weathereffects/graphics/assets/shaders/rain_glass_layer.agsl +6 −8 Original line number Diff line number Diff line Loading @@ -26,18 +26,16 @@ uniform half intensity; #include "shaders/rain_constants.agsl" vec4 main(float2 fragCoord) { // 0. Add a bit of noise so that the droplets are not perfect circles. fragCoord += vec2(valueNoise(fragCoord) * 0.015 - 0.0025); float2 uv = fragCoord / screenSize; // 0. Calculate UV and add a bit of noise so that the droplets are not perfect circles. float2 uv = vec2(valueNoise(fragCoord) * 0.015 - 0.0025) + fragCoord / screenSize; // 1. Generate small glass rain. GlassRain smallDrippingRain = generateGlassRain( uv, screenAspectRatio, time, time * 0.7, /* Grid size = */ vec2(4.0, 2.0), intensity); intensity * 0.6); float dropMask = smallDrippingRain.dropMask; float droppletsMask = smallDrippingRain.droppletsMask; float trailMask = smallDrippingRain.trailMask; Loading @@ -48,9 +46,9 @@ vec4 main(float2 fragCoord) { GlassRain medDrippingRain = generateGlassRain( uv, screenAspectRatio, time * 1.267, time * 0.8869, /* Grid size = */ vec2(3.5, 1.5), intensity); intensity * 0.6); // 3. Combine those two glass rains. dropMask = max(medDrippingRain.dropMask, dropMask); Loading weathereffects/graphics/assets/shaders/rain_shower_layer.agsl +4 −4 Original line number Diff line number Diff line Loading @@ -91,11 +91,11 @@ vec4 main(float2 fragCoord) { // Add rotation for the rain (as a default sin(time * 0.05) can be used). float variation = wiggle(time - uv.y * 1.1, 0.10); uv = rotateAroundPoint(uv, vec2(0.5, -1.42), variation * PI / 9.); vec2 uvRot = rotateAroundPoint(uv, vec2(0.5, -1.42), variation * PI / 9.); // 1. Generate a layer of rain behind the subject. Rain rain = generateRain( uv, uvRot, screenAspectRatio, time * 18., /* Grid size = */ vec2(20.0, 2.0), Loading @@ -105,7 +105,7 @@ vec4 main(float2 fragCoord) { // 2. Generate mid layer of rain behind the subject. rain = generateRain( uv, uvRot, screenAspectRatio, time * 21.4, /* Grid size = */ vec2(30.0, 4.0), Loading @@ -122,7 +122,7 @@ vec4 main(float2 fragCoord) { // 6. Generate a layer of rain in front of the subject (bigger and faster). rain = generateRain( uv, uvRot, screenAspectRatio, time * 27., /* Grid size = */ vec2(8.0, 3.0), Loading weathereffects/graphics/assets/shaders/rain_splash.agsl +3 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,9 @@ */ float drawSplash(vec2 cellUv, float cellTime) { /** 0. Adjust UV and time. */ cellUv = cellUv * 0.5; cellUv += 0.1; cellUv *= 0.5; // Moves drop a little bit down on the its grid cell. cellUv.y += 0.15; float t = 0.408 + cellTime * 4.; /** 1. Start of drawing a splash */ Loading weathereffects/graphics/src/main/java/com/google/android/wallpaper/weathereffects/graphics/rain/RainEffect.kt +2 −2 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ class RainEffect( elapsedTime += deltaMillis * MILLIS_TO_SECONDS rainConfig.rainShowerShader.setFloatUniform("time", elapsedTime) rainConfig.glassRainShader.setFloatUniform("time", elapsedTime * 0.7f) rainConfig.glassRainShader.setFloatUniform("time", elapsedTime) rainConfig.glassRainShader.setInputShader("texture", rainConfig.rainShowerShader) rainConfig.colorGradingShader.setInputShader("texture", rainConfig.glassRainShader) Loading @@ -85,7 +85,7 @@ class RainEffect( override fun setIntensity(intensity: Float) { rainConfig.rainShowerShader.setFloatUniform("intensity", intensity) rainConfig.glassRainShader.setFloatUniform("intensity", intensity * 0.6f) rainConfig.glassRainShader.setFloatUniform("intensity", intensity) rainConfig.colorGradingShader.setFloatUniform( "intensity", rainConfig.colorGradingIntensity * intensity Loading Loading
weathereffects/graphics/assets/shaders/rain_glass_layer.agsl +6 −8 Original line number Diff line number Diff line Loading @@ -26,18 +26,16 @@ uniform half intensity; #include "shaders/rain_constants.agsl" vec4 main(float2 fragCoord) { // 0. Add a bit of noise so that the droplets are not perfect circles. fragCoord += vec2(valueNoise(fragCoord) * 0.015 - 0.0025); float2 uv = fragCoord / screenSize; // 0. Calculate UV and add a bit of noise so that the droplets are not perfect circles. float2 uv = vec2(valueNoise(fragCoord) * 0.015 - 0.0025) + fragCoord / screenSize; // 1. Generate small glass rain. GlassRain smallDrippingRain = generateGlassRain( uv, screenAspectRatio, time, time * 0.7, /* Grid size = */ vec2(4.0, 2.0), intensity); intensity * 0.6); float dropMask = smallDrippingRain.dropMask; float droppletsMask = smallDrippingRain.droppletsMask; float trailMask = smallDrippingRain.trailMask; Loading @@ -48,9 +46,9 @@ vec4 main(float2 fragCoord) { GlassRain medDrippingRain = generateGlassRain( uv, screenAspectRatio, time * 1.267, time * 0.8869, /* Grid size = */ vec2(3.5, 1.5), intensity); intensity * 0.6); // 3. Combine those two glass rains. dropMask = max(medDrippingRain.dropMask, dropMask); Loading
weathereffects/graphics/assets/shaders/rain_shower_layer.agsl +4 −4 Original line number Diff line number Diff line Loading @@ -91,11 +91,11 @@ vec4 main(float2 fragCoord) { // Add rotation for the rain (as a default sin(time * 0.05) can be used). float variation = wiggle(time - uv.y * 1.1, 0.10); uv = rotateAroundPoint(uv, vec2(0.5, -1.42), variation * PI / 9.); vec2 uvRot = rotateAroundPoint(uv, vec2(0.5, -1.42), variation * PI / 9.); // 1. Generate a layer of rain behind the subject. Rain rain = generateRain( uv, uvRot, screenAspectRatio, time * 18., /* Grid size = */ vec2(20.0, 2.0), Loading @@ -105,7 +105,7 @@ vec4 main(float2 fragCoord) { // 2. Generate mid layer of rain behind the subject. rain = generateRain( uv, uvRot, screenAspectRatio, time * 21.4, /* Grid size = */ vec2(30.0, 4.0), Loading @@ -122,7 +122,7 @@ vec4 main(float2 fragCoord) { // 6. Generate a layer of rain in front of the subject (bigger and faster). rain = generateRain( uv, uvRot, screenAspectRatio, time * 27., /* Grid size = */ vec2(8.0, 3.0), Loading
weathereffects/graphics/assets/shaders/rain_splash.agsl +3 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,9 @@ */ float drawSplash(vec2 cellUv, float cellTime) { /** 0. Adjust UV and time. */ cellUv = cellUv * 0.5; cellUv += 0.1; cellUv *= 0.5; // Moves drop a little bit down on the its grid cell. cellUv.y += 0.15; float t = 0.408 + cellTime * 4.; /** 1. Start of drawing a splash */ Loading
weathereffects/graphics/src/main/java/com/google/android/wallpaper/weathereffects/graphics/rain/RainEffect.kt +2 −2 Original line number Diff line number Diff line Loading @@ -64,7 +64,7 @@ class RainEffect( elapsedTime += deltaMillis * MILLIS_TO_SECONDS rainConfig.rainShowerShader.setFloatUniform("time", elapsedTime) rainConfig.glassRainShader.setFloatUniform("time", elapsedTime * 0.7f) rainConfig.glassRainShader.setFloatUniform("time", elapsedTime) rainConfig.glassRainShader.setInputShader("texture", rainConfig.rainShowerShader) rainConfig.colorGradingShader.setInputShader("texture", rainConfig.glassRainShader) Loading @@ -85,7 +85,7 @@ class RainEffect( override fun setIntensity(intensity: Float) { rainConfig.rainShowerShader.setFloatUniform("intensity", intensity) rainConfig.glassRainShader.setFloatUniform("intensity", intensity * 0.6f) rainConfig.glassRainShader.setFloatUniform("intensity", intensity) rainConfig.colorGradingShader.setFloatUniform( "intensity", rainConfig.colorGradingIntensity * intensity Loading