summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--2ner.cginc39
-rw-r--r--2ner.shader614
-rw-r--r--features.cginc12
-rw-r--r--globals.cginc16
-rw-r--r--interpolators.cginc27
-rw-r--r--math.cginc5
-rw-r--r--yum_brdf.cginc26
-rw-r--r--yum_lighting.cginc13
-rw-r--r--yum_pbr.cginc5
9 files changed, 330 insertions, 427 deletions
diff --git a/2ner.cginc b/2ner.cginc
index 656e79f..47ff710 100644
--- a/2ner.cginc
+++ b/2ner.cginc
@@ -4,6 +4,7 @@
#include "UnityCG.cginc"
#include "UnityLightingCommon.cginc"
+#include "features.cginc"
#include "globals.cginc"
#include "interpolators.cginc"
#include "poi.cginc"
@@ -14,31 +15,63 @@
v2f vert (appdata v) {
v2f o;
+ UNITY_SETUP_INSTANCE_ID(v);
+ UNITY_INITIALIZE_OUTPUT(v2f, o);
+ UNITY_TRANSFER_INSTANCE_ID(v, o);
+ UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
+
+#if defined(OUTLINE_PASS)
+#if defined(_OUTLINE_MASK)
+ float thickness = _Outline_Mask.SampleLevel(linear_repeat_s, v.uv, 0);
+#else
+ float thickness = 1;
+#endif
+ v.vertex.xyz += _Outline_Width * v.normal * thickness;
+ v.normal *= -1;
+ v.tangent *= -1;
+#endif // OUTLINE_PASS
o.pos = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
o.worldPos = mul(unity_ObjectToWorld, v.vertex);
+ o.eyeVec.xyz = normalize(o.worldPos - _WorldSpaceCameraPos);
// Calculate TBN matrix
o.normal = UnityObjectToWorldNormal(v.normal);
o.tangent = UnityObjectToWorldDir(v.tangent.xyz);
o.bitangent = cross(o.normal, o.tangent) * v.tangent.w;
+ UNITY_TRANSFER_LIGHTING(o, v.uv1);
+ UNITY_TRANSFER_FOG_COMBINED_WITH_EYE_VEC(o, o.pos);
+#if defined(SHADOW_CASTER_PASS)
+ TRANSFER_SHADOW_CASTER_NORMALOFFSET(o);
+#endif
return o;
}
float4 frag (v2f i) : SV_Target {
+ UNITY_APPLY_DITHER_CROSSFADE(i.pos.xy);
+ UNITY_SETUP_INSTANCE_ID(i);
+ UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
+
YumPbr pbr = GetYumPbr(i);
UNITY_BRANCH
- if (_Mode == 1) {
- clip(pbr.albedo.a - _Clip);
- }
+ if (_Mode == 1) {
+ clip(pbr.albedo.a - _Clip);
+ pbr.albedo.a = 1;
+ }
+#if defined(FORWARD_BASE_PASS) || defined(FORWARD_ADD_PASS) || defined(OUTLINE_PASS)
YumLighting l = GetYumLighting(i, pbr);
float4 lit = YumBRDF(i, l, pbr);
+ UNITY_EXTRACT_FOG_FROM_EYE_VEC(i);
+ UNITY_APPLY_FOG(_unity_fogCoord, lit.rgb);
return lit;
+#elif defined(SHADOW_CASTER_PASS)
+ return 0;
+#endif
}
#endif // __2NER_INC
diff --git a/2ner.shader b/2ner.shader
index 193ac70..3fee380 100644
--- a/2ner.shader
+++ b/2ner.shader
@@ -1,419 +1,225 @@
Shader "yum_food/2ner"
{
Properties
- {
- [HideInInspector] shader_master_label("<color=#de719bff>2ner</color>", Float) = 0
- [HideInInspector] shader_is_using_thry_editor("", Float) = 0
- [HideInInspector] shader_presets("ThryPresetsExample", Float) = 0
- [HideInInspector] shader_properties_label_file("ThryLabelExample", Float) = 0
-
- [HideInInspector] _ForgotToLockMaterial(";;YOU_FORGOT_TO_LOCK_THE_MATERIAL;", Int) = 0
- [ThryShaderOptimizerLockButton] _ShaderOptimizerEnabled("", Int) = 0
-
- // TODO these are buggy
- // [HideInInspector] footer_youtube ("", Float) = 0
- // [HideInInspector] footer_github ("", Float) = 0
-
- [ThryWideEnum(Opaque, 0, Cutout, 1, Fade, 2, Transparent, 3, Additive, 4, Soft Additive, 5, Multiplicative, 6, 2x Multiplicative, 7, Multiplicative Grab Pass, 8)]_Mode("Rendering Preset--{on_value:''
- 0,render_queue = 2000,render_type = Opaque,_BlendOp = 0,_BlendOpAlpha = 0,_Cutoff = 0,_SrcBlend = 1,_DstBlend = 0,_AlphaToMask = 0,_ZWrite = 1,_ZTest = 4,_AlphaPremultiply = 0;
- 1,render_queue = 2460,render_type = TransparentCutout,_BlendOp = 0,_BlendOpAlpha = 0,_Cutoff = 0.5,_SrcBlend = 1,_DstBlend = 0,_AlphaToMask = 1,_ZWrite = 1,_ZTest = 4,_AlphaPremultiply = 0
- '' }", Int) = 0
-
- [HideInInspector] m_mainOptions("Main", Float) = 0
- _Color("Tint", Color) = (1, 1, 1, 1)
- _MainTex("Base color", 2D) = "white" { }
- [PanningTexture][Normal]_BumpMap("Normals", 2D) = "bump" { }
- _BumpScale("Normal Intensity", Range(0, 10)) = 1
- _OcclusionMap("Ambient occlusion", 2D) = "white" { }
- _OcclusionStrength("Ambient occlusion", Range(0,1)) = 1
-
- //[HideInInspector] m_start_Alpha("Alpha Options--{altClick:{type:URL,data:https://thryrallo.de}}", Float) = 0
- _Clip("Alpha Cuttoff", Range(0, 1.001)) = 0.5
- //[Toggle(_)]_ForceOpaque("Force Opaque", Float) = 0
- //[Toggle(_)]_MainAlphaToCoverage("Alpha To Coverage", Float) = 1
- //_MainMipScale("Mip Level Alpha Scale", Range(0, 1)) = 0.25
- //[HideInInspector] m_end_Alpha("Alpha Options", Float) = 0
-
- //[HideInInspector] m_start_DetailOptions("Details", Float) = 0
- //_DetailMask("Detail Mask (R:Texture, G:Normal)", 2D) = "white" { }
- //[PanningTexture]_DetailTex("Detail Texture", 2D) = "gray" { }
- //[HideInInspector][Vector2]_DetailTexturePan("Panning", Vector) = (0, 0, 0, 0)
- //[Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _DetailTexUV("Detail Tex UV#", Int) = 0
- //_DetailTexIntensity("Detail Tex Intensity", Range(0, 10)) = 1
- //_DetailBrightness("Detail Brightness:", Range(0, 2)) = 1
- //_DetailTint("Detail Tint", Color) = (1, 1, 1)
- //[Normal]_DetailNormalMap("Detail Normal", 2D) = "bump" { }
- //[Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _DetailNormalUV("Detail Normal UV#", Int) = 0
- //_DetailNormalMapScale("Detail Normal Intensity", Range(0, 10)) = 1
- //[HideInInspector][Vector2]_MainDetailNormalPan("Panning", Vector) = (0, 0, 0, 0)
- //[HideInInspector] m_end_DetailOptions("Details", Float) = 0
-
- //[HideInInspector] m_lightingOptions("Lighting Options", Float) = 0
- //[HideInInspector] m_start_Lighting("Light and Shadow", Float) = 0
- //[Toggle(_NORMALMAP)]_EnableLighting("Enable Lighting", Float) = 1
- //[HideInInspector] g_start_l("", Int) = 0
- //[Enum(Natural, 0, Controlled, 1, Standardish, 2)] _LightingType("Lighting Type", Int) = 1
- //[Gradient]_ToonRamp("Lighting Ramp", 2D) = "white" { }
- //_LightingShadowMask("Shadow Mask (R)", 2D) = "white" { }
- //_ShadowStrength("Shadow Strength", Range(0, 1)) = .2
- //_ShadowOffset("Shadow Offset", Range(-1, 1)) = 0
- //_AOMap("AO Map", 2D) = "white" { }
- //[Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _LightingAOUV("AO Map UV#", Int) = 0
- //_AOStrength("AO Strength", Range(0, 1)) = 1
- //_LightingMinLightBrightness("Min Brightness", Range(0,1)) = 0
- //[HideInInspector] m_start_lightingStandard("Standardish Settings", Float) = 0
- //_LightingStandardSmoothness("Smoothness", Range(0, 1)) = 0
- //[HideInInspector] m_end_lightingStandard("Standardish Settings", Float) = 0
- //[HideInInspector] m_start_lightingAdvanced("Advanced", Float) = 0
- //_LightingIndirectContribution("Indirect Contribution", Range(0, 1)) = .25
- //_AdditiveSoftness("Additive Softness", Range(0, 0.5)) = 0.005
- //_AdditiveOffset("Additive Offset", Range(-0.5, 0.5)) = 0
- //_LightingAdditiveIntensity("Additive Intensity", Range(0,1)) = 1
- //_AttenuationMultiplier("Attenuation", Range(0, 1)) = 0
- //[HideInInspector] m_end_lightingAdvanced("Advanced", Float) = 0
- //[HideInInspector] m_start_lightingBeta("Beta", Float) = 0
- //[Toggle(_)]_LightingStandardControlsToon("Standard Lighting Controls Toon Ramp", Float) = 0
- //[HideInInspector] m_end_lightingBeta("Beta", Float) = 0
- //[HideInInspector] g_end_l("", Int) = 0
- //[HideInInspector] m_end_Lighting("Light and Shadow", Float) = 0
-
- //[HideInInspector] m_start_subsurface("Subsurface Scattering", Float) = 0
- //[Toggle(_TERRAIN_NORMAL_MAP)]_EnableSSS("Enable Subsurface Scattering", Float) = 0
- //_SSSColor("Subsurface Color", Color) = (1, 1, 1, 1)
- //_SSSThicknessMap("Thickness Map", 2D) = "black" { }
- //_SSSThicknessMod("Thickness mod", Range(-1, 1)) = 0
- //_SSSSCale("Light Strength", Range(0, 1)) = 0
- //_SSSPower("Light Spread", Range(1, 100)) = 1
- //_SSSDistortion("Light Distortion", Range(0, 1)) = 0
- //[HideInInspector] m_end_subsurface("Subsurface Scattering", Float) = 0
-
- //[HideInInspector] m_start_rimLightOptions("Rim Lighting", Float) = 0
- //[Toggle(_GLOSSYREFLECTIONS_OFF)]_EnableRimLighting("Enable Rim Lighting", Float) = 0
- //[Toggle(_)]_RimLightingInvert("Invert Rim Lighting", Float) = 0
- //_RimLightColor("Rim Color", Color) = (1, 1, 1, 1)
- //_RimWidth("Rim Width", Range(0, 1)) = 0.8
- //_RimSharpness("Rim Sharpness", Range(0, 1)) = .25
- //_RimStrength("Rim Emission", Range(0, 20)) = 0
- //_RimBrighten("Rim Color Brighten", Range(0, 3)) = 0
- //_RimLightColorBias("Rim Color Bias", Range(0, 1)) = 0
- //[PanningTexture]_RimTex("Rim Texture", 2D) = "white" { }
- //_RimMask("Rim Mask", 2D) = "white" { }
- //[HideInInspector][Vector2]_RimTexPanSpeed("Panning", Vector) = (0, 0, 0, 0)
- //[HideInInspector] m_start_reflectionRim("Environmental Rim", Float) = 0
- //[Toggle(_)]_EnableEnvironmentalRim("Enable Environmental Rim", Float) = 0
- //_RimEnviroMask("Mask", 2D) = "white" { }
- //_RimEnviroBlur("Blur", Range(0, 1)) = 0.7
- //_RimEnviroWidth("Rim Width", Range(0, 1)) = 0.45
- //_RimEnviroSharpness("Rim Sharpness", Range(0, 1)) = 0
- //_RimEnviroMinBrightness("Min Brightness Threshold", Range(0, 2)) = 0
- //[HideInInspector] m_end_reflectionRim("Environmental Rim", Float) = 0
- //[HideInInspector] m_start_rimWidthNoise("Width Noise", Float) = 0
- //[PanningTexture]_RimWidthNoiseTexture("Rim Width Noise", 2D) = "black" { }
- //_RimWidthNoiseStrength("Intensity", Range(0, 1)) = 0.1
- //[HideInInspector][Vector2]_RimWidthNoisePan("Panning", Vector) = (0, 0, 0, 0)
- //[HideInInspector] m_end_rimWidthNoise("Width Noise", Float) = 0
- //[HideInInspector] m_start_ShadowMix("Shadow Mix", Float) = 0
- //_ShadowMix("Shadow Mix In", Range(0, 1)) = 0
- //_ShadowMixThreshold("Shadow Mix Threshold", Range(0, 1)) = .5
- //_ShadowMixWidthMod("Shadow Mix Width Mod", Range(0, 10)) = .5
- //[HideInInspector] m_end_ShadowMix("Shadow Mix", Float) = 0
- //[HideInInspector] m_end_rimLightOptions("Rim Lighting", Float) = 0
-
- //[HideInInspector] m_start_bakedLighting("Baked Lighting", Float) = 0
- //_GIEmissionMultiplier("GI Emission Multiplier", Float) = 1
- //[HideInInspector] DSGI("DSGI", Float) = 0 //add this property for double sided illumination settings to be shown
- //[HideInInspector] LightmapFlags("Lightmap Flags", Float) = 0 //add this property for lightmap flags settings to be shown
- //[HideInInspector] m_end_bakedLighting("Baked Lighting", Float) = 0
-
- [HideInInspector] m_reflectionOptions("Reflections", Float) = 0
+ {
+ [HideInInspector] shader_master_label("<color=#de719bff>2ner</color>", Float) = 0
+ [HideInInspector] shader_is_using_thry_editor("", Float) = 0
+ [HideInInspector] shader_presets("ThryPresetsExample", Float) = 0
+ [HideInInspector] shader_properties_label_file("ThryLabelExample", Float) = 0
+
+ //ifex _ShaderOptimizerEnabled==0
+ [HideInInspector] _ForgotToLockMaterial(";;YOU_FORGOT_TO_LOCK_THE_MATERIAL;", Int) = 0
+ //endex
+ [ThryShaderOptimizerLockButton] _ShaderOptimizerEnabled("", Int) = 0
+
+ // TODO these are buggy
+ // [HideInInspector] footer_youtube ("", Float) = 0
+ // [HideInInspector] footer_github ("", Float) = 0
+
+ [ThryWideEnum(Opaque, 0, Cutout, 1, TransClipping, 9, Fade, 2, Transparent, 3, Additive, 4, Soft Additive, 5, Multiplicative, 6, 2x Multiplicative, 7)]_Mode("Rendering Preset--{on_value_actions:[
+ {value:0,actions:[{type:SET_PROPERTY,data:render_queue=2000},{type:SET_PROPERTY,data:_AlphaForceOpaque=1}, {type:SET_PROPERTY,data:render_type=Opaque}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=4}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=1}, {type:SET_PROPERTY,data:_DstBlend=0}, {type:SET_PROPERTY,data:_SrcBlendAlpha=1}, {type:SET_PROPERTY,data:_DstBlendAlpha=1}, {type:SET_PROPERTY,data:_AddSrcBlend=1}, {type:SET_PROPERTY,data:_AddDstBlend=1}, {type:SET_PROPERTY,data:_AddSrcBlendAlpha=0}, {type:SET_PROPERTY,data:_AddDstBlendAlpha=1}, {type:SET_PROPERTY,data:_AlphaToCoverage=0}, {type:SET_PROPERTY,data:_ZWrite=1}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}, {type:SET_PROPERTY,data:_OutlineSrcBlend=1}, {type:SET_PROPERTY,data:_OutlineDstBlend=0}, {type:SET_PROPERTY,data:_OutlineSrcBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineDstBlendAlpha=0}, {type:SET_PROPERTY,data:_OutlineBlendOp=0}, {type:SET_PROPERTY,data:_OutlineBlendOpAlpha=4}]},
+ {value:1,actions:[{type:SET_PROPERTY,data:render_queue=2450},{type:SET_PROPERTY,data:_AlphaForceOpaque=0}, {type:SET_PROPERTY,data:render_type=TransparentCutout}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=4}, {type:SET_PROPERTY,data:_Cutoff=.5}, {type:SET_PROPERTY,data:_SrcBlend=1}, {type:SET_PROPERTY,data:_DstBlend=0}, {type:SET_PROPERTY,data:_SrcBlendAlpha=1}, {type:SET_PROPERTY,data:_DstBlendAlpha=1}, {type:SET_PROPERTY,data:_AddSrcBlend=1}, {type:SET_PROPERTY,data:_AddDstBlend=1}, {type:SET_PROPERTY,data:_AddSrcBlendAlpha=0}, {type:SET_PROPERTY,data:_AddDstBlendAlpha=1}, {type:SET_PROPERTY,data:_AlphaToCoverage=0}, {type:SET_PROPERTY,data:_ZWrite=1}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}, {type:SET_PROPERTY,data:_OutlineSrcBlend=1}, {type:SET_PROPERTY,data:_OutlineDstBlend=0}, {type:SET_PROPERTY,data:_OutlineSrcBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineDstBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineBlendOp=0}, {type:SET_PROPERTY,data:_OutlineBlendOpAlpha=4}]},
+ {value:9,actions:[{type:SET_PROPERTY,data:render_queue=2460},{type:SET_PROPERTY,data:_AlphaForceOpaque=0}, {type:SET_PROPERTY,data:render_type=TransparentCutout}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=4}, {type:SET_PROPERTY,data:_Cutoff=0.01}, {type:SET_PROPERTY,data:_SrcBlend=5}, {type:SET_PROPERTY,data:_DstBlend=10}, {type:SET_PROPERTY,data:_SrcBlendAlpha=1}, {type:SET_PROPERTY,data:_DstBlendAlpha=1}, {type:SET_PROPERTY,data:_AddSrcBlend=5}, {type:SET_PROPERTY,data:_AddDstBlend=1}, {type:SET_PROPERTY,data:_AddSrcBlendAlpha=0}, {type:SET_PROPERTY,data:_AddDstBlendAlpha=1}, {type:SET_PROPERTY,data:_AlphaToCoverage=0}, {type:SET_PROPERTY,data:_ZWrite=1}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}, {type:SET_PROPERTY,data:_OutlineSrcBlend=5}, {type:SET_PROPERTY,data:_OutlineDstBlend=10}, {type:SET_PROPERTY,data:_OutlineSrcBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineDstBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineBlendOp=0}, {type:SET_PROPERTY,data:_OutlineBlendOpAlpha=4}]},
+ {value:2,actions:[{type:SET_PROPERTY,data:render_queue=3000},{type:SET_PROPERTY,data:_AlphaForceOpaque=0}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=4}, {type:SET_PROPERTY,data:_Cutoff=0.002}, {type:SET_PROPERTY,data:_SrcBlend=5}, {type:SET_PROPERTY,data:_DstBlend=10}, {type:SET_PROPERTY,data:_SrcBlendAlpha=1}, {type:SET_PROPERTY,data:_DstBlendAlpha=1}, {type:SET_PROPERTY,data:_AddSrcBlend=5}, {type:SET_PROPERTY,data:_AddDstBlend=1}, {type:SET_PROPERTY,data:_AddSrcBlendAlpha=0}, {type:SET_PROPERTY,data:_AddDstBlendAlpha=1}, {type:SET_PROPERTY,data:_AlphaToCoverage=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}, {type:SET_PROPERTY,data:_OutlineSrcBlend=5}, {type:SET_PROPERTY,data:_OutlineDstBlend=10}, {type:SET_PROPERTY,data:_OutlineSrcBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineDstBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineBlendOp=0}, {type:SET_PROPERTY,data:_OutlineBlendOpAlpha=4}]},
+ {value:3,actions:[{type:SET_PROPERTY,data:render_queue=3000},{type:SET_PROPERTY,data:_AlphaForceOpaque=0}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=4}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=1}, {type:SET_PROPERTY,data:_DstBlend=10}, {type:SET_PROPERTY,data:_SrcBlendAlpha=1}, {type:SET_PROPERTY,data:_DstBlendAlpha=1}, {type:SET_PROPERTY,data:_AddSrcBlend=1}, {type:SET_PROPERTY,data:_AddDstBlend=1}, {type:SET_PROPERTY,data:_AddSrcBlendAlpha=0}, {type:SET_PROPERTY,data:_AddDstBlendAlpha=1}, {type:SET_PROPERTY,data:_AlphaToCoverage=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=1}, {type:SET_PROPERTY,data:_OutlineSrcBlend=1}, {type:SET_PROPERTY,data:_OutlineDstBlend=10}, {type:SET_PROPERTY,data:_OutlineSrcBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineDstBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineBlendOp=0}, {type:SET_PROPERTY,data:_OutlineBlendOpAlpha=4}]},
+ {value:4,actions:[{type:SET_PROPERTY,data:render_queue=3000},{type:SET_PROPERTY,data:_AlphaForceOpaque=0}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=4}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=1}, {type:SET_PROPERTY,data:_DstBlend=1}, {type:SET_PROPERTY,data:_SrcBlendAlpha=1}, {type:SET_PROPERTY,data:_DstBlendAlpha=1}, {type:SET_PROPERTY,data:_AddSrcBlend=1}, {type:SET_PROPERTY,data:_AddDstBlend=1}, {type:SET_PROPERTY,data:_AddSrcBlendAlpha=0}, {type:SET_PROPERTY,data:_AddDstBlendAlpha=1}, {type:SET_PROPERTY,data:_AlphaToCoverage=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}, {type:SET_PROPERTY,data:_OutlineSrcBlend=1}, {type:SET_PROPERTY,data:_OutlineDstBlend=1}, {type:SET_PROPERTY,data:_OutlineSrcBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineDstBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineBlendOp=0}, {type:SET_PROPERTY,data:_OutlineBlendOpAlpha=4}]},
+ {value:5,actions:[{type:SET_PROPERTY,data:render_queue=3000},{type:SET_PROPERTY,data:_AlphaForceOpaque=0}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=4}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=4}, {type:SET_PROPERTY,data:_DstBlend=1}, {type:SET_PROPERTY,data:_SrcBlendAlpha=1}, {type:SET_PROPERTY,data:_DstBlendAlpha=1}, {type:SET_PROPERTY,data:_AddSrcBlend=4}, {type:SET_PROPERTY,data:_AddDstBlend=1}, {type:SET_PROPERTY,data:_AddSrcBlendAlpha=0}, {type:SET_PROPERTY,data:_AddDstBlendAlpha=1}, {type:SET_PROPERTY,data:_AlphaToCoverage=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}, {type:SET_PROPERTY,data:_OutlineSrcBlend=4}, {type:SET_PROPERTY,data:_OutlineDstBlend=1}, {type:SET_PROPERTY,data:_OutlineSrcBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineDstBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineBlendOp=0}, {type:SET_PROPERTY,data:_OutlineBlendOpAlpha=4}]},
+ {value:6,actions:[{type:SET_PROPERTY,data:render_queue=3000},{type:SET_PROPERTY,data:_AlphaForceOpaque=0}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=4}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=2}, {type:SET_PROPERTY,data:_DstBlend=0}, {type:SET_PROPERTY,data:_SrcBlendAlpha=1}, {type:SET_PROPERTY,data:_DstBlendAlpha=1}, {type:SET_PROPERTY,data:_AddSrcBlend=2}, {type:SET_PROPERTY,data:_AddDstBlend=1}, {type:SET_PROPERTY,data:_AddSrcBlendAlpha=0}, {type:SET_PROPERTY,data:_AddDstBlendAlpha=1}, {type:SET_PROPERTY,data:_AlphaToCoverage=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}, {type:SET_PROPERTY,data:_OutlineSrcBlend=2}, {type:SET_PROPERTY,data:_OutlineDstBlend=0}, {type:SET_PROPERTY,data:_OutlineSrcBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineDstBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineBlendOp=0}, {type:SET_PROPERTY,data:_OutlineBlendOpAlpha=4}]},
+ {value:7,actions:[{type:SET_PROPERTY,data:render_queue=3000},{type:SET_PROPERTY,data:_AlphaForceOpaque=0}, {type:SET_PROPERTY,data:render_type=Transparent}, {type:SET_PROPERTY,data:_BlendOp=0}, {type:SET_PROPERTY,data:_BlendOpAlpha=4}, {type:SET_PROPERTY,data:_Cutoff=0}, {type:SET_PROPERTY,data:_SrcBlend=2}, {type:SET_PROPERTY,data:_DstBlend=3}, {type:SET_PROPERTY,data:_SrcBlendAlpha=1}, {type:SET_PROPERTY,data:_DstBlendAlpha=1}, {type:SET_PROPERTY,data:_AddSrcBlend=2}, {type:SET_PROPERTY,data:_AddDstBlend=1}, {type:SET_PROPERTY,data:_AddSrcBlendAlpha=0}, {type:SET_PROPERTY,data:_AddDstBlendAlpha=1}, {type:SET_PROPERTY,data:_AlphaToCoverage=0}, {type:SET_PROPERTY,data:_ZWrite=0}, {type:SET_PROPERTY,data:_ZTest=4}, {type:SET_PROPERTY,data:_AlphaPremultiply=0}, {type:SET_PROPERTY,data:_OutlineSrcBlend=2}, {type:SET_PROPERTY,data:_OutlineDstBlend=3}, {type:SET_PROPERTY,data:_OutlineSrcBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineDstBlendAlpha=1}, {type:SET_PROPERTY,data:_OutlineBlendOp=0}, {type:SET_PROPERTY,data:_OutlineBlendOpAlpha=4}]}
+ }]}]}", Int) = 0
+
+ [HideInInspector] m_mainOptions("Main", Float) = 0
+ _Color("Tint", Color) = (1, 1, 1, 1)
+ _MainTex("Base color", 2D) = "white" {}
+ [PanningTexture][Normal]_BumpMap("Normals", 2D) = "bump" {}
+ _BumpScale("Normal Intensity", Range(0, 10)) = 1
+ _OcclusionMap("Ambient occlusion", 2D) = "white" {}
+ _OcclusionStrength("Ambient occlusion", Range(0,1)) = 1
+
+ _Clip("Alpha Cuttoff", Range(0, 1.001)) = 0.5
+
+ [HideInInspector] m_reflectionOptions("Reflections", Float) = 0
[HideInInspector] m_start_Metallic("Metallics", Float) = 0
- _MetallicMask("Metallic Mask", 2D) = "white" { }
+ _MetallicMask("Metallic Mask", 2D) = "white" {}
_Metallic("Metallic", Range(0, 1)) = 0
_Smoothness("Smoothness", Range(0, 1)) = 0
[HideInInspector] m_end_Metallic("Metallics", Float) = 0
- //[HideInInspector] m_start_clearCoat("Clear Coat", Float) = 0
- //[Toggle(_COLORCOLOR_ON)]_EnableClearCoat("Enable Clear Coat", Float) = 0
- //[Enum(Vertex, 0, Pixel, 1)] _ClearCoatNormalToUse("What Normal?", Int) = 0
- //_ClearCoatCubeMap("Baked CubeMap", Cube) = "" { }
- //[Toggle(_)]_ClearCoatSampleWorld("Force Baked Cubemap", Range(0, 1)) = 0
- //_ClearCoatTint("Reflection Tint", Color) = (1, 1, 1)
- //_ClearCoatMask("Mask", 2D) = "white" { }
- //_ClearCoat("Clear Coat", Range(0, 1)) = 1
- //_ClearCoatSmoothnessMask("Smoothness Map", 2D) = "white" { }
- //[Toggle(_)]_ClearCoatInvertSmoothness("Invert Smoothness Map", Range(0, 1)) = 0
- //_ClearCoatSmoothness("Smoothness", Range(0, 1)) = 0
- //[Toggle(_)]_ClearCoatForceLighting("Force Lighting", Float) = 0
- //[HideInInspector] m_end_clearCoat("Clear Coat", Float) = 0
-
- //[HideInInspector] m_start_matcap("Matcap / Sphere Textures", Float) = 0
- //[Toggle(_COLORADDSUBDIFF_ON)]_MatcapEnable("Enable Matcap", Float) = 0
- //_MatcapColor("Color", Color) = (1, 1, 1, 1)
- //[TextureNoSO]_Matcap("Matcap", 2D) = "white" { }
- //_MatcapBorder("Border", Range(0, .5)) = 0.43
- //_MatcapMask("Mask", 2D) = "white" { }
- //_MatcapIntensity("Intensity", Range(0, 5)) = 1
- //_MatcapLightMask("Hide in Shadow", Range(0, 1)) = 0
- //_MatcapReplace("Replace With Matcap", Range(0, 1)) = 1
- //_MatcapMultiply("Multiply Matcap", Range(0, 1)) = 0
- //_MatcapAdd("Add Matcap", Range(0, 1)) = 0
- //[Enum(Vertex, 0, Pixel, 1)] _MatcapNormal("Normal to use", Int) = 1
- //[HideInInspector] m_end_matcap("Matcap", Float) = 0
- //[HideInInspector] m_start_Matcap2("Matcap 2", Float) = 0
- //[Toggle(_)]_Matcap2Enable("Enable Matcap 2", Float) = 0
- //_Matcap2Color("Color", Color) = (1, 1, 1, 1)
- //[TextureNoSO]_Matcap2("Matcap", 2D) = "white" { }
- //_Matcap2Border("Border", Range(0, .5)) = 0.43
- //_Matcap2Mask("Mask", 2D) = "white" { }
- //_Matcap2Intensity("Intensity", Range(0, 5)) = 1
- //_Matcap2LightMask("Hide in Shadow", Range(0, 1)) = 0
- //_Matcap2Replace("Replace With Matcap", Range(0, 1)) = 0
- //_Matcap2Multiply("Multiply Matcap", Range(0, 1)) = 0
- //_Matcap2Add("Add Matcap", Range(0, 1)) = 0
- //[Enum(Vertex, 0, Pixel, 1)] _Matcap2Normal("Normal to use", Int) = 1
- //[HideInInspector] m_end_Matcap2("Matcap 2", Float) = 0
-
- //[HideInInspector] m_start_specular("Specular Reflections", Float) = 0
- //[Toggle(_SPECGLOSSMAP)]_EnableSpecular("Enable Specular", Float) = 0
- //[Enum(Realistic, 1, Toon, 2, Anisotropic, 3)] _SpecularType("Specular Type", Int) = 1
- //_SpecularMinLightBrightness("Min Light Brightness", Range(0, 1)) = 0
- //_SpecularTint("Specular Tint", Color) = (.2, .2, .2, 1)
- //_SpecularMixAlbedoIntoTint("Mix Material Color Into Tint", Range(0, 1)) = 0
- //_SpecularSmoothness("Smoothness", Range(-2, 1)) = .75
- //_SpecularMap("Specular Map", 2D) = "white" { }
- //[Toggle(_)]_SpecularInvertSmoothness("Invert Smoothness", Float) = 0
- //_SpecularMask("Specular Mask", 2D) = "white" { }
- //[Enum(Alpha, 0, Grayscale, 1)] _SmoothnessFrom("Smoothness From", Int) = 1
- //[HideInInspector] m_start_SpecularToon("Toon", Float) = 0
- //[MultiSlider]_SpecularToonInnerOuter("Inner/Outer Edge", Vector) = (0.25, 0.3, 0, 1)
- //[HideInInspector] m_end_SpecularToon("Toon", Float) = 0
- //[HideInInspector] m_start_Anisotropic("Anisotropic", Float) = 0
- //[Enum(Tangent, 0, Bitangent, 1)] _SpecWhatTangent("(Bi)Tangent?", Int) = 0
- //_AnisoSpec1Alpha("Spec1 Alpha", Range(0, 1)) = 1
- //_AnisoSpec2Alpha("Spec2 Alpha", Range(0, 1)) = 1
- ////_Spec1Offset ("Spec1 Offset", Float) = 0
- ////_Spec1JitterStrength ("Spec1 Jitter Strength", Float) = 1.0
- //_Spec2Smoothness("Spec2 Smoothness", Range(0, 1)) = 0
- ////_Spec2Offset ("Spec2 Offset", Float) = 0
- ////_Spec2JitterStrength ("Spec2 Jitter Strength", Float) = 1.0
- //[Toggle(_)]_AnisoUseTangentMap("Use Directional Map?", Float) = 0
- //_AnisoTangentMap("Anisotropic Directional Map", 2D) = "bump" { }
- ////_ShiftTexture ("Shift Texture", 2D) = "black" { }
- //[HideInInspector] m_end_Anisotropic("Anisotropic", Float) = 0
- //[HideInInspector] m_end_specular("Specular Reflections", Float) = 0
-
- //[HideInInspector] m_Special_Effects("Special Effects", Float) = 0
- //[HideInInspector] m_start_emissionOptions("Emission / Glow", Float) = 0
- //[Toggle(_EMISSION)]_EnableEmission("Enable Emission", Float) = 0
- //[Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _EmissionUV("Emission UV#", Int) = 0
- //[HDR]_EmissionColor("Emission Color", Color) = (1, 1, 1, 1)
- //[PanningTexture]_EmissionMap("Emission Map", 2D) = "white" { }
- //[PanningTexture]_EmissionMask("Emission Mask", 2D) = "white" { }
- //[HideInInspector][Vector2]_EmissionMapPan("Panning", Vector) = (0, 0, 0, 0)
- //[HideInInspector][Vector2]_EmissionMaskPan("Panning", Vector) = (0, 0, 0, 0)
- //_EmissionStrength("Emission Strength", Range(0, 20)) = 0
- //// Inward out emission
- //[HideInInspector] m_start_CenterOutEmission("Center Out Emission", Float) = 0
- //[Toggle(_)]_EmissionCenterOutEnabled("Enable Center Out", Float) = 0
- //_EmissionCenterOutSpeed("Flow Speed", Float) = 5
- //[HideInInspector] m_end_CenterOutEmission("inward out emission", Float) = 0
- ////Glow in the dark Emission
- //[HideInInspector] m_start_glowInDarkEmissionOptions("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0
- //[Toggle(_)]_EnableGITDEmission("Enable Glow In The Dark", Float) = 0
- //[Enum(World, 0, Mesh, 1)] _GITDEWorldOrMesh("Lighting Type", Int) = 0
- //_GITDEMinEmissionMultiplier("Min Emission Multiplier", Range(0, 1)) = 1
- //_GITDEMaxEmissionMultiplier("Max Emission Multiplier", Range(0, 1)) = 0
- //_GITDEMinLight("Min Lighting", Range(0, 1)) = 0
- //_GITDEMaxLight("Max Lighting", Range(0, 1)) = 1
- //[HideInInspector] m_end_glowInDarkEmissionOptions("Glow In The Dark Emission (Requires Lighting Enabled)", Float) = 0
-
- //[HideInInspector] m_start_blinkingEmissionOptions("Blinking Emission", Float) = 0
- //_EmissiveBlink_Min("Emissive Blink Min", Float) = 1
- //_EmissiveBlink_Max("Emissive Blink Max", Float) = 1
- //_EmissiveBlink_Velocity("Emissive Blink Velocity", Float) = 4
- //[HideInInspector] m_end_blinkingEmissionOptions("Blinking Emission", Float) = 0
-
- //[HideInInspector] m_start_scrollingEmissionOptions("Scrolling Emission", Float) = 0
- //[Toggle(_)] _ScrollingEmission("Enable Scrolling Emission", Float) = 0
- //_EmissiveScroll_Direction("Emissive Scroll Direction", Vector) = (0, -10, 0, 0)
- //_EmissiveScroll_Width("Emissive Scroll Width", Float) = 10
- //_EmissiveScroll_Velocity("Emissive Scroll Velocity", Float) = 10
- //_EmissiveScroll_Interval("Emissive Scroll Interval", Float) = 20
- //[HideInInspector] m_end_scrollingEmissionOptions("Scrolling Emission", Float) = 0
- //[HideInInspector] m_end_emissionOptions("Emission / Glow", Float) = 0
-
- //[HideInInspector] m_start_flipBook("Flipbook", Float) = 0
- //[Toggle(_FLIPBOOK_BLENDING)]_EnableFlipbook("Enable Flipbook", Float) = 0
- //[Enum(UV0, 0, UV1, 1, UV2, 2, UV3, 3)] _FlipbookUV("Flipbook UV#", Int) = 0
- //[TextureArray]_FlipbookTexArray("Texture Array--{reference_property:_FlipbookTotalFrames}", 2DArray) = "" { }
- //_FlipbookColor("Color & alpha", Color) = (1, 1, 1, 1)
- //_FlipbookTotalFrames("Total Frames", Int) = 1
- //_FlipbookFPS("FPS", Float) = 30.0
- //_FlipbookScaleOffset("Scale | Offset", Vector) = (1, 1, 0, 0)
- //[Toggle(_)]_FlipbookTiled("Tiled?", Float) = 0
- //_FlipbookEmissionStrength("Emission Strength", Range(0, 20)) = 0
- //_FlipbookRotation("Rotation", Range(0, 360)) = 0
- //_FlipbookReplace("Replace", Range(0, 1)) = 1
- //_FlipbookMultiply("Multiply", Range(0, 1)) = 0
- //_FlipbookAdd("Add", Range(0, 1)) = 0
- //[HideInInspector] m_start_manualFlipbookControl("Manual Control", Float) = 0
- //_FlipbookCurrentFrame("Current Frame", Float) = -1
- //[HideInInspector] m_end_manualFlipbookControl("Manual Control", Float) = 0
- //[HideInInspector] m_end_flipBook("Flipbook", Float) = 0
-
- //[HideInInspector] m_start_dissolve("Dissolve", Float) = 0
- //[Toggle(_ALPHABLEND_ON)]_EnableDissolve("Enable Dissolve", Float) = 0
- //[Enum(Basic, 1, Point2Point, 2)] _DissolveType("Dissolve Type", Int) = 1
- //_DissolveEdgeWidth("Edge Width", Range(0, .5)) = 0.025
- //_DissolveEdgeHardness("Edge Hardness", Range(0, 1)) = 0.5
- //_DissolveEdgeColor("Edge Color", Color) = (1, 1, 1, 1)
- //[Gradient]_DissolveEdgeGradient("Edge Gradient", 2D) = "white" { }
- //_DissolveEdgeEmission("Edge Emission", Range(0, 20)) = 0
- //_DissolveTextureColor("Dissolve to Color", Color) = (1, 1, 1, 1)
- //[PanningTexture]_DissolveToTexture("Dissolve to Texture", 2D) = "white" { }
- //_DissolveToEmissionStrength("Dissolve to Emission Strength", Range(0, 20)) = 0
- //[HideInInspector][Vector2]_DissolveToPanning("Panning", Vector) = (0, 0, 0, 0)
- //[PanningTexture]_DissolveNoiseTexture("Dissolve Noise", 2D) = "white" { }
- //[Toggle(_)]_DissolveInvertNoise("Invert Noise", Float) = 0
- //[PanningTexture]_DissolveDetailNoise("Dissolve Detail Noise", 2D) = "black" { }
- //[Toggle(_)]_DissolveInvertDetailNoise("Invert Detail Noise", Float) = 0
- //_DissolveDetailStrength("Dissolve Detail Strength", Range(0, 1)) = 0.1
- //[HideInInspector][Vector2]_DissolveNoisePan("Panning", Vector) = (0, 0, 0, 0)
- //[HideInInspector][Vector2]_DissolveDetailPan("Panning", Vector) = (0, 0, 0, 0)
- //_DissolveAlpha("Dissolve Alpha", Range(0, 1)) = 0
- //_DissolveMask("Dissolve Mask", 2D) = "white" { }
- //[Toggle(_)]_ContinuousDissolve("Continuous Dissolve Speed", Float) = 0
- //[HideInInspector] m_start_pointToPoint("point to point", Float) = 0
- //[Enum(Local, 0, World, 1)] _DissolveP2PWorldLocal("World/Local", Int) = 0
- //_DissolveP2PEdgeLength("Edge Length", Float) = 0.1
- //[Vector3]_DissolveStartPoint("Start Point", Vector) = (0, -1, 0, 0)
- //[Vector3]_DissolveEndPoint("End Point", Vector) = (0, 1, 0, 0)
- //[HideInInspector] m_end_pointToPoint("Point To Point", Float) = 0
- //[HideInInspector] m_end_dissolve("Dissolve", Float) = 0
-
- //[HideInInspector] m_start_panosphereOptions("Panosphere / Cubemaps", Float) = 0
- //[Toggle(_DETAIL_MULX2)]_PanoToggle("Enable Panosphere", Float) = 0
- //_PanosphereColor("Color", Color) = (1, 1, 1, 1)
- //_PanosphereTexture("Texture", 2D) = "white" { }
- //_PanoMapTexture("Mask", 2D) = "white" { }
- //_PanoEmission("Emission Strength", Range(0, 10)) = 0
- //_PanoBlend("Alpha", Range(0, 1)) = 0
- //[Vector3]_PanospherePan("Pan Speed", Vector) = (0, 0, 0, 0)
- //[Toggle(_)]_PanoCubeMapToggle("Use Cubemap", Float) = 0
- //[TextureNoSO]_PanoCubeMap("CubeMap", Cube) = "" { }
- //[HideInInspector] m_end_panosphereOptions("Panosphere / Cubemaps", Float) = 0
-
- //[HideInInspector] m_start_mirrorOptions("Mirror", Float) = 0
- //[Toggle(_REQUIRE_UV2)]_EnableMirrorOptions("Enable Mirror Options", Float) = 0
- //[Enum(ShowInBoth, 0, ShowOnlyInMirror, 1, DontShowInMirror, 2)] _Mirror("Show in mirror", Int) = 0
- //[Toggle(_)]_EnableMirrorTexture("Enable Mirror Texture", Float) = 0
- //_MirrorTexture("Mirror Tex", 2D) = "white" { }
- //[HideInInspector] m_end_mirrorOptions("Mirror", Float) = 0
-
- //[HideInInspector] m_start_distanceFade("Distance Fade", Float) = 0
- //_MainMinAlpha("Minimum Alpha", Range(0, 1)) = 0
- //_MainFadeTexture("Fade Map", 2D) = "white" { }
- //[Vector2]_MainDistanceFade("Distance Fade X to Y", Vector) = (0, 0, 0, 0)
- //[HideInInspector] m_end_distanceFade("Distance Fade", Float) = 0
-
- //[HideInInspector] m_start_angularFade("Angular Fade", Float) = 0
- //[Toggle(_SUNDISK_NONE)]_EnableRandom("Enable Angular Fade", Float) = 0
- //[Enum(Camera Face Model, 0, Model Face Camera, 1, Face Each Other, 2)] _AngleType("Angle Type", Int) = 0
- //[Enum(Model, 0, Vertex, 1)] _AngleCompareTo("Model or Vert Positon", Int) = 0
- //[Vector3]_AngleForwardDirection("Forward Direction", Vector) = (0, 0, 1, 0)
- //_CameraAngleMin("Camera Angle Min", Range(0, 180)) = 45
- //_CameraAngleMax("Camera Angle Max", Range(0, 180)) = 90
- //_ModelAngleMin("Model Angle Min", Range(0, 180)) = 45
- //_ModelAngleMax("Model Angle Max", Range(0, 180)) = 90
- //_AngleMinAlpha("Min Alpha", Range(0, 1)) = 0
- //[HideInInspector] m_end_angularFade("Angular Fade", Float) = 0
- //// End Special Effects
-
- //[HideInInspector] m_parallaxMap("Parallax", Float) = 0
- //[Toggle(_PARALLAXMAP)]_ParallaxMap("Enable Parallax FX", Float) = 0
- //[Toggle(_)]_ParallaxHeightMapEnabled("Enable Parallax Height", Float) = 0
- //[Toggle(_)]_ParallaxInternalMapEnabled("Enable Parallax Internal", Float) = 0
- //[HideInInspector] m_start_parallaxHeightmap("Heightmap", Float) = 0
- //_ParallaxHeightMap("Height Map", 2D) = "black" { }
- //_ParallaxStrength("Parallax Strength", Range(0, 1)) = 0
- //[HideInInspector] m_end_parallaxHeightmap("Heightmap", Float) = 0
- //[HideInInspector] m_start_parallaxInternal("Internal", Float) = 0
- //[Enum(Basic, 0, HeightMap, 1)] _ParallaxInternalHeightmapMode("Parallax Mode", Int) = 0
- //[Toggle(_)]_ParallaxInternalHeightFromAlpha("HeightFromAlpha", Float) = 0
- //_ParallaxInternalMap("Internal Map", 2D) = "black" { }
- //_ParallaxInternalIterations("Parallax Internal Iterations", Range(1, 50)) = 1
- //_ParallaxInternalMinDepth("Min Depth", Float) = 0
- //_ParallaxInternalMaxDepth("Max Depth", Float) = 1
- //_ParallaxInternalMinFade("Min Depth Brightness", Range(0, 5)) = 0
- //_ParallaxInternalMaxFade("Max Depth Brightness", Range(0, 5)) = 1
- //_ParallaxInternalMinColor("Min Depth Color", Color) = (1, 1, 1, 1)
- //_ParallaxInternalMaxColor("Max Depth Color", Color) = (1, 1, 1, 1)
- //[Vector2]_ParallaxInternalPanSpeed("Pan Speed", Vector) = (0, 0, 0, 0)
- //[Vector2]_ParallaxInternalPanDepthSpeed("Per Level Speed Multiplier", Vector) = (0, 0, 0, 0)
- //[HideInInspector] m_end_parallaxInternal("Internal", Float) = 0
- //[HideInInspector] m_start_parallaxAdvanced("Advanced", Float) = 0
- //_ParallaxBias("Parallax Bias (0.42)", Float) = 0.42
- //[HideInInspector] m_end_parallaxAdvanced("Advanced", Float) = 0
-
- [HideInInspector] m_renderingOptions("Rendering Options", Float) = 0
- [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 2
- [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4
- [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend("Source Blend", Float) = 5
- [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend("Destination Blend", Float) = 10
- [Enum(Off, 0, On, 1)] _ZWrite("ZWrite", Int) = 1
- [Enum(Realistic, 0, Toon, 1)] _SphericalHarmonics("Spherical harmonics", Int) = 1
- //[Toggle(_)]_IgnoreFog("Ignore Fog", Float) = 0
- //[HideInInspector] Instancing ("Instancing", Float) = 0 //add this property for instancing variants settings to be shown
-
- [HideInInspector] m_LUTs("Filament stuff", Float) = 0
- [NonModifiableTextureData]_DFG("DFG", 2D) = "white" { }
- [ThryWideEnum(Water, 0.02, Skin, 0.028, Eyes, 0.025, Hair, 0.046, Teeth, 0.058, Fabric, 0.05, Stone, 0.045, Plastic, 0.045, Glass, 0.06, Gemstone, 0.07, Diamond, 0.18)]_reflectance("Reflectance", Float) = 0.028
- [Helpbox]_reflectance_help("Values are documented in the filament whitepaper here https://google.github.io/filament/Filament.html#toc4.8.3.2", Float) = 1
- _specularAntiAliasingVariance("Specular AA variance", Float) = 0.15
- _specularAntiAliasingThreshold("Specular AA variance", Float) = 0.25
-
- //[HideInInspector] m_start_StencilPassOptions("Stencil", Float) = 0
- //[IntRange] _StencilRef("Stencil Reference Value", Range(0, 255)) = 0
- ////[IntRange] _StencilReadMaskRef ("Stencil ReadMask Value", Range(0, 255)) = 0
- ////[IntRange] _StencilWriteMaskRef ("Stencil WriteMask Value", Range(0, 255)) = 0
- //[Enum(UnityEngine.Rendering.StencilOp)] _StencilPassOp("Stencil Pass Op", Float) = 0
- //[Enum(UnityEngine.Rendering.StencilOp)] _StencilFailOp("Stencil Fail Op", Float) = 0
- //[Enum(UnityEngine.Rendering.StencilOp)] _StencilZFailOp("Stencil ZFail Op", Float) = 0
- //[Enum(UnityEngine.Rendering.CompareFunction)] _StencilCompareFunction("Stencil Compare Function", Float) = 8
- //[HideInInspector] m_end_StencilPassOptions("Stencil", Float) = 0
-
- //[HideInInspector] m_start_debugOptions("Debug", Float) = 0
- //[Toggle(_COLOROVERLAY_ON)]_DebugDisplayDebug("Display Debug Info", Float) = 0
- //[Enum(Off, 0, Vertex Normal, 1, Pixel Normal, 2, Tangent, 3, Binormal, 4)] _DebugMeshData("Mesh Data", Int) = 0
- //[Enum(Off, 0, Attenuation, 1, Direct Lighting, 2, Indirect Lighting, 3, light Map, 4, Ramped Light Map, 5, Final Lighting, 6)] _DebugLightingData("Lighting Data", Int) = 0
- //[Enum(Off, 0, finalSpecular, 1, tangentDirectionMap, 2, shiftTexture, 3)] _DebugSpecularData("Specular Data", Int) = 0
- //[Enum(Off, 0, View Dir, 1, Tangent View Dir, 2, Forward Dir, 3, WorldPos, 4, View Dot Normal, 5)] _DebugCameraData("Camera Data", Int) = 0
- //[HideInInspector] m_end_debugOptions("Debug", Float) = 0
+ [HideInInspector] m_gimmicks("Gimmicks", Float) = 0
+ //ifex _OutlinesEnabled==0
+ [HideInInspector] m_start_Outlines("Outlines", Float) = 0
+ [ThryToggle(_)]_OutlinesEnabled("Enable", Float) = 0
+ _Outline_Color("Color", Color) = (0, 0, 0, 1)
+ _Outline_Width("Width", Float) = 0.01
+ [HideInInspector] m_start_OutlinesMask("Mask", Float) = 0
+ [ThryToggle(_OUTLINE_MASK)]_Outline_Mask_Enabled("Enable", Float) = 0
+ _Outline_Mask("Thickness mask", 2D) = "white" {}
+ [HideInInspector] m_end_OutlinesMask("Mask", Float) = 0
+ [HideInInspector] m_end_Outlines("Outlines", Float) = 0
+ //endex
+
+ [HideInInspector] m_lightingOptions("Lighting Options", Float) = 0
+ //ifex _Receive_Shadows_Enabled==0
+ [HideInInspector] m_start_Shadow_Receiving("Receive shadows", Float) = 0
+ [ThryToggle(_RECEIVE_SHADOWS)] _Receive_Shadows_Enabled("Enable", Float) = 1
+ _Shadow_Strength("Shadow strength", Range(0, 1)) = 0.25
+ [HideInInspector] m_end_Shadow_Receiving("Shadows", Float) = 0
+ //endex
+ //ifex _Cast_Shadows_Enabled==0
+ [HideInInspector] m_start_Shadow_Casting("Cast shadows", Float) = 0
+ [ThryToggle(_)] _Cast_Shadows_Enabled("Enable", Float) = 1
+ [HideInInspector] m_end_Shadow_Casting("Cast shadows", Float) = 0
+ //ifex _Wrapped_Lighting_Enabled==0
+ [HideInInspector] m_start_WrappedLighting("Wrapped lighting", Float) = 0
+ [ThryToggle(_WRAPPED_LIGHTING)] _Wrapped_Lighting_Enabled("Enable", Float) = 1
+ _Wrap_NoL_Diffuse_Strength("Diffuse strength", Range(0, 1)) = 0.25
+ _Wrap_NoL_Specular_Strength("Specular strength", Range(0, 1)) = 0.1
+ [HideInInspector] m_end_WrappedLighting("Wrapped lighting", Float) = 0
+ //endex
+
+ [HideInInspector] m_renderingOptions("Rendering Options", Float) = 0
+ [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 2
+ [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Float) = 4
+ [Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend("Source Blend", Float) = 1
+ [Enum(UnityEngine.Rendering.BlendMode)] _DstBlend("Destination Blend", Float) = 0
+ [Enum(Off, 0, On, 1)] _ZWrite("ZWrite", Int) = 1
+ [Enum(Realistic, 0, Toon, 1)] _SphericalHarmonics("Spherical harmonics", Int) = 1
+ [HideInInspector] m_start_blending ("Blending--{button_help:{text:Tutorial,action:{type:URL,data:https://www.poiyomi.com/rendering/blending},hover:Documentation}}", Float) = 0
+ [DoNotAnimate][Enum(Thry.BlendOp)]_BlendOp ("RGB Blend Op", Int) = 0
+ [DoNotAnimate][Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("RGB Source Blend", Int) = 1
+ [DoNotAnimate][Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("RGB Destination Blend", Int) = 0
+ [DoNotAnimate][Space][ThryHeaderLabel(Additive Blending, 13)]
+ [DoNotAnimate][Enum(Thry.BlendOp)]_AddBlendOp ("RGB Blend Op", Int) = 4
+ [DoNotAnimate][Enum(UnityEngine.Rendering.BlendMode)] _AddSrcBlend ("RGB Source Blend", Int) = 1
+ [DoNotAnimate][Enum(UnityEngine.Rendering.BlendMode)] _AddDstBlend ("RGB Destination Blend", Int) = 1
+ [DoNotAnimate][HideInInspector] m_start_alphaBlending ("Advanced Alpha Blending", Float) = 0
+ [DoNotAnimate][Enum(Thry.BlendOp)]_BlendOpAlpha ("Alpha Blend Op", Int) = 0
+ [DoNotAnimate][Enum(UnityEngine.Rendering.BlendMode)] _SrcBlendAlpha ("Alpha Source Blend", Int) = 1
+ [DoNotAnimate][Enum(UnityEngine.Rendering.BlendMode)] _DstBlendAlpha ("Alpha Destination Blend", Int) = 10
+ [DoNotAnimate][Space][ThryHeaderLabel(Additive Blending, 13)]
+ [DoNotAnimate][Enum(Thry.BlendOp)]_AddBlendOpAlpha ("Alpha Blend Op", Int) = 4
+ [DoNotAnimate][Enum(UnityEngine.Rendering.BlendMode)] _AddSrcBlendAlpha ("Alpha Source Blend", Int) = 0
+ [DoNotAnimate][Enum(UnityEngine.Rendering.BlendMode)] _AddDstBlendAlpha ("Alpha Destination Blend", Int) = 1
+ [DoNotAnimate][HideInInspector] m_end_alphaBlending ("Advanced Alpha Blending", Float) = 0
+ [HideInInspector] m_end_blending ("Blending", Float) = 0
+ //ifex _OutlinesEnabled==0
+ // Outline Blending Options
+ [HideInInspector] m_start_outlineBlending ("Outline Blending", Float) = 0
+ [Enum(Thry.BlendOp)]_OutlineBlendOp ("RGB Blend Op", Int) = 0
+ [Enum(UnityEngine.Rendering.BlendMode)] _OutlineSrcBlend ("RGB Source Blend", Int) = 1
+ [Enum(UnityEngine.Rendering.BlendMode)] _OutlineDstBlend ("RGB Destination Blend", Int) = 0
+ [HideInInspector] m_start_outlineAlphaBlending ("Advanced Alpha Blending", Float) = 0
+ [Enum(Thry.BlendOp)]_OutlineBlendOpAlpha ("Alpha Blend Op", Int) = 4
+ [Enum(UnityEngine.Rendering.BlendMode)] _OutlineSrcBlendAlpha ("Alpha Source Blend", Int) = 1
+ [Enum(UnityEngine.Rendering.BlendMode)] _OutlineDstBlendAlpha ("Alpha Destination Blend", Int) = 0
+ [HideInInspector] m_end_outlineAlphaBlending ("Advanced Alpha Blending", Float) = 0
+ [HideInInspector] m_end_outlineBlending ("Outline Blending", Float) = 0
+ //endex
+
+ [HideInInspector] m_FilamentStuff("Filament stuff", Float) = 0
+ [NonModifiableTextureData]_DFG("DFG", 2D) = "white" {}
+ [ThryWideEnum(Water, 0.02, Skin, 0.028, Eyes, 0.025, Hair, 0.046, Teeth, 0.058, Fabric, 0.05, Stone, 0.045, Plastic, 0.045, Glass, 0.06, Gemstone, 0.07, Diamond, 0.18)]_reflectance("Reflectance", Float) = 0.028
+ [Helpbox]_reflectance_help("Values are documented in the filament whitepaper here https://google.github.io/filament/Filament.html#toc4.8.3.2", Float) = 1
+ _specularAntiAliasingVariance("Specular AA variance", Float) = 0.15
+ _specularAntiAliasingThreshold("Specular AA variance", Float) = 0.25
+ }
+
+ SubShader {
+ Tags { "RenderType" = "Opaque" "Queue" = "Geometry" "VRCFallback" = "Standard" }
+
+ Pass {
+ Name "FORWARD"
+ Tags { "LightMode" = "ForwardBase" }
+ BlendOp [_BlendOp], [_BlendOpAlpha]
+ Blend [_SrcBlend] [_DstBlend], [_SrcBlendAlpha] [_DstBlendAlpha]
+ Cull [_Cull]
+ ZWrite [_ZWrite]
+ ZTest [_ZTest]
+
+ CGPROGRAM
+ #pragma target 5.0
+ #pragma multi_compile_fwdbase
+ #pragma multi_compile_instancing
+ #pragma multi_compile_fog
+ #pragma vertex vert
+ #pragma fragment frag
+
+ #define FORWARD_BASE_PASS
+
+ #include "2ner.cginc"
+ ENDCG
}
+ Pass {
+ Name "ADDITIVE"
+ Tags { "LightMode" = "ForwardAdd" }
+ Fog { Color (0,0,0,0) }
+ Cull [_Cull]
+ ZWrite Off
+ ZTest [_ZTest]
+ BlendOp [_AddBlendOp], [_AddBlendOpAlpha]
+ Blend [_AddSrcBlend] [_AddDstBlend], [_AddSrcBlendAlpha] [_AddDstBlendAlpha]
+
+ CGPROGRAM
+ #pragma target 5.0
+ #pragma multi_compile_fwdadd_fullshadows
+ #pragma multi_compile_instancing
+ #pragma multi_compile_fog
+ #pragma vertex vert
+ #pragma fragment frag
+
+ #define FORWARD_ADD_PASS
+
+ #include "2ner.cginc"
+ ENDCG
+ }
+ //ifex _OutlinesEnabled==0
+ Pass {
+ Name "OUTLINES"
+ Name "FORWARD"
+ Tags { "LightMode" = "ForwardBase" }
+ Cull Front
+ ZWrite [_ZWrite]
+ ZTest [_ZTest]
+ BlendOp [_OutlineBlendOp], [_OutlineBlendOpAlpha]
+ Blend [_OutlineSrcBlend] [_OutlineDstBlend], [_OutlineSrcBlendAlpha] [_OutlineDstBlendAlpha]
+
+ CGPROGRAM
+ #pragma target 5.0
+ #pragma multi_compile_fwdbase
+ #pragma multi_compile_instancing
+ #pragma multi_compile_fog
+ #pragma vertex vert
+ #pragma fragment frag
+
+ #define OUTLINE_PASS
+
+ #include "2ner.cginc"
+ ENDCG
+ }
+ //endex
+ // TODO I think this is unnecessary? I'm casting shadows just fine in
+ // testbed.
+ Pass {
+ Name "ShadowCaster"
+ Tags { "LightMode" = "ShadowCaster" }
+
+ ZWrite [_ZWrite]
+ ZTest [_ZTest]
- CustomEditor "Thry.ShaderEditor"
- SubShader {
- Tags { "RenderType" = "Opaque" "Queue" = "Geometry" "VRCFallback" = "Standard" }
- LOD 200
+ CGPROGRAM
+ #pragma target 5.0
+ #pragma multi_compile_shadowcaster
+ #pragma multi_compile_instancing
+ #pragma multi_compile_fog
+ #pragma vertex vert
+ #pragma fragment frag
- Pass {
- Name "FORWARD"
- Tags { "LightMode" = "ForwardBase" }
- Blend [_SrcBlend] [_DstBlend]
- Cull [_Cull]
- ZWrite [_ZWrite]
- ZTest [_ZTest]
-
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #pragma multi_compile_fwdbase
+ #define SHADOW_CASTER_PASS
- #define FORWARD_BASE_PASS
+ #include "2ner.cginc"
- #include "2ner.cginc"
- ENDCG
- }
+ ENDCG
}
- FallBack "Diffuse"
+ }
+ CustomEditor "Thry.ShaderEditor"
}
diff --git a/features.cginc b/features.cginc
new file mode 100644
index 0000000..c586f4a
--- /dev/null
+++ b/features.cginc
@@ -0,0 +1,12 @@
+#ifndef __FEATURES_INC
+#define __FEATURES_INC
+
+//ifex _Wrapped_Lighting_Enabled==0
+#pragma shader_feature _WRAPPED_LIGHTING
+//endex
+//ifex _Outline_Mask_Enabled==1
+#pragma shader_feature _OUTLINE_MASK
+//endex
+
+#endif // __FEATURES_INC
+
diff --git a/globals.cginc b/globals.cginc
index 5fc9a95..b92dbbe 100644
--- a/globals.cginc
+++ b/globals.cginc
@@ -1,6 +1,8 @@
#ifndef __GLOBALS_INC
#define __GLOBALS_INC
+SamplerState linear_repeat_s;
+
sampler2D _MainTex;
float4 _MainTex_ST;
fixed4 _Color;
@@ -11,6 +13,12 @@ float _BumpScale;
sampler2D _OcclusionMap;
float _OcclusionStrength;
+float _Shadow_Strength;
+//ifex _Wrap_NoL_Strength>0
+float _Wrap_NoL_Diffuse_Strength;
+float _Wrap_NoL_Specular_Strength;
+//endex
+
float _Clip;
int _Mode;
float _Smoothness;
@@ -21,4 +29,12 @@ float _reflectance;
float _specularAntiAliasingVariance;
float _specularAntiAliasingThreshold;
+#if defined(OUTLINE_PASS)
+float4 _Outline_Color;
+float _Outline_Width;
+#if defined(_OUTLINE_MASK)
+texture2D _Outline_Mask;
+#endif
+#endif
+
#endif // __GLOBALS_INC
diff --git a/interpolators.cginc b/interpolators.cginc
index f3c18aa..56b5f60 100644
--- a/interpolators.cginc
+++ b/interpolators.cginc
@@ -4,20 +4,27 @@
#include "AutoLight.cginc"
struct appdata {
- float4 vertex : POSITION;
- float2 uv : TEXCOORD0;
- float3 normal : NORMAL;
- float4 tangent : TANGENT;
+ float4 vertex : POSITION;
+ float2 uv : TEXCOORD0;
+ float2 uv1 : TEXCOORD1;
+ float3 normal : NORMAL;
+ float4 tangent : TANGENT;
+
+ UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f {
- float2 uv : TEXCOORD0;
- float4 pos : SV_POSITION;
- float3 worldPos : TEXCOORD1;
- float3 normal : TEXCOORD2;
- float3 tangent : TEXCOORD3;
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ float3 worldPos : TEXCOORD1;
+ float3 normal : TEXCOORD2;
+ float3 tangent : TEXCOORD3;
float3 bitangent : TEXCOORD4;
- SHADOW_COORDS(5)
+ float4 eyeVec : TEXCOORD5; // eyeVec.xyz | fogCoord
+ UNITY_LIGHTING_COORDS(6,7)
+
+ UNITY_VERTEX_INPUT_INSTANCE_ID
+ UNITY_VERTEX_OUTPUT_STEREO
};
#endif // __INTERPOLATORS_INC
diff --git a/math.cginc b/math.cginc
index a12040a..17ce86f 100644
--- a/math.cginc
+++ b/math.cginc
@@ -10,6 +10,11 @@ float pow5(float x)
return (tmp * tmp) * x;
}
+float wrapNoL(float NoL, float factor) {
+ // https://www.iro.umontreal.ca/~derek/files/jgt_wrap_final.pdf
+ return pow(max(1E-4, (NoL + factor) / (1 + factor)), 1 + factor);
+}
+
#endif // __MATH_INC
diff --git a/yum_brdf.cginc b/yum_brdf.cginc
index 204a276..52bc495 100644
--- a/yum_brdf.cginc
+++ b/yum_brdf.cginc
@@ -25,7 +25,8 @@ float DisneyDiffuse(float roughness,
return f_d;
}
-float3 diffuseLobe(float3 albedo, float roughness, float LoH, float NoL, float NoV, float f90)
+float3 diffuseLobe(float3 albedo, float roughness, float LoH, float NoL,
+ float NoV, float f90)
{
return albedo * DisneyDiffuse(roughness, LoH, NoL, NoV, f90);
}
@@ -46,7 +47,14 @@ float3 specularLobe(YumPbr pbr, float f0,
float4 YumBRDF(v2f i, const YumLighting light, YumPbr pbr) {
const float3 h = normalize(light.view_dir + light.dir);
const float LoH = saturate(dot(light.dir, h));
- const float NoL = dot(pbr.normal, light.dir);
+ const float NoL = light.NoL;
+#if defined(_WRAPPED_LIGHTING)
+ const float NoL_wrapped_s = light.NoL_wrapped_s;
+ const float NoL_wrapped_d = light.NoL_wrapped_d;
+#else
+ const float NoL_wrapped_s = light.NoL;
+ const float NoL_wrapped_d = light.NoL;
+#endif
const float NoV = max(1E-4, dot(pbr.normal, light.view_dir));
const float NoH = saturate(dot(pbr.normal, h));
const float VoL = saturate(dot(light.view_dir, light.dir));
@@ -67,13 +75,13 @@ float4 YumBRDF(v2f i, const YumLighting light, YumPbr pbr) {
float3 direct;
{
+ float3 Fd = diffuseLobe(pbr.albedo, pbr.roughness_perceptual, LoH, NoL,
+ NoV, f90);
+ Fd *= (1.0 - pbr.metallic) * light.attenuation;
+ float3 Fr = specularLobe(pbr, f0, h, LoH, NoH, NoV, NoL_wrapped_s);
+ float3 color = Fd * NoL_wrapped_d + Fr * energy_compensation * NoL_wrapped_s;
- float3 Fd = diffuseLobe(pbr.albedo, pbr.roughness_perceptual, LoH, NoL, NoV, f90);
- Fd *= (1.0 - pbr.metallic);
- float3 Fr = specularLobe(pbr, f0, h, LoH, NoH, NoV, NoL);
- float3 color = Fd + Fr * energy_compensation;
-
- direct = color * light.direct * saturate(NoL);
+ direct = color * light.direct;
}
float3 indirect;
@@ -83,7 +91,7 @@ float4 YumBRDF(v2f i, const YumLighting light, YumPbr pbr) {
indirect = Fr + Fd;
}
- return float4(direct + indirect, 1);
+ return float4(direct + indirect, pbr.albedo.a);
}
#endif // __YUM_BRDF_INC
diff --git a/yum_lighting.cginc b/yum_lighting.cginc
index d62b95e..ecbc2da 100644
--- a/yum_lighting.cginc
+++ b/yum_lighting.cginc
@@ -14,6 +14,11 @@ struct YumLighting {
float3 diffuse;
float3 specular;
float NoL;
+#if defined(_WRAPPED_LIGHTING)
+ float NoL_wrapped_s; // specular
+ float NoL_wrapped_d; // diffuse
+#endif
+ float attenuation;
};
float getShadowAttenuation(v2f i)
@@ -45,7 +50,7 @@ float getShadowAttenuation(v2f i)
float shadow = 1;
attenuation = 1;
#endif
- //attenuation *= lerp(1, shadow, _Shadow_Strength);
+ attenuation *= lerp(1, shadow, _Shadow_Strength);
return attenuation;
}
@@ -119,6 +124,12 @@ YumLighting GetYumLighting(v2f i, YumPbr pbr) {
light.specular = getIndirectSpecular(i, pbr, light.view_dir);
light.NoL = saturate(dot(i.normal, light.dir));
+#if defined(_WRAPPED_LIGHTING)
+ light.NoL_wrapped_s = wrapNoL(light.NoL, _Wrap_NoL_Specular_Strength);
+ light.NoL_wrapped_d = wrapNoL(light.NoL, _Wrap_NoL_Diffuse_Strength);
+#endif
+
+ light.attenuation = getShadowAttenuation(i);
return light;
}
diff --git a/yum_pbr.cginc b/yum_pbr.cginc
index b895cd0..f89d865 100644
--- a/yum_pbr.cginc
+++ b/yum_pbr.cginc
@@ -17,7 +17,12 @@ struct YumPbr {
YumPbr GetYumPbr(v2f i) {
YumPbr result;
+#if defined(OUTLINE_PASS)
+ result.albedo = _Outline_Color;
+ result.albedo.a *= tex2D(_MainTex, i.uv).a;
+#else
result.albedo = tex2D(_MainTex, i.uv) * _Color;
+#endif
float3 normal_raw = UnpackScaleNormal(tex2D(_BumpMap, i.uv), _BumpScale);
float3x3 tangentToWorld = float3x3(i.tangent, i.bitangent, i.normal);