122 lines
2.4 KiB
Plaintext
122 lines
2.4 KiB
Plaintext
Shader "TENKOKU/moonsphere_shader" {
|
|
Properties
|
|
{
|
|
_PrimaryTint("Primary Tint", Color) = (1,1,1,1)
|
|
_Color ("Main Color", Color) = (1,1,1,1)
|
|
_AmbientTint ("Ambient Tint", Color) = (1,1,1,1)
|
|
_MainTex ("Base (RGB)", 2D) = "white" {}
|
|
|
|
_BRDFTex ("BRDF", 2D) = "white" {}
|
|
_overBright ("OverBright", float) = 1.0
|
|
_dispStrength ("Displace Amount", Range(0.0,3.0)) = 1.0
|
|
_GlowColor ("Glow Color", Color) = (0.5,0.5,0.5,0.5)
|
|
}
|
|
|
|
SubShader
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
// Tags {"Queue"= "Overlay+8"}
|
|
Tags {"Queue"="Background+1605"}
|
|
Cull Back
|
|
Fog {Mode Off}
|
|
|
|
Offset 1,993000
|
|
Lighting Off
|
|
ZWrite Off
|
|
|
|
CGPROGRAM
|
|
#pragma surface surf MyLight alpha nofog noambient noforwardadd
|
|
|
|
sampler2D _MainTex;
|
|
fixed4 _AmbientTint;
|
|
|
|
float4 _PrimaryTint;
|
|
float4 Tenkoku_MoonLightColor;
|
|
float4 Tenkoku_MoonHorizColor;
|
|
float4 Tenkoku_Vec_SunFwd;
|
|
sampler2D _Tenkoku_SkyTex;
|
|
sampler2D _Tenkoku_SkyBox;
|
|
float4 skyColor;
|
|
float4 _Tenkoku_overcastColor;
|
|
float _Tenkoku_NightBright;
|
|
float _Tenkoku_Ambient;
|
|
float Tenkoku_MoonHFac;
|
|
float _tenkokuIsLinear;
|
|
|
|
|
|
|
|
struct Input{
|
|
float4 screenPos;
|
|
float2 uv_MainTex;
|
|
};
|
|
|
|
|
|
void surf(Input IN, inout SurfaceOutput o){
|
|
|
|
fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
|
|
|
|
tex.rgb *= clamp(lerp(-0.25,3,tex.r),0,3);
|
|
|
|
o.Albedo = tex.rgb;
|
|
o.Alpha = 1.0;
|
|
|
|
float4 uv0 = IN.screenPos; uv0.xy;
|
|
uv0 = float4(max(0.001f, uv0.x),max(0.001f, uv0.y),max(0.001f, uv0.z),max(0.001f, uv0.w));
|
|
skyColor = tex2Dproj(_Tenkoku_SkyBox, UNITY_PROJ_COORD(uv0));//*0.96;
|
|
|
|
half3 mTCol = lerp(half3(1,1,1), Tenkoku_MoonHorizColor.rgb * 2, Tenkoku_MoonHorizColor.a);
|
|
o.Albedo = o.Albedo.rgb * _PrimaryTint.rgb * lerp( mTCol, 1.0, max(Tenkoku_MoonHFac,_Tenkoku_Ambient));
|
|
|
|
//Extend Brightness Range
|
|
o.Albedo.r = lerp(0.0, 2.5, o.Albedo.r);
|
|
o.Albedo.g = lerp(0.0, 2.1, o.Albedo.g);
|
|
o.Albedo.b = lerp(0.0, 2.0, o.Albedo.b);
|
|
|
|
//gamma shift
|
|
if (_tenkokuIsLinear == 0.0){
|
|
o.Albedo = saturate(o.Albedo * 0.4646);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fixed4 LightingMyLight(SurfaceOutput s, half3 lightDir, fixed atten){
|
|
|
|
half4 light = half4(1,1,1,1);
|
|
half alph = saturate(max(0.0,dot(s.Normal,Tenkoku_Vec_SunFwd.xyz)) * 2);
|
|
|
|
light.rgb = lerp(skyColor.rgb, s.Albedo.rgb*max(0.5,Tenkoku_MoonLightColor)*lerp(2.0,5.0,_AmbientTint), alph);
|
|
|
|
light.rgb = lerp(light.rgb,skyColor.rgb, min(0.8,_AmbientTint.r));
|
|
|
|
//Max Light vs Sky
|
|
light.rgb = max(skyColor.rgb,light.rgb);
|
|
|
|
|
|
|
|
|
|
light.a = saturate(lerp(1,-3,_Tenkoku_overcastColor.a));
|
|
|
|
return light;
|
|
}
|
|
|
|
|
|
|
|
ENDCG
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
} |