Loading .gitignore 0 → 100644 +1 −0 Original line number Diff line number Diff line /weathereffects/graphics/build/ weathereffects/graphics/assets/shaders/fog_effect.agsl +8 −9 Original line number Diff line number Diff line Loading @@ -20,15 +20,13 @@ uniform shader fog; uniform shader clouds; uniform half2 fogSize; uniform half2 cloudsSize; uniform float2 uvOffsetFgd; uniform float2 uvScaleFgd; uniform float2 uvOffsetBgd; uniform float2 uvScaleBgd; uniform half4 time; uniform half screenAspectRatio; uniform half2 screenSize; uniform half pixelDensity; uniform half intensity; uniform mat3 transformMatrixFgd; uniform mat3 transformMatrixBgd; #include "shaders/constants.agsl" #include "shaders/utils.agsl" Loading @@ -37,9 +35,6 @@ uniform half intensity; const vec3 fogColor = vec3(0.20); vec4 main(float2 fragCoord) { float2 uv = fragCoord / screenSize; uv.y /= screenAspectRatio; vec2 timeForeground = vec2(time.x, time.y); vec2 timeBackground = vec2(time.z, time.w); Loading @@ -52,12 +47,16 @@ vec4 main(float2 fragCoord) { * - fgdFogFar (layer 1) / fgdFogClose (layer 2) */ float2 fgdCoord = transformPoint(transformMatrixFgd, fragCoord); float2 bgdCoord = transformPoint(transformMatrixBgd, fragCoord); float2 uv = bgdCoord / screenSize; uv.y /= screenAspectRatio; // Load foreground and blend it with constant solid fog color. vec4 fgd = foreground.eval(fragCoord * uvScaleFgd + uvOffsetFgd); vec4 fgd = foreground.eval(fgdCoord); fgd.rgb = mix(fgd.rgb, fogColor, 0.15 * intensity * fgd.a); // Load background and blend it with constant solid fog color. vec4 bgd = background.eval(fragCoord * uvScaleBgd + uvOffsetBgd); vec4 bgd = background.eval(bgdCoord); bgd.rgb = mix(bgd.rgb, fogColor, 0.32 * intensity * bgd.a); /* Add first layer: background. */ Loading weathereffects/graphics/assets/shaders/rain_shower_layer.agsl +8 −10 Original line number Diff line number Diff line Loading @@ -17,15 +17,13 @@ uniform shader foreground; uniform shader background; uniform shader outlineBuffer; uniform float2 uvOffsetFgd; uniform float2 uvScaleFgd; uniform float2 uvOffsetBgd; uniform float2 uvScaleBgd; uniform float time; uniform float screenAspectRatio; uniform float gridScale; uniform float2 screenSize; uniform half intensity; uniform mat3 transformMatrixFgd; uniform mat3 transformMatrixBgd; #include "shaders/constants.agsl" #include "shaders/utils.agsl" Loading Loading @@ -57,7 +55,7 @@ vec3 drawSplashes(vec2 uv, vec2 fragCoord, vec3 color) { vec2 pixUv = cellUv; pixUv.x *= -1; vec2 pixDistance = screenSize * pixUv / gridSize; float2 uvTextureFgd = (fragCoord + pixDistance) * uvScaleFgd + uvOffsetFgd; float2 uvTextureFgd = transformPoint(transformMatrixFgd, fragCoord + pixDistance); float outline = step(0.1, outlineBuffer.eval(uvTextureFgd).r); if (outline < 0.1) { Loading @@ -81,11 +79,11 @@ vec3 drawSplashes(vec2 uv, vec2 fragCoord, vec3 color) { } vec4 main(float2 fragCoord) { float2 uv = fragCoord / screenSize; // Adjusts the UVs to have the expected rect of the image. float2 uvTextureFgd = fragCoord * uvScaleFgd + uvOffsetFgd; float2 uvTextureBgd = fragCoord * uvScaleBgd + uvOffsetBgd; // Apply transform matrix to fragCoord float2 uvTextureFgd = transformPoint(transformMatrixFgd, fragCoord); float2 uvTextureBgd = transformPoint(transformMatrixBgd, fragCoord); // Calculate uv for snow based on transformed coordinates float2 uv = uvTextureFgd / screenSize; vec4 colorForeground = foreground.eval(uvTextureFgd); vec4 color = background.eval(uvTextureBgd); Loading weathereffects/graphics/assets/shaders/snow_effect.agsl +11 −11 Original line number Diff line number Diff line Loading @@ -18,14 +18,12 @@ uniform shader foreground; uniform shader background; uniform shader accumulatedSnow; uniform shader noise; uniform float2 uvOffsetFgd; uniform float2 uvScaleFgd; uniform float2 uvOffsetBgd; uniform float2 uvScaleBgd; uniform float2 gridSize; uniform float time; uniform float screenAspectRatio; uniform float2 screenSize; uniform mat3 transformMatrixFgd; uniform mat3 transformMatrixBgd; #include "shaders/constants.agsl" #include "shaders/utils.agsl" Loading @@ -42,9 +40,6 @@ const float midSnowLayerIndex = 3; const float closestSnowLayerIndex = 0; vec4 main(float2 fragCoord) { float2 uv = fragCoord / screenSize; float2 uvAdjusted = vec2(uv.x, uv.y / screenAspectRatio); /** * The effect is consisted of 2 image textures (foreground and background) + 10 layers of * snow + 1 layer of snow accumulation. Below describes the rendering order (back to front): Loading @@ -55,11 +50,16 @@ vec4 main(float2 fragCoord) { * 5. Foreground snow layers (from mid layer to closest layer) */ // Adjusts the UVs to have the expected rect of the image. float2 adjustedUvForeground = fragCoord * uvScaleFgd + uvOffsetFgd; vec4 colorForeground = foreground.eval(adjustedUvForeground); vec4 colorBackground = background.eval(fragCoord * uvScaleBgd + uvOffsetBgd); // Apply transform matrix to fragCoord float2 adjustedUvForeground = transformPoint(transformMatrixFgd, fragCoord); float2 adjustedUvBackground = transformPoint(transformMatrixBgd, fragCoord); // Calculate uv for snow based on transformed coordinates float2 uv = adjustedUvBackground / screenSize; float2 uvAdjusted = vec2(uv.x, uv.y / screenAspectRatio); vec4 colorForeground = foreground.eval(adjustedUvForeground); vec4 colorBackground = background.eval(adjustedUvBackground); // 1. Draw background. vec4 color = colorBackground; Loading weathereffects/graphics/assets/shaders/sun_effect.agsl +11 −7 Original line number Diff line number Diff line Loading @@ -16,14 +16,13 @@ uniform shader foreground; uniform shader background; uniform float2 uvOffsetFgd; uniform float2 uvScaleFgd; uniform float2 uvOffsetBgd; uniform float2 uvScaleBgd; uniform float screenAspectRatio; uniform float2 screenSize; uniform float time; uniform float intensity; uniform mat3 transformMatrixFgd; uniform mat3 transformMatrixBgd; #include "shaders/constants.agsl" #include "shaders/utils.agsl" Loading @@ -32,11 +31,16 @@ uniform float intensity; #include "shaders/lens_flare.agsl" vec4 main(float2 fragCoord) { float2 uv = fragCoord / screenSize; // Apply transform matrix to fragCoord float2 adjustedUvForeground = transformPoint(transformMatrixFgd, fragCoord); float2 adjustedUvBackground = transformPoint(transformMatrixBgd, fragCoord); float2 uv = adjustedUvBackground / screenSize; uv.y /= screenAspectRatio; vec4 colorForeground = foreground.eval(fragCoord * uvScaleFgd + uvOffsetFgd); vec4 color = background.eval(fragCoord * uvScaleBgd + uvOffsetBgd); vec4 colorForeground = foreground.eval(adjustedUvForeground); vec4 color = background.eval(adjustedUvBackground); // TODO(b/347299395): to add flare and sun effect background Loading Loading
.gitignore 0 → 100644 +1 −0 Original line number Diff line number Diff line /weathereffects/graphics/build/
weathereffects/graphics/assets/shaders/fog_effect.agsl +8 −9 Original line number Diff line number Diff line Loading @@ -20,15 +20,13 @@ uniform shader fog; uniform shader clouds; uniform half2 fogSize; uniform half2 cloudsSize; uniform float2 uvOffsetFgd; uniform float2 uvScaleFgd; uniform float2 uvOffsetBgd; uniform float2 uvScaleBgd; uniform half4 time; uniform half screenAspectRatio; uniform half2 screenSize; uniform half pixelDensity; uniform half intensity; uniform mat3 transformMatrixFgd; uniform mat3 transformMatrixBgd; #include "shaders/constants.agsl" #include "shaders/utils.agsl" Loading @@ -37,9 +35,6 @@ uniform half intensity; const vec3 fogColor = vec3(0.20); vec4 main(float2 fragCoord) { float2 uv = fragCoord / screenSize; uv.y /= screenAspectRatio; vec2 timeForeground = vec2(time.x, time.y); vec2 timeBackground = vec2(time.z, time.w); Loading @@ -52,12 +47,16 @@ vec4 main(float2 fragCoord) { * - fgdFogFar (layer 1) / fgdFogClose (layer 2) */ float2 fgdCoord = transformPoint(transformMatrixFgd, fragCoord); float2 bgdCoord = transformPoint(transformMatrixBgd, fragCoord); float2 uv = bgdCoord / screenSize; uv.y /= screenAspectRatio; // Load foreground and blend it with constant solid fog color. vec4 fgd = foreground.eval(fragCoord * uvScaleFgd + uvOffsetFgd); vec4 fgd = foreground.eval(fgdCoord); fgd.rgb = mix(fgd.rgb, fogColor, 0.15 * intensity * fgd.a); // Load background and blend it with constant solid fog color. vec4 bgd = background.eval(fragCoord * uvScaleBgd + uvOffsetBgd); vec4 bgd = background.eval(bgdCoord); bgd.rgb = mix(bgd.rgb, fogColor, 0.32 * intensity * bgd.a); /* Add first layer: background. */ Loading
weathereffects/graphics/assets/shaders/rain_shower_layer.agsl +8 −10 Original line number Diff line number Diff line Loading @@ -17,15 +17,13 @@ uniform shader foreground; uniform shader background; uniform shader outlineBuffer; uniform float2 uvOffsetFgd; uniform float2 uvScaleFgd; uniform float2 uvOffsetBgd; uniform float2 uvScaleBgd; uniform float time; uniform float screenAspectRatio; uniform float gridScale; uniform float2 screenSize; uniform half intensity; uniform mat3 transformMatrixFgd; uniform mat3 transformMatrixBgd; #include "shaders/constants.agsl" #include "shaders/utils.agsl" Loading Loading @@ -57,7 +55,7 @@ vec3 drawSplashes(vec2 uv, vec2 fragCoord, vec3 color) { vec2 pixUv = cellUv; pixUv.x *= -1; vec2 pixDistance = screenSize * pixUv / gridSize; float2 uvTextureFgd = (fragCoord + pixDistance) * uvScaleFgd + uvOffsetFgd; float2 uvTextureFgd = transformPoint(transformMatrixFgd, fragCoord + pixDistance); float outline = step(0.1, outlineBuffer.eval(uvTextureFgd).r); if (outline < 0.1) { Loading @@ -81,11 +79,11 @@ vec3 drawSplashes(vec2 uv, vec2 fragCoord, vec3 color) { } vec4 main(float2 fragCoord) { float2 uv = fragCoord / screenSize; // Adjusts the UVs to have the expected rect of the image. float2 uvTextureFgd = fragCoord * uvScaleFgd + uvOffsetFgd; float2 uvTextureBgd = fragCoord * uvScaleBgd + uvOffsetBgd; // Apply transform matrix to fragCoord float2 uvTextureFgd = transformPoint(transformMatrixFgd, fragCoord); float2 uvTextureBgd = transformPoint(transformMatrixBgd, fragCoord); // Calculate uv for snow based on transformed coordinates float2 uv = uvTextureFgd / screenSize; vec4 colorForeground = foreground.eval(uvTextureFgd); vec4 color = background.eval(uvTextureBgd); Loading
weathereffects/graphics/assets/shaders/snow_effect.agsl +11 −11 Original line number Diff line number Diff line Loading @@ -18,14 +18,12 @@ uniform shader foreground; uniform shader background; uniform shader accumulatedSnow; uniform shader noise; uniform float2 uvOffsetFgd; uniform float2 uvScaleFgd; uniform float2 uvOffsetBgd; uniform float2 uvScaleBgd; uniform float2 gridSize; uniform float time; uniform float screenAspectRatio; uniform float2 screenSize; uniform mat3 transformMatrixFgd; uniform mat3 transformMatrixBgd; #include "shaders/constants.agsl" #include "shaders/utils.agsl" Loading @@ -42,9 +40,6 @@ const float midSnowLayerIndex = 3; const float closestSnowLayerIndex = 0; vec4 main(float2 fragCoord) { float2 uv = fragCoord / screenSize; float2 uvAdjusted = vec2(uv.x, uv.y / screenAspectRatio); /** * The effect is consisted of 2 image textures (foreground and background) + 10 layers of * snow + 1 layer of snow accumulation. Below describes the rendering order (back to front): Loading @@ -55,11 +50,16 @@ vec4 main(float2 fragCoord) { * 5. Foreground snow layers (from mid layer to closest layer) */ // Adjusts the UVs to have the expected rect of the image. float2 adjustedUvForeground = fragCoord * uvScaleFgd + uvOffsetFgd; vec4 colorForeground = foreground.eval(adjustedUvForeground); vec4 colorBackground = background.eval(fragCoord * uvScaleBgd + uvOffsetBgd); // Apply transform matrix to fragCoord float2 adjustedUvForeground = transformPoint(transformMatrixFgd, fragCoord); float2 adjustedUvBackground = transformPoint(transformMatrixBgd, fragCoord); // Calculate uv for snow based on transformed coordinates float2 uv = adjustedUvBackground / screenSize; float2 uvAdjusted = vec2(uv.x, uv.y / screenAspectRatio); vec4 colorForeground = foreground.eval(adjustedUvForeground); vec4 colorBackground = background.eval(adjustedUvBackground); // 1. Draw background. vec4 color = colorBackground; Loading
weathereffects/graphics/assets/shaders/sun_effect.agsl +11 −7 Original line number Diff line number Diff line Loading @@ -16,14 +16,13 @@ uniform shader foreground; uniform shader background; uniform float2 uvOffsetFgd; uniform float2 uvScaleFgd; uniform float2 uvOffsetBgd; uniform float2 uvScaleBgd; uniform float screenAspectRatio; uniform float2 screenSize; uniform float time; uniform float intensity; uniform mat3 transformMatrixFgd; uniform mat3 transformMatrixBgd; #include "shaders/constants.agsl" #include "shaders/utils.agsl" Loading @@ -32,11 +31,16 @@ uniform float intensity; #include "shaders/lens_flare.agsl" vec4 main(float2 fragCoord) { float2 uv = fragCoord / screenSize; // Apply transform matrix to fragCoord float2 adjustedUvForeground = transformPoint(transformMatrixFgd, fragCoord); float2 adjustedUvBackground = transformPoint(transformMatrixBgd, fragCoord); float2 uv = adjustedUvBackground / screenSize; uv.y /= screenAspectRatio; vec4 colorForeground = foreground.eval(fragCoord * uvScaleFgd + uvOffsetFgd); vec4 color = background.eval(fragCoord * uvScaleBgd + uvOffsetBgd); vec4 colorForeground = foreground.eval(adjustedUvForeground); vec4 color = background.eval(adjustedUvBackground); // TODO(b/347299395): to add flare and sun effect background Loading