Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/shaders/glsl/water_high.fs
Show First 20 Lines • Show All 313 Lines • ▼ Show 20 Lines | |||||
#if USE_SHADOWS_ON_WATER && USE_SHADOW | #if USE_SHADOWS_ON_WATER && USE_SHADOW | ||||
color += shadow*specular; | color += shadow*specular; | ||||
#else | #else | ||||
color += specular; | color += specular; | ||||
#endif | #endif | ||||
#if USE_FOG | #if USE_FOG | ||||
color = get_fog(color); | color = get_fog(color); | ||||
#endif | #endif | ||||
#if USE_FANCY_EFFECTS | #if USE_FANCY_EFFECTS | ||||
vec4 FoamEffects = texture2D(waterEffectsTexOther, gl_FragCoord.xy/screenSize); | vec4 FoamEffects = texture2D(waterEffectsTexOther, gl_FragCoord.xy/screenSize); | ||||
vec3 foam1 = texture2D(normalMap, (normalCoords.st + normalCoords.zw * BigMovement*waviness/10.0) * (baseScale - waviness/wavyEffect)).aaa; | vec3 foam1 = texture2D(normalMap, (normalCoords.st + normalCoords.zw * BigMovement*waviness/10.0) * (baseScale - waviness/wavyEffect)).aaa; | ||||
vec3 foam2 = texture2D(normalMap2, (normalCoords.st + normalCoords.zw * BigMovement*waviness/10.0) * (baseScale - waviness/wavyEffect)).aaa; | vec3 foam2 = texture2D(normalMap2, (normalCoords.st + normalCoords.zw * BigMovement*waviness/10.0) * (baseScale - waviness/wavyEffect)).aaa; | ||||
vec3 foam3 = texture2D(normalMap, normalCoords.st/6.0 - normalCoords.zw * 0.02).aaa; | vec3 foam3 = texture2D(normalMap, normalCoords.st/6.0 - normalCoords.zw * 0.02).aaa; | ||||
vec3 foam4 = texture2D(normalMap2, normalCoords.st/6.0 - normalCoords.zw * 0.02).aaa; | vec3 foam4 = texture2D(normalMap2, normalCoords.st/6.0 - normalCoords.zw * 0.02).aaa; | ||||
vec3 foaminterp = mix(foam1, foam2, moddedTime); | vec3 foaminterp = mix(foam1, foam2, moddedTime); | ||||
foaminterp *= mix(foam3, foam4, moddedTime); | foaminterp *= mix(foam3, foam4, moddedTime); | ||||
foam1.x = foaminterp.x * WindCosSin.x - foaminterp.z * WindCosSin.y; | foam1.x = abs(foaminterp.x * WindCosSin.x) + abs(foaminterp.z * WindCosSin.y); | ||||
color += FoamEffects.r * FoamEffects.a * 0.4 + pow(foam1.x * (5.0 + waviness), 2.6 - waviness / 5.5); | color += FoamEffects.r * FoamEffects.a * 0.4 + pow(foam1.x * (3.0 + waviness), 2.6 - waviness / 5.5); | ||||
#endif | #endif | ||||
float alpha = 1.0; | float alpha = 1.0; | ||||
#if !USE_REFRACTION | #if !USE_REFRACTION | ||||
alpha = 1.4 - extFact; | alpha = 1.4 - extFact; | ||||
#endif | #endif | ||||
#if USE_FANCY_EFFECTS | #if USE_FANCY_EFFECTS | ||||
if (fancyeffects.a < 0.05 && waterDepth < -1.0 ) | if (fancyeffects.a < 0.05 && waterDepth < -1.0 ) | ||||
alpha = 0.0; | alpha = 0.0; | ||||
#endif | #endif | ||||
gl_FragColor = vec4(color * losMod, alpha); | gl_FragColor = vec4(color * losMod, alpha); | ||||
} | } |
Wildfire Games · Phabricator