12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #ifndef ENVIRONMENT_SKYCORE
- #define ENVIRONMENT_SKYCORE
- //skyinput
- half4 _SkyUpColor1;
- fixed _SkyUpColor2Hight;
- half4 _SkyUpColor2;
- half4 _SkyUpColor2Back;
- half4 _SkyDownColor;
- half4 _HorizontalColor;
- half4 _HorizontalColorBack;
- fixed _HorizontalColorLength;
- fixed3 _SunDir;
- half _SunSize;
- half4 _SunColor;
- half4 _SunGlowColor;
- half3 GetSkyBoxCol(fixed3 viewDir) {
- fixed y = viewDir.y;
- fixed vDotS =pow( saturate(dot(_SunDir, viewDir)),2);
- half3 upColor = lerp(_SkyUpColor2Back, _SkyUpColor2,vDotS);
- fixed upFactor = smoothstep(0, _SkyUpColor2Hight, y);
- half3 upColor2 = lerp(upColor, _SkyUpColor1, upFactor);
- fixed upDownFactor = step(0, y);
- half3 upDownColor = lerp(_SkyDownColor, upColor2, upDownFactor);
- fixed horizontaFactor = 1 - smoothstep(0, _HorizontalColorLength, abs(y));
- half3 horizontalCol = lerp(_HorizontalColorBack, _HorizontalColor, vDotS);
- half3 skyBoxColor = lerp(upDownColor, horizontalCol,pow( horizontaFactor,5));
- return skyBoxColor;
- }
- half3 GetSkyBoxAndSunCol(fixed3 viewDir) {
- half3 skyboxCol = GetSkyBoxCol(viewDir);
- fixed sDotV = saturate(dot(_SunDir, viewDir));
- fixed sunFactor = step(0.998, sDotV);
- half3 skyboxAndSunCol = lerp(skyboxCol, _SunColor, sunFactor);
- return skyboxAndSunCol + pow(_SunGlowColor * smoothstep(0.8,1,sDotV),2);
- }
- #endif
|