60 lines
2.0 KiB
GLSL
60 lines
2.0 KiB
GLSL
Shader "NatureManufacture Shaders/Water/Water Particles Foam"
|
|
{
|
|
Properties
|
|
{
|
|
_Color("Color", Color) = (1,1,1,0)
|
|
_ColorPower("Color Power", Vector) = (5,5,5,0)
|
|
_AOPower("AO Power", Range( 0 , 1)) = 1
|
|
_Opacity("Opacity", Range( 0 , 20)) = 0.23
|
|
_ParticleTexture("Particle Texture", 2D) = "white" {}
|
|
_ParticleNormalmap("Particle Normalmap", 2D) = "bump" {}
|
|
_NormalScale("Normal Scale", Range( -5 , 5)) = 0
|
|
_Smoothness("Smoothness", Range( 0 , 1)) = 0.8
|
|
_Metallic("Metallic", Range( 0 , 1)) = 0.1
|
|
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
|
[HideInInspector] __dirty( "", Int ) = 1
|
|
}
|
|
|
|
SubShader
|
|
{
|
|
Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" }
|
|
Cull Off
|
|
CGPROGRAM
|
|
#include "UnityStandardUtils.cginc"
|
|
#pragma target 3.0
|
|
#pragma surface surf Standard alpha:fade keepalpha noshadow
|
|
struct Input
|
|
{
|
|
float2 uv_texcoord;
|
|
float4 vertexColor : COLOR;
|
|
};
|
|
|
|
uniform float _NormalScale;
|
|
uniform sampler2D _ParticleNormalmap;
|
|
uniform float4 _ParticleNormalmap_ST;
|
|
uniform float3 _ColorPower;
|
|
uniform float4 _Color;
|
|
uniform sampler2D _ParticleTexture;
|
|
uniform float4 _ParticleTexture_ST;
|
|
uniform float _Metallic;
|
|
uniform float _Smoothness;
|
|
uniform float _AOPower;
|
|
uniform float _Opacity;
|
|
|
|
void surf( Input i , inout SurfaceOutputStandard o )
|
|
{
|
|
float2 uv_ParticleNormalmap = i.uv_texcoord * _ParticleNormalmap_ST.xy + _ParticleNormalmap_ST.zw;
|
|
o.Normal = UnpackScaleNormal( tex2D( _ParticleNormalmap, uv_ParticleNormalmap ), _NormalScale );
|
|
float2 uv_ParticleTexture = i.uv_texcoord * _ParticleTexture_ST.xy + _ParticleTexture_ST.zw;
|
|
float4 tex2DNode34 = tex2D( _ParticleTexture, uv_ParticleTexture );
|
|
o.Albedo = ( ( ( float4( _ColorPower , 0.0 ) * _Color ) * tex2DNode34 ) * i.vertexColor ).rgb;
|
|
o.Metallic = _Metallic;
|
|
o.Smoothness = _Smoothness;
|
|
o.Occlusion = _AOPower;
|
|
float clampResult40 = clamp( ( _Opacity * tex2DNode34.a ) , 0.0 , 1.0 );
|
|
o.Alpha = ( i.vertexColor.a * clampResult40 );
|
|
}
|
|
|
|
ENDCG
|
|
}
|
|
} |