Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Shader "Custom/Dissolve/BoundsWorld/Opaque" {
- Properties{
- _Color("Color", Color) = (1,1,1,1)
- _MainTex("Albedo (RGB)", 2D) = "white" {}
- _Glossiness("Smoothness", Range(0,1)) = 0.5
- [NoScaleOffset] _MetallicGlossMap("Metallic", 2D) = "white" {}
- [Gamma] _Metallic ("Metallic", Range(0.000000,1.000000)) = 0.000000
- _BoxCenter("Box Center", Vector) = (0,0,0,0)
- _BoxSize("Box Size", Vector) = (0,0,0,0)
- _Distance("Dissolve Distance", Float) = 1
- _Interpolation("Dissolve Interpolation", Range(0,5)) = 1
- _DissTexture("Dissolve Texture", 2D) = "white" {}
- [HDR]_DissolveColor("Dissolve Color", Color) = (0,1,0,1)
- [NoScaleOffset] _BumpMap ("Normal Map", 2D) = "bump" {}
- _BumpScale ("Normal Influence", Range(0,10)) = 0.5
- [HDR]_EmissionColor ("Color", Color) = (0.000000,0.000000,0.000000,1.000000)
- [NoScaleOffset]_EmissionMap ("Emission", 2D) = "white" { }
- }
- CGINCLUDE
- //@TODO: should this be pulled into a shader_feature, to be able to turn it off?
- #define _GLOSSYENV 1
- #define UNITY_SETUP_BRDF_INPUT SpecularSetup
- ENDCG
- SubShader{
- Tags { "RenderType" = "Opaque" }
- LOD 200
- // Extracts information for lightmapping, GI (emission, albedo, ...)
- // This pass is not used during regular rendering.
- Pass
- {
- Name "META"
- Tags { "LightMode"="Meta" }
- Cull Off
- CGPROGRAM
- #pragma vertex vert_meta
- #pragma fragment frag_meta
- #pragma shader_feature _EMISSION
- #pragma shader_feature _METALLICGLOSSMAP
- #include "UnityStandardMeta.cginc"
- ENDCG
- }
- CGPROGRAM
- #include "UnityPBSLighting.cginc"
- // Physically based Standard lighting model, and enable shadows on all light types
- #pragma surface surf Standard addshadow
- // Use shader model 3.0 target, to get nicer looking lighting
- #pragma target 3.0
- sampler2D _MainTex;
- struct Input {
- float2 uv_MainTex;
- float2 uv_BumpMap;
- float2 uv_DissTexture;
- float3 worldPos;
- };
- half _Metallic;
- half _Glossiness;
- sampler2D _MetallicGlossMap;
- sampler2D _EmissionMap;
- float4 _EmissionColor;
- float4 _DissolveColor;
- sampler2D _BumpMap;
- half _Distance;
- half _Interpolation;
- half _BumpScale;
- sampler2D _DissTexture;
- float4 _BoxCenter,_BoxSize;
- fixed4 _Color;
- void surf(Input IN, inout SurfaceOutputStandard o) {
- float3 surfacePos = IN.worldPos.xyz;
- //float3 objectCenterWorld = _Object2World[3].xyz;//float3(0,0,0) * mul(unity_ObjectToWorld, float4(0, 0, 0, 1));
- float dx = min(((_BoxCenter.x + _BoxSize.x) - surfacePos.x), (surfacePos.x - (_BoxCenter.x - _BoxSize.x)));
- float dy = min(((_BoxCenter.y + _BoxSize.y)-surfacePos.y), (surfacePos.y - (_BoxCenter.y - _BoxSize.y)));
- float dz = min(((_BoxCenter.z + _BoxSize.z) - surfacePos.z), (surfacePos.z - (_BoxCenter.z - _BoxSize.z)));
- clip((dx));
- clip((dy));
- clip((dz));
- fixed4 c = tex2D(_MetallicGlossMap, IN.uv_MainTex);
- o.Metallic = c.r * _Metallic ;
- o.Smoothness = _Glossiness * c.a;
- c = tex2D(_MainTex, IN.uv_MainTex);
- o.Albedo = c.rgb * _Color.rgb;
- o.Normal = normalize(UnpackScaleNormal (tex2D (_BumpMap, IN.uv_BumpMap) , _BumpScale));
- o.Emission = tex2D(_EmissionMap, IN.uv_MainTex) * _EmissionColor;
- o.Alpha = c.a;
- }
- ENDCG
- }
- Fallback "Diffuse"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement