Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
215019b
before switching noise to textures
Sep 8, 2024
800af47
style: 🎨 apply clang-format changes
ThePagi Sep 8, 2024
7b148c4
basic texture use
Sep 8, 2024
1300316
Merge branch 'snow' of https://github.com/ThePagi/skyrim-community-sh…
Sep 8, 2024
0fe99a8
style: 🎨 apply clang-format changes
ThePagi Sep 8, 2024
0315a85
Merge branch 'snow' of https://github.com/ThePagi/skyrim-community-sh…
Sep 8, 2024
055d4f6
buffer fixes
Sep 8, 2024
7b4e721
style: 🎨 apply clang-format changes
ThePagi Sep 8, 2024
6832302
Merge branch 'dev' into snow
Sep 8, 2024
c52f1ca
working basic seasons and lod snow, first test
Sep 9, 2024
8c0ae29
style: 🎨 apply clang-format changes
ThePagi Sep 9, 2024
64f01ad
fade out near water
Sep 9, 2024
8225953
Merge branch 'snow' of https://github.com/ThePagi/skyrim-community-sh…
Sep 9, 2024
e130380
style: 🎨 apply clang-format changes
ThePagi Sep 9, 2024
923f76e
fix distant seams due to parallax
Sep 10, 2024
fd8105c
Merge branch 'snow' of https://github.com/ThePagi/skyrim-community-sh…
Sep 10, 2024
09e6ffc
style: 🎨 apply clang-format changes
ThePagi Sep 10, 2024
f91f6cd
Merge branch 'dev' into snow
Sep 14, 2024
55dac40
fix FeatureBuffer includes
Sep 14, 2024
ec706b0
fix removed directionaldiffuse
Sep 14, 2024
4097928
reorder buffers, didnt help
Sep 14, 2024
e7bbd5d
pad wetness, move snow buffer to the beginning
Sep 15, 2024
99db316
buffer order, lod land noise, lod land blend, lights remove snow
Sep 15, 2024
8a47c9f
style: 🎨 apply clang-format changes
ThePagi Sep 15, 2024
500d608
make more gradual blending
Sep 19, 2024
6640fe5
style: 🎨 apply clang-format changes
ThePagi Sep 19, 2024
8308d1a
Merge commit '6640fe5dfe09a4304342005a6193562993b72916' into dev
Feb 23, 2025
418c4bf
style: 🎨 apply clang-format changes
ThePagi Feb 23, 2025
adb0758
merge fixes
Feb 23, 2025
f491dc1
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
Feb 23, 2025
200c08d
style: 🎨 apply clang-format changes
ThePagi Feb 23, 2025
4248c54
commonlib call fix
Feb 23, 2025
b1b5c45
Merge remote-tracking branch 'refs/remotes/origin/snow2' into snow2
Feb 23, 2025
0fc47a8
style: 🎨 apply clang-format changes
ThePagi Feb 23, 2025
4cb5714
fixed merge
ThePagi Feb 25, 2025
4e73185
style: 🎨 apply clang-format changes
ThePagi Feb 25, 2025
c94d021
basic snow is back
ThePagi Feb 26, 2025
4e37ad1
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
ThePagi Feb 26, 2025
6388e2e
style: 🎨 apply clang-format changes
ThePagi Feb 26, 2025
a6bcc28
flag movable objects
ThePagi Feb 27, 2025
a83ccb1
style: 🎨 apply clang-format changes
ThePagi Feb 27, 2025
8e27ed7
missing namespace
ThePagi Feb 28, 2025
2dd2ec4
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
ThePagi Feb 28, 2025
7b83c62
Merge branch 'dev' into snow2
Mar 14, 2025
a287f25
style: 🎨 apply clang-format changes
ThePagi Mar 14, 2025
49b9bbb
fixes
Mar 15, 2025
6b617d0
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
Mar 15, 2025
630cff5
style: 🎨 apply clang-format changes
ThePagi Mar 15, 2025
e901bcd
save load configs, snow and ice
Mar 16, 2025
7cf4ed0
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
Mar 16, 2025
e35a48d
style: 🎨 apply clang-format changes
ThePagi Mar 16, 2025
8360695
fixes
Mar 16, 2025
b8c62da
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
Mar 16, 2025
1aa79dd
style: 🎨 apply clang-format changes
ThePagi Mar 16, 2025
a519e53
yes
Mar 22, 2025
122c9a4
style: 🎨 apply clang-format changes
ThePagi Mar 22, 2025
fba4e66
feat: terrain helper
hakasapl Mar 26, 2025
06ff00b
fix (terrain helper): nullptr checks
hakasapl Mar 27, 2025
8489aee
Merge branch 'dev' into feat-terrainhelper
hakasapl Mar 27, 2025
e82fba4
feat(terrain helper): Removed terrain helper from menu
hakasapl Mar 27, 2025
8abbfa0
fix(Terrain Helper): ExtraFeatureDescriptor not updating when changed
hakasapl Mar 27, 2025
4c1aa0b
fix (Terrain Helper): some default landscape tiles not being replaced
hakasapl Mar 28, 2025
2c8567b
Merge branch 'doodlum:dev' into feat-terrainhelper
hakasapl Apr 16, 2025
ac9a3e0
feat(terrain helper): Added unload messages and mod link
hakasapl Apr 16, 2025
6c9d0e8
fix(terrain helper): no longer call spdlog directly
hakasapl Apr 16, 2025
801b07c
fix case when interior has worldspace too
Apr 18, 2025
0da723b
style: 🎨 apply clang-format changes
ThePagi Apr 18, 2025
ab91205
Merge branch 'dev' of https://github.com/ThePagi/skyrim-community-sha…
Apr 18, 2025
6627081
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
Apr 18, 2025
53144b0
style: 🎨 apply clang-format changes
ThePagi Apr 18, 2025
f5995c6
weather improvements
Apr 20, 2025
b7c719f
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
Apr 20, 2025
23d9e8f
style: 🎨 apply clang-format changes
ThePagi Apr 20, 2025
bf4ad5a
Merge branch 'dev' into snow2
Apr 21, 2025
3958294
Revert "Merge branch 'dev' into snow2"
Apr 21, 2025
bed5c1a
Merge branch 'dev' into snow2
Apr 21, 2025
7ef5357
forgor
May 5, 2025
37d550b
style: 🎨 apply clang-format changes
ThePagi May 5, 2025
05d2833
better rain behavior, nicer grass and tree lod
May 6, 2025
9ff2a59
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
May 6, 2025
490769d
style: 🎨 apply clang-format changes
ThePagi May 6, 2025
ff199a6
spec, nicer grass and tree lod
May 10, 2025
282cf9d
style: 🎨 apply clang-format changes
ThePagi May 10, 2025
3cd6343
Merge branch 'dev' into snow2
May 10, 2025
79cb5d6
small cleanup
May 11, 2025
f932f27
style: 🎨 apply clang-format changes
ThePagi May 11, 2025
14a4421
weather bug fixes
Jul 14, 2025
cd720dd
style: 🎨 apply clang-format changes
ThePagi Jul 14, 2025
831027a
Merge branch 'dev' into snow
Jul 14, 2025
c2fdcf6
update submodule smh
Jul 14, 2025
5b35768
change overlapping buffer indices to t38-t43
Jul 14, 2025
555e185
fixes, black/whitelist by formid
Jul 15, 2025
b99ef66
Merge branch 'dev' into snow2
Jul 18, 2025
d4c1cb3
blacklist based on trishape name
Jul 30, 2025
9b03ef4
Merge branch 'dev' into snow2
Jul 30, 2025
e8165e9
Update FeatureBuffer.cpp
ThePagi Jul 30, 2025
2f310b2
update commonlib
Jul 30, 2025
687dc8e
fix regressions from merge
Jul 30, 2025
dac0fd7
comments in white/blacklist
Jul 31, 2025
29b5c4f
fix nonpbr land
Jul 31, 2025
07a40a9
fix fix
Jul 31, 2025
94cb7fe
fix land decals, add constant term to plane
Aug 2, 2025
3c9d477
use height offset texture instead of curved plane
Aug 2, 2025
541e713
add configs and offset texture, fix object lod trees and foliage hue
Aug 4, 2025
6a9aa61
Merge branch 'dev' into snow2
Aug 4, 2025
c0f2ec4
default values match included config, better tree lod detectionL
Aug 4, 2025
6c0e4fc
fix animobject filter, desaturate foliage more
Aug 5, 2025
4dcaa32
style: 🎨 apply pre-commit.ci formatting
pre-commit-ci[bot] Aug 5, 2025
029a2bf
Remove duplicated define
ThePagi Aug 5, 2025
bcb9594
Add missing var to serialization
ThePagi Aug 5, 2025
b9f0896
Add missing exception ref
ThePagi Aug 5, 2025
eba5976
Static cast instead of c-style
ThePagi Aug 5, 2025
c39c757
Remove useless try catch
ThePagi Aug 5, 2025
ea944a2
style: 🎨 apply pre-commit.ci formatting
pre-commit-ci[bot] Aug 5, 2025
49546f0
add missing parentheses, nicer alt texture branching
Aug 5, 2025
6e4af2e
fix hlsl warnings
Aug 5, 2025
c5db831
better path handling, get cell id instead of translated name
Aug 11, 2025
f53d241
tiny fallback snow textures, better skylighting cover
Aug 11, 2025
7a0bf90
alphabetically sorted features (in code only) for your enjoyment
Aug 11, 2025
6bb54a2
better skylighting cover
Aug 11, 2025
6aa67e0
NoSnow Extra flag from 6 to 5
Aug 11, 2025
a990816
sort features in globals for consistency
Aug 12, 2025
2c6d127
move calculations to cpu, add constants for magic numbers
Sep 18, 2025
abfe08c
Merge remote-tracking branch 'origin/dev' into snow1
Sep 18, 2025
a8eb39e
style: 🎨 apply pre-commit.ci formatting
pre-commit-ci[bot] Sep 18, 2025
05f593a
fix merge
Sep 18, 2025
ac219b1
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
Sep 18, 2025
4e72bf9
another merge fix
Sep 18, 2025
d4e1b54
Merge branch 'dev' into snow2
Sep 18, 2025
bd4d3f0
fix black lod
Oct 1, 2025
417657d
Merge branch 'dev' into snow1
Oct 1, 2025
56ddd84
fix global name change
Oct 1, 2025
62db6fa
remove snow from havok objects
Oct 1, 2025
6ca58db
snow on havok
Oct 1, 2025
9f37ae2
style: 🎨 apply pre-commit.ci formatting
pre-commit-ci[bot] Oct 1, 2025
f1157fd
fixes for ai-found issues
Oct 2, 2025
4b84f13
Merge branch 'snow2' of https://github.com/ThePagi/skyrim-community-s…
Oct 2, 2025
68fd9d9
Remove obsolete comment
ThePagi Oct 2, 2025
0efdc3a
improve trees and lod trees, improve ao
Oct 4, 2025
3385c20
fix clamp function call, style issues, move hsv to Color
Oct 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions features/Snow Cover/Shaders/Features/SnowCover.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[Info]
Version = 1-0-0
31 changes: 31 additions & 0 deletions features/Snow Cover/Shaders/SnowCover/MarkarthWorld.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"AffectGrassTint": 1,
"AffectTreeTint": 0,
"AltSpec": 0.019999999552965164,
"AltTexture": "textures/pbr/landscape/frozenmarshice01",
"AltTint": [1.0, 1.0, 1.0, 0.6078431606292725],
"DensityRandomization": 2.0,
"MapZscale": 75000,
"BlendSmoothness": 5000,
"MapMax": [253952.0, -176128.0],
"MapMin": [-233472.0, 208896.0],
"MapTexture": "Shaders\\SnowCover\\Skyrim",
"FoliageHeightOffset": -3000.0,
"LogMicrofacetDensity": 33.0,
"MainSpec": 0.019999999552965164,
"MainTexture": "textures/pbr/landscape/snow01",
"MainTint": [1.0, 0.996880292892456, 0.996880292892456, 1.0],
"MaxAngle": 0.8130000233650208,
"MaxSummerMonth": 6,
"MaxWinterMonth": 0,
"MeltingSpeed": 1.0,
"MicrofacetRoughness": 0.15000000596046448,
"MinAngle": 0.22300000488758087,
"PeakAltAngle": 1.0,
"PeakMainAngle": 0.734000027179718,
"ScreenSpaceScale": 1.2000000476837158,
"SnowingSpeed": 1.0,
"UVScale": 1.0,
"WinterHeightOffset": -20000.0,
"SummerHeightOffset": 20000.0
}
31 changes: 31 additions & 0 deletions features/Snow Cover/Shaders/SnowCover/RiftenWorld.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"AffectGrassTint": 1,
"AffectTreeTint": 0,
"AltSpec": 0.019999999552965164,
"AltTexture": "textures/pbr/landscape/frozenmarshice01",
"AltTint": [1.0, 1.0, 1.0, 0.6078431606292725],
"DensityRandomization": 2.0,
"MapZscale": 75000,
"BlendSmoothness": 5000,
"MapMax": [253952.0, -176128.0],
"MapMin": [-233472.0, 208896.0],
"MapTexture": "Shaders\\SnowCover\\Skyrim",
"FoliageHeightOffset": -3000.0,
"LogMicrofacetDensity": 33.0,
"MainSpec": 0.019999999552965164,
"MainTexture": "textures/pbr/landscape/snow01",
"MainTint": [1.0, 0.996880292892456, 0.996880292892456, 1.0],
"MaxAngle": 0.8130000233650208,
"MaxSummerMonth": 6,
"MaxWinterMonth": 0,
"MeltingSpeed": 1.0,
"MicrofacetRoughness": 0.15000000596046448,
"MinAngle": 0.22300000488758087,
"PeakAltAngle": 1.0,
"PeakMainAngle": 0.734000027179718,
"ScreenSpaceScale": 1.2000000476837158,
"SnowingSpeed": 1.0,
"UVScale": 1.0,
"WinterHeightOffset": -20000.0,
"SummerHeightOffset": 20000.0
}
Binary file added features/Snow Cover/Shaders/SnowCover/Skyrim.dds
Binary file not shown.
179 changes: 179 additions & 0 deletions features/Snow Cover/Shaders/SnowCover/SnowCover.hlsli
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
#include "Common/Color.hlsli"
#include "Common/SharedData.hlsli"
#include "Common/Random.hlsli"
#if defined(PSHADER)

