Feat - Add Loading menju
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
Shader "GAME/StylizedSky"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[Header(Sky Gradient Day)][Space]
|
||||
[HDR] _DayZenith("Day Zenith", Color) = (0.18,0.42,0.78,1)
|
||||
[HDR] _DayHorizon("Day Horizon", Color) = (0.62,0.78,0.92,1)
|
||||
|
||||
[Header(Sky Gradient Night)][Space]
|
||||
[HDR] _NightZenith("Night Zenith", Color) = (0.01,0.02,0.06,1)
|
||||
[HDR] _NightHorizon("Night Horizon", Color) = (0.04,0.06,0.12,1)
|
||||
|
||||
[Header(Twilight)][Space]
|
||||
[HDR] _TwilightColor("Twilight Tint (dawn/dusk)", Color) = (0.95,0.45,0.25,1)
|
||||
_HorizonSharpness("Horizon Sharpness", Range(0.2,6)) = 2.2
|
||||
|
||||
[Header(Sun)][Space]
|
||||
[HDR] _SunColor("Sun Color", Color) = (1.0,0.95,0.85,1)
|
||||
_SunSize("Sun Size", Range(0.0005,0.2)) = 0.03
|
||||
[HDR] _SunGlowColor("Sun Glow Color", Color) = (1.0,0.7,0.4,1)
|
||||
_SunGlowSize("Sun Glow Falloff", Range(1,512)) = 64
|
||||
_SunGlowStrength("Sun Glow Strength", Range(0,4)) = 1.0
|
||||
|
||||
[Header(Clouds)][Space]
|
||||
[HDR] _CloudColor("Cloud Color (lit)", Color) = (1.0,0.98,0.95,1)
|
||||
[HDR] _CloudShadowColor("Cloud Color (shadow)", Color) = (0.55,0.6,0.72,1)
|
||||
_CloudCoverage("Cloud Coverage", Range(0,1)) = 0.5
|
||||
_CloudSoftness("Cloud Edge Softness", Range(0.01,0.6)) = 0.2
|
||||
_CloudScale("Cloud Scale", Range(0.2,4)) = 1.2
|
||||
_CloudSpeed("Cloud Speed", Range(0,0.2)) = 0.01
|
||||
_CloudWindDir("Cloud Wind Dir (xy)", Vector) = (1,0.3,0,0)
|
||||
|
||||
[Header(Stars)][Space]
|
||||
_StarDensity("Star Density", Range(0,0.2)) = 0.04
|
||||
_StarTwinkleSpeed("Star Twinkle Speed", Range(0,8)) = 2.0
|
||||
|
||||
[Header(Shooting Stars)][Space]
|
||||
[HDR] _ShootingStarColor("Shooting Star Color", Color) = (1,1,0.9,1)
|
||||
_ShootingStarRate("Shooting Star Rate", Range(0.01,0.5)) = 0.06
|
||||
|
||||
[Header(Exposure)][Space]
|
||||
_Exposure("Exposure", Range(0,4)) = 1.0
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags
|
||||
{
|
||||
"RenderType" = "Background"
|
||||
"Queue" = "Background"
|
||||
"PreviewType" = "Skybox"
|
||||
"RenderPipeline" = "UniversalPipeline"
|
||||
}
|
||||
|
||||
// =================================================================================
|
||||
// Skybox (rendu par RenderSettings.skybox via le pass DrawSkybox d'URP)
|
||||
// =================================================================================
|
||||
Pass
|
||||
{
|
||||
Name "StylizedSky"
|
||||
Cull Off
|
||||
ZWrite Off
|
||||
ZTest LEqual
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma target 3.0
|
||||
#pragma vertex SkyVertex
|
||||
#pragma fragment SkyFragment
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
#include "SkyCore.hlsl"
|
||||
|
||||
CBUFFER_START(UnityPerMaterial)
|
||||
half4 _DayZenith;
|
||||
half4 _DayHorizon;
|
||||
half4 _NightZenith;
|
||||
half4 _NightHorizon;
|
||||
half4 _TwilightColor;
|
||||
float _HorizonSharpness;
|
||||
|
||||
half4 _SunColor;
|
||||
float _SunSize;
|
||||
half4 _SunGlowColor;
|
||||
float _SunGlowSize;
|
||||
float _SunGlowStrength;
|
||||
|
||||
half4 _CloudColor;
|
||||
half4 _CloudShadowColor;
|
||||
float _CloudCoverage;
|
||||
float _CloudSoftness;
|
||||
float _CloudScale;
|
||||
float _CloudSpeed;
|
||||
float4 _CloudWindDir;
|
||||
|
||||
float _StarDensity;
|
||||
float _StarTwinkleSpeed;
|
||||
|
||||
half4 _ShootingStarColor;
|
||||
float _ShootingStarRate;
|
||||
|
||||
float _Exposure;
|
||||
CBUFFER_END
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float4 positionOS : POSITION;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
};
|
||||
|
||||
struct Varyings
|
||||
{
|
||||
float4 positionCS : SV_POSITION;
|
||||
float3 viewDirOS : TEXCOORD0;
|
||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||
UNITY_VERTEX_OUTPUT_STEREO
|
||||
};
|
||||
|
||||
// La skybox est dessinée autour de la caméra : la position objet du mesh est
|
||||
// directement la direction de vue. On la transmet brute et on la normalise au fragment.
|
||||
Varyings SkyVertex(Attributes IN)
|
||||
{
|
||||
Varyings OUT = (Varyings)0;
|
||||
UNITY_SETUP_INSTANCE_ID(IN);
|
||||
UNITY_TRANSFER_INSTANCE_ID(IN, OUT);
|
||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
|
||||
|
||||
OUT.positionCS = TransformObjectToHClip(IN.positionOS.xyz);
|
||||
OUT.viewDirOS = IN.positionOS.xyz;
|
||||
return OUT;
|
||||
}
|
||||
|
||||
// Compose le ciel dans l'ordre fond -> nuages -> soleil -> étoiles -> filantes.
|
||||
// Toute l'animation lit _SkyTime (synchronisé) et tout dépend de _SunDirection /
|
||||
// _TimeOfDay (synchronisés), donc le rendu est identique sur tous les clients.
|
||||
half4 SkyFragment(Varyings IN) : SV_Target
|
||||
{
|
||||
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(IN);
|
||||
|
||||
float3 viewDir = normalize(IN.viewDirOS);
|
||||
|
||||
float3 col = SkyGradient(viewDir,
|
||||
_DayZenith.rgb, _DayHorizon.rgb,
|
||||
_NightZenith.rgb, _NightHorizon.rgb,
|
||||
_TwilightColor.rgb, _HorizonSharpness);
|
||||
|
||||
col += SunGlow(viewDir, _SunGlowColor.rgb, _SunGlowSize, _SunGlowStrength);
|
||||
|
||||
float4 clouds = Clouds(viewDir, _SkyTime * _CloudSpeed,
|
||||
_CloudColor.rgb, _CloudShadowColor.rgb,
|
||||
_CloudCoverage, _CloudSoftness, _CloudScale, _CloudWindDir.xy);
|
||||
col = col * (1.0 - clouds.a) + clouds.rgb;
|
||||
|
||||
col += SunDisk(viewDir, _SunColor.rgb, _SunSize) * (1.0 - clouds.a);
|
||||
|
||||
col += Stars(viewDir, _StarDensity, _StarTwinkleSpeed, _SkyTime) * (1.0 - clouds.a);
|
||||
col += ShootingStars(viewDir, _SkyTime, _ShootingStarColor.rgb, _ShootingStarRate) * (1.0 - clouds.a);
|
||||
|
||||
col *= _Exposure;
|
||||
return half4(col, 1.0);
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
|
||||
Fallback Off
|
||||
}
|
||||
Reference in New Issue
Block a user