namespace SnowCover
{

Texture2D<float4> SnowAlbedo : register(t38);
Texture2D<float3> SnowNormal : register(t39);
Texture2D<float4> SnowRmaos : register(t40);
Texture2D<float4> IceAlbedo : register(t41);
Texture2D<float3> IceNormal : register(t42);
Texture2D<float4> IceRmaos : register(t43);
Texture2D<float> SnowMap : register(t44);

// https://blog.selfshadow.com/publications/blending-in-detail/
// for when s = (0,0,1)
float3 MyReorientNormal(float3 n1, float3 n2)
{
n1 += float3(0, 0, 1);
n2 *= float3(-1, -1, 1);

return n1 * dot(n1, n2) / n1.z - n2;
}





float GetHeightMult(float3 p)
{
float2 scale = SharedData::snowCoverSettings.mapScale;
float2 offset = SharedData::snowCoverSettings.mapOffset;
float2 uv = p.xy*scale + offset;
float height_tresh = p.z - SharedData::snowCoverSettings.SnowHeightOffset + (SnowMap.SampleLevel(SampColorSampler, uv, 0) - 0.5)*SharedData::snowCoverSettings.mapZscale;
return height_tresh;
}

float GetEnvironmentalMultiplier(float3 p)
{
return (GetHeightMult(p) + SharedData::snowCoverSettings.SeasonalAltitude) / SharedData::snowCoverSettings.BlendSmoothness;
}

void ApplyFoliageColor(inout float3 color, float env_mult)
{
float gmult = saturate(env_mult - SharedData::snowCoverSettings.FoliageHeightOffset / 5000);
float3 hsv = Color::RGBtoHSV(color);
if (hsv.x > 0.55)
hsv.x = frac(lerp(hsv.x, 1.1, gmult) * 2);
else
hsv.x = lerp(hsv.x, 0.1, gmult);
hsv.y *= lerp(1, 0.25, 4.0 * gmult * (1.0 - gmult));
color = Color::HSVtoRGB(hsv);
}

void ApplySnowFoliage(inout float3 color, float3 worldNormal, float3 p, float skylight, float viewDist)
{
float env_mult = GetEnvironmentalMultiplier(p);
float distMult = 1 - smoothstep(10000, 30000, viewDist);
float weatherMult = distMult * SharedData::snowCoverSettings.TimeSnowing * max(500, SharedData::snowCoverSettings.SnowingDensity) / 500;
float mult = SharedData::snowCoverSettings.MainTint.a * saturate(env_mult);
mult = skylight * saturate(mult + weatherMult) * smoothstep(SharedData::snowCoverSettings.minAngle, SharedData::snowCoverSettings.maxAngle, worldNormal.z);
# if defined(GRASS)
if (SharedData::snowCoverSettings.AffectGrassTint) {
# else
if (SharedData::snowCoverSettings.AffectTreeTint) {
# endif
ApplyFoliageColor(color, env_mult);
}
if (mult < 0.01)
return;
float2 uv = frac(SharedData::snowCoverSettings.UVScale * (p.xy + worldNormal.xy) / 100);
float3 diffuse = Color::TrueLinearToGamma(SnowAlbedo.Sample(SampColorSampler, uv).rgb) * SharedData::snowCoverSettings.MainTint.rgb * Color::PBRLightingScale;

color = lerp(color, diffuse, mult);
}

# if !defined(BASIC_SNOW_COVER)
float ApplySnowBase(float3 worldNormal, inout float2 uv, out bool alt, float disp, float3 p, float skylight, float waterDist, float viewDist)
{
// the range in which water level affects snow
waterDist = smoothstep(-64, 8, -waterDist - disp);
// distance from the camera in which weather has effect, this extends far beyond where lod starts
float weatherRange = 1 - smoothstep(20000, 40000 + 1000 * sin(p.z * 0.001 + cos(p.x * p.y * 0.001)), viewDist);
// the amount of snow based on weather, TimeSnowing transitions smoothly between -1 in rain and 1 when snowing
float weatherMult = weatherRange * pow(SharedData::snowCoverSettings.TimeSnowing, 3) * max(500, SharedData::snowCoverSettings.SnowingDensity) / 500;
weatherMult = clamp((weatherMult + disp * 0.1) * max(SharedData::snowCoverSettings.minAngle, worldNormal.z), -1, 1);
// the amount of snow based on season and weather
float env_mult = saturate(max(saturate(GetEnvironmentalMultiplier(p) + disp), weatherMult)) - waterDist;
# if !defined(LANDSCAPE) && !defined(LOD)
// removes pure white lod object billboard trees (ultra billboards) that have no special flags and are not marked as lod
float distMult = 1 - smoothstep(4096+2048,9192, viewDist)*0.5;
# else
float distMult = 1;
# endif
float mult = distMult * skylight * env_mult * smoothstep(SharedData::snowCoverSettings.minAngle, SharedData::snowCoverSettings.maxAngle, worldNormal.z);
if (mult < 0.001){
alt = false;
return 0;
}
float main_mult = (1 - abs(worldNormal.z - SharedData::snowCoverSettings.peakMainAngle)) + min(0, weatherMult) * SharedData::snowCoverSettings.minAngle;
float alt_mult = (1 - abs(worldNormal.z - SharedData::snowCoverSettings.peakAltAngle)) + sin(p.z * 0.01 + cos(p.x * p.y * 0.01) * 0.025) * 0.05;
alt = alt_mult > main_mult;
// apparently LOD landscape color sampler clamps uvs
uv = frac(SharedData::snowCoverSettings.UVScale * (p.xy / 100 + worldNormal.xy * disp));
return mult;
}

# if defined(TRUE_PBR)
PBR::SurfaceProperties ApplySnowPBR(inout float3 diffuse, inout float3 worldNormal, out float mult, float disp, float3 p, float skylight, float waterDist, float viewDist, PBR::SurfaceProperties prop, float2 uv)
{
bool alt;
mult = ApplySnowBase(worldNormal, uv, alt, disp, p, skylight, waterDist, viewDist);
if (mult <= 0.0)
return prop;
float4 rmaos;
if (alt){
rmaos = IceRmaos.Sample(SampColorSampler, uv);
float3 albedo = IceAlbedo.Sample(SampColorSampler, uv).rgb;
albedo = Color::Diffuse(albedo) * SharedData::snowCoverSettings.AltTint.rgb;
diffuse = lerp(diffuse, albedo, mult * SharedData::snowCoverSettings.AltTint.w);
worldNormal = TransformNormal(IceNormal.Sample(SampNormalSampler, uv).rgb);
prop.F0 = lerp(prop.F0, rmaos.w *SharedData::snowCoverSettings.altSpec, mult);

}
else{
rmaos = SnowRmaos.Sample(SampColorSampler, uv);
float3 albedo = SnowAlbedo.Sample(SampColorSampler, uv).rgb;
albedo = Color::Diffuse(albedo) * SharedData::snowCoverSettings.MainTint.rgb;
diffuse = lerp(diffuse, albedo, mult * SharedData::snowCoverSettings.MainTint.w);
worldNormal = TransformNormal(SnowNormal.Sample(SampNormalSampler, uv).rgb);
prop.F0 = lerp(prop.F0, rmaos.w * SharedData::snowCoverSettings.mainSpec, mult);

}
prop.Roughness = lerp(prop.Roughness, rmaos.x, mult);
prop.Metallic = lerp(prop.Metallic, rmaos.y, mult);
prop.AO = lerp(prop.AO, rmaos.z, mult * 0.5); //always leave a part of the original ao to make it more interesting
prop.GlintScreenSpaceScale = lerp(prop.GlintScreenSpaceScale, SharedData::snowCoverSettings.Glint.x, mult);
prop.GlintLogMicrofacetDensity = lerp(prop.GlintLogMicrofacetDensity, SharedData::snowCoverSettings.Glint.y, mult);
prop.GlintMicrofacetRoughness = lerp(prop.GlintMicrofacetRoughness, SharedData::snowCoverSettings.Glint.z, mult);
prop.GlintDensityRandomization = lerp(prop.GlintDensityRandomization, SharedData::snowCoverSettings.Glint.w, mult);
return prop;
}
# else

float ApplySnow(inout float3 diffuse, inout float3 worldNormal, inout float glossiness, inout float shininess, float disp, float3 p, float skylight, float waterDist, float viewDist, float2 uv)
{
bool alt;
float mult = ApplySnowBase(worldNormal, uv, alt, disp, p, skylight, waterDist, viewDist);
if (mult <= 0.0)
return 0;
float4 rmaos;
if(alt){
float3 albedo = IceAlbedo.Sample(SampColorSampler, uv).rgb;
albedo = Color::TrueLinearToGamma(albedo) * SharedData::snowCoverSettings.AltTint.rgb * Color::PBRLightingScale;
rmaos = IceRmaos.Sample(SampColorSampler, uv);
shininess = lerp(shininess, 25 * 500 * SharedData::snowCoverSettings.altSpec * rmaos.w, mult);
worldNormal = TransformNormal(IceNormal.Sample(SampNormalSampler, uv).rgb);
diffuse = lerp(diffuse, rmaos.z * albedo, mult * SharedData::snowCoverSettings.AltTint.w);

}
else{
float3 albedo = SnowAlbedo.Sample(SampColorSampler, uv).rgb;
albedo = Color::TrueLinearToGamma(albedo) * SharedData::snowCoverSettings.MainTint.rgb * Color::PBRLightingScale;
rmaos = SnowRmaos.Sample(SampColorSampler, uv);
shininess = lerp(shininess, 25 * 500 * SharedData::snowCoverSettings.mainSpec * rmaos.w, mult);
worldNormal = TransformNormal(SnowNormal.Sample(SampNormalSampler, uv).rgb);
diffuse = lerp(diffuse, rmaos.z * albedo, mult * SharedData::snowCoverSettings.MainTint.w);

}
glossiness = lerp(glossiness, 1 - rmaos.x, mult);
return mult;
}
# endif
# endif

}
#endif
31 changes: 31 additions & 0 deletions features/Snow Cover/Shaders/SnowCover/SolitudeWorld.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"AffectGrassTint": 1,
"AffectTreeTint": 0,
"AltSpec": 0.019999999552965164,
"AltTexture": "textures/pbr/landscape/frozenmarshice01",
"AltTint": [1.0, 1.0, 1.0, 0.4117647111415863],
"DensityRandomization": 2.0,
"MapZscale": 75000,
"BlendSmoothness": 5000,
"MapMax": [253952.0, -176128.0],
"MapMin": [-233472.0, 208896.0],
"MapTexture": "Shaders\\SnowCover\\Skyrim",
"FoliageHeightOffset": -3000.0,
"LogMicrofacetDensity": 33.0,
"MainSpec": 0.019999999552965164,
"MainTexture": "textures/pbr/landscape/snow01",
"MainTint": [1.0, 1.0, 1.0, 1.0],
"MaxAngle": 0.8130000233650208,
"MaxSummerMonth": 6,
"MaxWinterMonth": 0,
"MeltingSpeed": 1.0,
"MicrofacetRoughness": 0.15000000596046448,
"MinAngle": 0.2750000059604645,
"PeakAltAngle": 1.2000000476837158,
"PeakMainAngle": 0.753000020980835,
"ScreenSpaceScale": 1.2000000476837158,
"SnowingSpeed": 1.0,
"UVScale": 1.0,
"WinterHeightOffset": -20000.0,
"SummerHeightOffset": 20000.0
}
31 changes: 31 additions & 0 deletions features/Snow Cover/Shaders/SnowCover/Tamriel.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"AffectGrassTint": 1,
"AffectTreeTint": 0,
"AltSpec": 0.019999999552965164,
"AltTexture": "textures/pbr/landscape/frozenmarshice01",
"AltTint": [1.0, 0.9921568632125854, 1.0, 0.4470588266849518],
"BlendSmoothness": 5000.0,
"DensityRandomization": 2.700000047683716,
"FoliageHeightOffset": -4000.0,
"LogMicrofacetDensity": 4.627999782562256,
"MainSpec": 0.019999999552965164,
"MainTexture": "textures/pbr/landscape/snow01",
"MainTint": [1.0, 1.0, 1.0, 1.0],
"MapMax": [253952.0, -176128.0],
"MapMin": [-233472.0, 208896.0],
"MapTexture": "Shaders\\SnowCover\\Skyrim",
"MapZscale": 75000.0,
"MaxAngle": 0.7319999933242798,
"MaxSummerMonth": 6,
"MaxWinterMonth": 0,
"MeltingSpeed": 1.0,
"MicrofacetRoughness": 0.8130000233650208,
"MinAngle": 0.296999990940094,
"PeakAltAngle": 0.45399999618530273,
"PeakMainAngle": 0.9300000071525574,
"ScreenSpaceScale": 1.2400000095367432,
"SnowingSpeed": 1.0,
"UVScale": 0.5,
"WinterHeightOffset": -20000.0,
"SummerHeightOffset": 20000.0
}
31 changes: 31 additions & 0 deletions features/Snow Cover/Shaders/SnowCover/WhiterunWorld.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"AffectGrassTint": 1,
"AffectTreeTint": 0,
"AltSpec": 0.019999999552965164,
"AltTexture": "textures/pbr/landscape/frozenmarshice01",
"AltTint": [1.0, 1.0, 1.0, 0.6078431606292725],
"DensityRandomization": 2.0,
"MapZscale": 75000,
"BlendSmoothness": 5000,
"MapMax": [253952.0, -176128.0],
"MapMin": [-233472.0, 208896.0],
"MapTexture": "Shaders\\SnowCover\\Skyrim",
"FoliageHeightOffset": -3000.0,
"LogMicrofacetDensity": 33.0,
"MainSpec": 0.019999999552965164,
"MainTexture": "textures/pbr/landscape/snow01",
"MainTint": [1.0, 0.996880292892456, 0.996880292892456, 1.0],
"MaxAngle": 0.8130000233650208,
"MaxSummerMonth": 6,
"MaxWinterMonth": 0,
"MeltingSpeed": 1.0,
"MicrofacetRoughness": 0.15000000596046448,
"MinAngle": 0.22300000488758087,
"PeakAltAngle": 1.0,
"PeakMainAngle": 0.734000027179718,
"ScreenSpaceScale": 1.2000000476837158,
"SnowingSpeed": 1.0,
"UVScale": 1.0,
"WinterHeightOffset": -20000.0,
"SummerHeightOffset": 20000.0
}
31 changes: 31 additions & 0 deletions features/Snow Cover/Shaders/SnowCover/WindhelmWorld.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"AffectGrassTint": 1,
"AffectTreeTint": 0,
"AltSpec": 0.019999999552965164,
"AltTexture": "textures/pbr/landscape/frozenmarshice01",
"AltTint": [1.0, 1.0, 1.0, 0.4274509847164154],
"DensityRandomization": 2.0,
"MapZscale": 75000,
"BlendSmoothness": 5000,
"MapMax": [253952.0, -176128.0],
"MapMin": [-233472.0, 208896.0],
"MapTexture": "Shaders\\SnowCover\\Skyrim",
"FoliageHeightOffset": -3000.0,
"LogMicrofacetDensity": 33.0,
"MainSpec": 0.019999999552965164,
"MainTexture": "textures/pbr/landscape/snow01",
"MainTint": [1.0, 0.996880292892456, 0.996880292892456, 1.0],
"MaxAngle": 1.0,
"MaxSummerMonth": 6,
"MaxWinterMonth": 0,
"MeltingSpeed": 1.0,
"MicrofacetRoughness": 0.15000000596046448,
"MinAngle": 0.42899999022483826,
"PeakAltAngle": 0.36000001430511475,
"PeakMainAngle": 1.0,
"ScreenSpaceScale": 1.2000000476837158,
"SnowingSpeed": 1.0,
"UVScale": 1.0,
"WinterHeightOffset": -20000.0,
"SummerHeightOffset": 20000.0
}
1 change: 1 addition & 0 deletions features/Snow Cover/Shaders/SnowCover/blacklist.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Decal # Any dynamic decal (impact, blood) is named like this it seems
Binary file not shown.
Binary file not shown.
Binary file not shown.
8 changes: 8 additions & 0 deletions features/Snow Cover/Shaders/SnowCover/whitelist.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
CutPile:0
CutPile:1
CutPile:2
Barrel01MainMesh:MetalTri
Barrel01Lid
Barrel02:0
Barrel02:1
SignRiverwoodSleepingGiantInn01:0
Loading