├── Editor.meta ├── Editor ├── RSInspector.cs └── RSInspector.cs.meta ├── Emissive Scroll Tex.meta ├── Emissive Scroll Tex ├── Emissive Sample 01.png ├── Emissive Sample 01.png.meta ├── Emissive Sample 02.png ├── Emissive Sample 02.png.meta ├── Emissive Sample 03.png └── Emissive Sample 03.png.meta ├── Functions.meta ├── Functions ├── Reflex Shader Function.asset └── Reflex Shader Function.asset.meta ├── Images.meta ├── Images ├── RS_Header.png ├── RS_Header.png.meta ├── RS_Logo.png └── RS_Logo.png.meta ├── LICENSE ├── LICENSE.meta ├── Matcaps.meta ├── Matcaps ├── Matcap 01.png ├── Matcap 01.png.meta ├── Matcap 02.png ├── Matcap 02.png.meta ├── Matcap 03.png ├── Matcap 03.png.meta ├── Matcap 04.png ├── Matcap 04.png.meta ├── Shadow 01.png ├── Shadow 01.png.meta ├── Shadow 02.png └── Shadow 02.png.meta ├── README.md ├── README.md.meta ├── Reflex Shader 2 Cutout.shader ├── Reflex Shader 2 Cutout.shader.meta ├── Reflex Shader 2 Stencil Reader.shader ├── Reflex Shader 2 Stencil Reader.shader.meta ├── Reflex Shader 2 Stencil Writer.shader ├── Reflex Shader 2 Stencil Writer.shader.meta ├── Reflex Shader 2 Transparent.shader ├── Reflex Shader 2 Transparent.shader.meta ├── Reflex Shader 2.shader ├── Reflex Shader 2.shader.meta ├── no_outline.meta └── no_outline ├── Cutout no_outline.shader ├── Cutout no_outline.shader.meta ├── Opaque no_outline.shader ├── Opaque no_outline.shader.meta ├── Stencil Reader no_outline.shader ├── Stencil Reader no_outline.shader.meta ├── Stencil Writer no_outline.shader ├── Stencil Writer no_outline.shader.meta ├── Transparent no_outline.shader └── Transparent no_outline.shader.meta /Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 288d1df4e0a11954686fe5c171114936 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/RSInspector.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using System; 6 | 7 | public class RSInspector : ShaderGUI 8 | { 9 | 10 | // Foldout Base 11 | static bool Foldout(bool display, string title) 12 | { 13 | var style = new GUIStyle("ShurikenModuleTitle"); 14 | style.font = new GUIStyle(EditorStyles.boldLabel).font; 15 | style.border = new RectOffset(15, 7, 4, 4); 16 | style.fixedHeight = 22; 17 | style.contentOffset = new Vector2(20f, -2f); 18 | 19 | var rect = GUILayoutUtility.GetRect(16f, 22f, style); 20 | GUI.Box(rect, title, style); 21 | 22 | var e = Event.current; 23 | 24 | var toggleRect = new Rect(rect.x + 4f, rect.y + 2f, 13f, 13f); 25 | if (e.type == EventType.Repaint) { 26 | EditorStyles.foldout.Draw(toggleRect, false, false, display, false); 27 | } 28 | 29 | if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition)) { 30 | display = !display; 31 | e.Use(); 32 | } 33 | 34 | return display; 35 | } 36 | 37 | 38 | static bool IsShowMatcapSettings = false; 39 | static bool IsShowRimLightSettings = false; 40 | static bool IsShowOutlineSettings = false; 41 | static bool IsShowReflectionSettings = false; 42 | static bool IsShowShadowSettings = false; 43 | static bool IsShowAdvancedShadowSettings = false; 44 | static bool IsShowColorShiftSettings = false; 45 | static bool IsShowEmissionSettings = false; 46 | static bool IsShowParallaxEmission = false; 47 | static bool IsShowAdvancedSettings = false; 48 | 49 | 50 | static string _RSVersion = "2.2.0-relase1"; 51 | 52 | public override void OnGUI (MaterialEditor materialEditor, MaterialProperty[] properties) 53 | { 54 | 55 | Material material = materialEditor.target as Material; 56 | 57 | #region Material Properties 58 | MaterialProperty Diffuse = ShaderGUI.FindProperty("_MainTex", properties); 59 | MaterialProperty DiffuseColor = ShaderGUI.FindProperty("_DiffuseColor", properties); 60 | MaterialProperty Emission = ShaderGUI.FindProperty("_EmissionMap", properties); 61 | MaterialProperty EmissionColor = ShaderGUI.FindProperty("_EmissionColor", properties); 62 | MaterialProperty NormalMap = ShaderGUI.FindProperty("_BumpMap", properties); 63 | 64 | MaterialProperty MatcapToggle = ShaderGUI.FindProperty("_MatcapToggle", properties); 65 | MaterialProperty Matcap = ShaderGUI.FindProperty("_Matcap", properties); 66 | MaterialProperty MatcapColor = ShaderGUI.FindProperty("_MatcapColor", properties); 67 | MaterialProperty MatcapShadowToggle = ShaderGUI.FindProperty("_MatcapShadowToggle", properties); 68 | MaterialProperty MatcapShadow = ShaderGUI.FindProperty("_MatcapShadow", properties); 69 | MaterialProperty MatcapShadowColor = ShaderGUI.FindProperty("_MatcapShadowColor", properties); 70 | MaterialProperty MatcapMask = ShaderGUI.FindProperty("_MatcapMask", properties); 71 | MaterialProperty ForceMatcap = ShaderGUI.FindProperty("_ForceMatcap", properties); 72 | MaterialProperty MatcapCameraFix = ShaderGUI.FindProperty("_MatcapCameraFix", properties); 73 | 74 | MaterialProperty RimLightToggle = ShaderGUI.FindProperty("_RimLightToggle", properties); 75 | MaterialProperty RimLightColor = ShaderGUI.FindProperty("_RimLightColor", properties); 76 | MaterialProperty RimLightPower = ShaderGUI.FindProperty("_RimLightPower", properties); 77 | MaterialProperty RimLightContrast = ShaderGUI.FindProperty("_RimLightContrast", properties); 78 | MaterialProperty RimLightMask = ShaderGUI.FindProperty("_RimLightMask", properties); 79 | MaterialProperty RimLightNormal = ShaderGUI.FindProperty("_RimLightNormal", properties); 80 | 81 | MaterialProperty ReflectionToggle = ShaderGUI.FindProperty("_ReflectionToggle", properties); 82 | MaterialProperty ReflectionColor = ShaderGUI.FindProperty("_ReflectionColor", properties); 83 | MaterialProperty ReflectionIntensity = ShaderGUI.FindProperty("_ReflectionIntensity", properties); 84 | MaterialProperty Smoothness = ShaderGUI.FindProperty("_Smoothness", properties); 85 | MaterialProperty FresnelToggle = ShaderGUI.FindProperty("_FresnelToggle", properties); 86 | MaterialProperty FresnelPower = ShaderGUI.FindProperty("_FresnelPower", properties); 87 | MaterialProperty FresnelScale = ShaderGUI.FindProperty("_FresnelScale", properties); 88 | 89 | MaterialProperty HalfLambertToggle = ShaderGUI.FindProperty("_HalfLambertToggle", properties); 90 | MaterialProperty ObjectShadow = ShaderGUI.FindProperty("_ObjectShadow", properties); 91 | MaterialProperty Shadow1Contrast = ShaderGUI.FindProperty("_Shadow1Contrast", properties); 92 | MaterialProperty Shadow2ContrastToggle = ShaderGUI.FindProperty("_Shadow2ContrastToggle", properties); 93 | MaterialProperty Shadow2Contrast = ShaderGUI.FindProperty("_Shadow2Contrast", properties); 94 | MaterialProperty Shadow1Color = ShaderGUI.FindProperty("_Shadow1Color", properties); 95 | MaterialProperty Shadow2Color = ShaderGUI.FindProperty("_Shadow2Color", properties); 96 | MaterialProperty ShadowColorDarken = ShaderGUI.FindProperty("_ShadowColorDarken", properties); 97 | MaterialProperty Shadow1Place = ShaderGUI.FindProperty("_Shadow1Place", properties); 98 | MaterialProperty Shadow2Place = ShaderGUI.FindProperty("_Shadow2Place", properties); 99 | MaterialProperty AmbientMinimum = ShaderGUI.FindProperty("_AmbientMinimum", properties); 100 | MaterialProperty PosterizeToggle = ShaderGUI.FindProperty("_PosterizeToggle", properties); 101 | MaterialProperty NormalIntensity = ShaderGUI.FindProperty("_NormalIntensity", properties); 102 | MaterialProperty ShadowMask = ShaderGUI.FindProperty("_ShadowMask", properties); 103 | MaterialProperty VDirLight = ShaderGUI.FindProperty("_VDirLight", properties); 104 | MaterialProperty LightIntensityShadowPos = ShaderGUI.FindProperty("_LightIntensityShadowPos", properties); 105 | 106 | MaterialProperty ScanLineToggle = ShaderGUI.FindProperty("_ScanLineToggle", properties); 107 | MaterialProperty ScanLineTex = ShaderGUI.FindProperty("_ScanLineTex", properties); 108 | MaterialProperty ScanLineColor = ShaderGUI.FindProperty("_ScanLineColor", properties); 109 | MaterialProperty ScanLineColor2Toggle = ShaderGUI.FindProperty("_ScanLineColor2Toggle", properties); 110 | MaterialProperty ScanLineColor2 = ShaderGUI.FindProperty("_ScanLineColor2", properties); 111 | MaterialProperty ScanLineSpeed = ShaderGUI.FindProperty ("_ScanLineSpeed", properties); 112 | MaterialProperty ScanLineWidth = ShaderGUI.FindProperty ("_ScanLineWidth", properties); 113 | MaterialProperty ScanLinePosition = ShaderGUI.FindProperty ("_ScanLinePosition", properties); 114 | MaterialProperty Color2ChangeSpeed = ShaderGUI.FindProperty ("_Color2ChangeSpeed", properties); 115 | 116 | MaterialProperty EmissiveScrollToggle = ShaderGUI.FindProperty ("_EmissiveScrollToggle", properties); 117 | MaterialProperty EmissiveScrollTex = ShaderGUI.FindProperty ("_EmissiveScrollTex", properties); 118 | MaterialProperty EmissiveScrollMask = ShaderGUI.FindProperty ("_EmissiveScrollMask", properties); 119 | MaterialProperty EmissiveScrollColor = ShaderGUI.FindProperty ("_EmissiveScrollColor", properties); 120 | MaterialProperty EmissiveScrollSpeed = ShaderGUI.FindProperty ("_EmissiveScrollSpeed", properties); 121 | MaterialProperty EmissiveScrollGradient = ShaderGUI.FindProperty ("_EmissiveScrollGradient", properties); 122 | MaterialProperty EmissiveScrollContrast = ShaderGUI.FindProperty ("_EmissiveScrollContrast", properties); 123 | MaterialProperty EmissiveScrollStrength = ShaderGUI.FindProperty ("_EmissiveScrollStrength", properties); 124 | MaterialProperty ForceEmissiveToggle = ShaderGUI.FindProperty ("_ForceEmissiveToggle", properties); 125 | MaterialProperty EmissiveScrollTiling = ShaderGUI.FindProperty ("_EmissiveScrollTiling", properties); 126 | 127 | MaterialProperty ParallaxEmission = ShaderGUI.FindProperty ("_ParallaxEmission", properties); 128 | MaterialProperty ParallaxTiling = ShaderGUI.FindProperty ("_ParallaxTiling", properties); 129 | MaterialProperty ParallaxScale = ShaderGUI.FindProperty ("_ParallaxScale", properties); 130 | MaterialProperty ParallaxHight = ShaderGUI.FindProperty ("_ParallaxHight", properties); 131 | MaterialProperty ParallaxMask = ShaderGUI.FindProperty ("_ParallaxMask", properties); 132 | 133 | MaterialProperty ColorShift = ShaderGUI.FindProperty("_ColorShift",properties); 134 | MaterialProperty H = ShaderGUI.FindProperty("_H",properties); 135 | MaterialProperty S = ShaderGUI.FindProperty("_S",properties); 136 | MaterialProperty V = ShaderGUI.FindProperty("_V",properties); 137 | MaterialProperty GrayscaleColor = ShaderGUI.FindProperty("_GrayscaleColor",properties); 138 | 139 | MaterialProperty Unlit = ShaderGUI.FindProperty("_Unlit",properties); 140 | MaterialProperty CullMode = ShaderGUI.FindProperty("_CullMode",properties); 141 | #endregion 142 | 143 | materialEditor.SetDefaultGUIWidths(); 144 | 145 | 146 | 147 | // Main 148 | EditorGUILayout.LabelField( "Common", EditorStyles.boldLabel ); 149 | materialEditor.TextureProperty(Diffuse, "Diffuse"); 150 | materialEditor.ShaderProperty(DiffuseColor, "Diffuse Color"); 151 | 152 | EditorGUILayout.Space(); 153 | 154 | materialEditor.ShaderProperty(Emission, "Emission"); 155 | materialEditor.ShaderProperty(EmissionColor, "Emission Color"); 156 | 157 | EditorGUILayout.Space(); 158 | 159 | materialEditor.TextureProperty(NormalMap, "Normal Map"); 160 | 161 | // Cutout IF 162 | if (material.HasProperty("_CutoutThreshold")) 163 | { 164 | EditorGUILayout.Space(); 165 | EditorGUILayout.LabelField( "Alpha Cutout Properties", EditorStyles.boldLabel ); 166 | MaterialProperty CutoutThreshold = ShaderGUI.FindProperty("_CutoutThreshold", properties); 167 | materialEditor.ShaderProperty(CutoutThreshold,"Cutout Threshold"); 168 | EditorGUILayout.Space(); 169 | } 170 | 171 | // Transparent IF 172 | if (material.HasProperty("_ZWriteMode")) 173 | { 174 | EditorGUILayout.Space(); 175 | EditorGUILayout.LabelField( "Transparent Properties", EditorStyles.boldLabel ); 176 | MaterialProperty ZWriteMode = ShaderGUI.FindProperty("_ZWriteMode", properties); 177 | materialEditor.ShaderProperty(ZWriteMode,"ZWrite Mode"); 178 | EditorGUILayout.Space(); 179 | } 180 | 181 | // Stencil if 182 | if (material.HasProperty("_StencilReference")) 183 | { 184 | EditorGUILayout.Space(); 185 | EditorGUILayout.LabelField( "Stencil Properties", EditorStyles.boldLabel ); 186 | MaterialProperty StencilReference = ShaderGUI.FindProperty("_StencilReference", properties); 187 | materialEditor.ShaderProperty(StencilReference,"StencilReference"); 188 | EditorGUILayout.Space(); 189 | } 190 | 191 | 192 | 193 | // Shadow 194 | IsShowShadowSettings = Foldout (IsShowShadowSettings, "Shadow"); 195 | if (IsShowShadowSettings) 196 | { 197 | EditorGUI.indentLevel ++; 198 | 199 | materialEditor.ShaderProperty(HalfLambertToggle, "Shadow Toggle"); 200 | 201 | var ShadowInspectorToggle = HalfLambertToggle.floatValue; 202 | if (ShadowInspectorToggle > 0) 203 | { 204 | EditorGUI.indentLevel ++; 205 | 206 | materialEditor.ShaderProperty(ObjectShadow, "Use System Shadow"); 207 | 208 | 209 | EditorGUILayout.Space(); 210 | EditorGUI.indentLevel --; 211 | EditorGUILayout.LabelField("1st Shadow", EditorStyles.boldLabel); 212 | EditorGUI.indentLevel ++; 213 | 214 | materialEditor.ShaderProperty(Shadow1Contrast, "Shadow 1 Contrast"); 215 | materialEditor.ShaderProperty(Shadow1Color, "Shadow 1 Color"); 216 | materialEditor.ShaderProperty(Shadow1Place, "Shadow 1 Place"); 217 | 218 | EditorGUILayout.Space(); 219 | EditorGUI.indentLevel --; 220 | EditorGUILayout.LabelField("2nd Shadow", EditorStyles.boldLabel); 221 | EditorGUI.indentLevel ++; 222 | 223 | materialEditor.ShaderProperty(Shadow2ContrastToggle, "Shadow 2 Contrast Toggle"); 224 | materialEditor.ShaderProperty(Shadow2Contrast, "Shadow 2 Contrast"); 225 | materialEditor.ShaderProperty(Shadow2Color, "Shadow 2 Color"); 226 | materialEditor.ShaderProperty(Shadow2Place, "Shadow 2 Place"); 227 | 228 | EditorGUILayout.Space(); 229 | EditorGUI.indentLevel --; 230 | materialEditor.TexturePropertySingleLine(new GUIContent("Shadow Mask"), ShadowMask); 231 | EditorGUI.indentLevel ++; 232 | EditorGUILayout.Space(); 233 | 234 | IsShowAdvancedShadowSettings = EditorGUILayout.Foldout (IsShowAdvancedShadowSettings, "Advanced Shadow Settings", EditorStyles.boldFont); 235 | if (IsShowAdvancedShadowSettings) 236 | { 237 | 238 | EditorGUI.indentLevel ++; 239 | 240 | materialEditor.ShaderProperty(ShadowColorDarken, "Shadow ColorDarken"); 241 | materialEditor.ShaderProperty(AmbientMinimum, "Ambient Minimum"); 242 | materialEditor.ShaderProperty(PosterizeToggle, "Posterize Toggle"); 243 | materialEditor.ShaderProperty(NormalIntensity, "Normal Intensity"); 244 | materialEditor.ShaderProperty(LightIntensityShadowPos, "Light Intensity Shadow Pos"); 245 | materialEditor.ShaderProperty(VDirLight, "V Dir Light"); 246 | 247 | EditorGUI.indentLevel --; 248 | 249 | } 250 | 251 | EditorGUI.indentLevel --; 252 | } 253 | 254 | 255 | 256 | EditorGUI.indentLevel --; 257 | EditorGUILayout.Space(); 258 | } 259 | 260 | // Outline 261 | if (material.HasProperty("_OutlineWidth")) 262 | { 263 | 264 | // MaterialProperty OutlineToggleTest = ShaderGUI.FindProperty("_OutlineToggleTest", properties); 265 | MaterialProperty OutlineWidth = ShaderGUI.FindProperty("_OutlineWidth", properties); 266 | MaterialProperty OutlineColor = ShaderGUI.FindProperty("_OutlineColor", properties); 267 | MaterialProperty OutlineMask = ShaderGUI.FindProperty("_OutlineMask", properties); 268 | 269 | IsShowOutlineSettings = Foldout (IsShowOutlineSettings, "Outline"); 270 | if (IsShowOutlineSettings) 271 | { 272 | EditorGUI.indentLevel ++; 273 | 274 | // materialEditor.ShaderProperty(OutlineToggleTest, "Outline Toggle Test"); 275 | materialEditor.ShaderProperty(OutlineWidth, "Outline Width"); 276 | materialEditor.ShaderProperty(OutlineColor, "Outline Color"); 277 | materialEditor.TexturePropertySingleLine(new GUIContent("Outline Mask"), OutlineMask); 278 | 279 | EditorGUI.indentLevel --; 280 | EditorGUILayout.Space(); 281 | } 282 | } 283 | 284 | 285 | //Matcap 286 | IsShowMatcapSettings = Foldout (IsShowMatcapSettings, "Matcap"); 287 | if (IsShowMatcapSettings) 288 | { 289 | // indent increment 290 | EditorGUI.indentLevel ++; 291 | 292 | materialEditor.ShaderProperty(MatcapToggle, "Matcap Toggle"); 293 | 294 | var MatcapInspectorToggle = MatcapToggle.floatValue; 295 | if (MatcapInspectorToggle > 0) 296 | { 297 | EditorGUI.indentLevel ++; 298 | materialEditor.TextureProperty(Matcap, "Matcap", false); 299 | materialEditor.ShaderProperty(MatcapColor, "Matcap Color"); 300 | materialEditor.TexturePropertySingleLine(new GUIContent("Matcap Mask"), MatcapMask); 301 | EditorGUI.indentLevel --; 302 | } 303 | 304 | EditorGUILayout.Space(); 305 | 306 | materialEditor.ShaderProperty(MatcapShadowToggle, "Matcap Shadow Toggle"); 307 | 308 | var MatcapShadowInspectorToggle = MatcapShadowToggle.floatValue; 309 | if (MatcapShadowInspectorToggle > 0) 310 | { 311 | 312 | EditorGUI.indentLevel ++; 313 | materialEditor.TextureProperty(MatcapShadow, "Matcap Shadow", false); 314 | materialEditor.ShaderProperty(MatcapShadowColor, "Matcap Shadow Color"); 315 | EditorGUI.indentLevel --; 316 | 317 | } 318 | 319 | EditorGUILayout.Space(); 320 | 321 | EditorGUILayout.LabelField("Matcap Advanced Settings", EditorStyles.boldLabel); 322 | EditorGUI.indentLevel ++; 323 | materialEditor.ShaderProperty(ForceMatcap, "Force Matcap"); 324 | materialEditor.ShaderProperty(MatcapCameraFix, "Matcap Camera Fix"); 325 | EditorGUI.indentLevel --; 326 | 327 | EditorGUI.indentLevel --; 328 | EditorGUILayout.Space(); 329 | } 330 | 331 | 332 | 333 | // Rim Light 334 | IsShowRimLightSettings = Foldout (IsShowRimLightSettings, "Rim Light"); 335 | if (IsShowRimLightSettings) 336 | { 337 | EditorGUI.indentLevel ++; 338 | 339 | materialEditor.ShaderProperty(RimLightToggle, "Rim Light Toggle"); 340 | 341 | var RimLightInspectorToggle = RimLightToggle.floatValue; 342 | if (RimLightInspectorToggle > 0) 343 | { 344 | EditorGUI.indentLevel ++; 345 | materialEditor.ShaderProperty(RimLightColor, "Rim Light Color"); 346 | materialEditor.ShaderProperty(RimLightPower, "Rim Light Power"); 347 | materialEditor.ShaderProperty(RimLightContrast, "Rim Light Contrast"); 348 | materialEditor.TexturePropertySingleLine(new GUIContent("Rim Light Mask"), RimLightMask); 349 | materialEditor.ShaderProperty(RimLightNormal, "Rim Light Normal"); 350 | EditorGUI.indentLevel --; 351 | } 352 | 353 | EditorGUI.indentLevel --; 354 | EditorGUILayout.Space(); 355 | } 356 | 357 | 358 | 359 | // Reflection 360 | IsShowReflectionSettings = Foldout (IsShowReflectionSettings, "Reflection"); 361 | if (IsShowReflectionSettings) 362 | { 363 | EditorGUI.indentLevel ++; 364 | 365 | materialEditor.ShaderProperty(ReflectionToggle, "Reflection Toggle"); 366 | 367 | var ReflectionInspectorToggle = ReflectionToggle.floatValue; 368 | if (ReflectionInspectorToggle > 0) 369 | { 370 | EditorGUI.indentLevel ++; 371 | materialEditor.ShaderProperty(ReflectionColor, "Reflection Color"); 372 | materialEditor.ShaderProperty(ReflectionIntensity, "Reflection Intensity"); 373 | materialEditor.ShaderProperty(Smoothness, "Smoothness"); 374 | materialEditor.ShaderProperty(FresnelToggle, "Fresnel Toggle"); 375 | materialEditor.ShaderProperty(FresnelPower, "Fresnel Power"); 376 | materialEditor.ShaderProperty(FresnelScale, "Fresnel Scale"); 377 | EditorGUI.indentLevel --; 378 | } 379 | 380 | EditorGUI.indentLevel --; 381 | EditorGUILayout.Space(); 382 | } 383 | 384 | 385 | 386 | // Color Shift 387 | IsShowColorShiftSettings = Foldout (IsShowColorShiftSettings, "Color Shift"); 388 | if (IsShowColorShiftSettings) 389 | { 390 | EditorGUI.indentLevel ++; 391 | 392 | materialEditor.ShaderProperty(ColorShift, "Color Shift Toggle"); 393 | 394 | var ColorShiftInspectorToggle = ColorShift.floatValue; 395 | if (ColorShiftInspectorToggle > 0) 396 | { 397 | EditorGUI.indentLevel ++; 398 | materialEditor.ShaderProperty(H, "H"); 399 | materialEditor.ShaderProperty(S, "S"); 400 | materialEditor.ShaderProperty(V, "V"); 401 | materialEditor.ShaderProperty(GrayscaleColor, "Grayscale Color"); 402 | EditorGUI.indentLevel --; 403 | } 404 | 405 | EditorGUI.indentLevel --; 406 | EditorGUILayout.Space(); 407 | } 408 | 409 | 410 | 411 | // Emission 412 | IsShowEmissionSettings = Foldout (IsShowEmissionSettings, "Emission"); 413 | if (IsShowEmissionSettings) 414 | { 415 | EditorGUI.indentLevel ++; 416 | 417 | materialEditor.ShaderProperty(ScanLineToggle, "ScanLineToggle"); 418 | 419 | var ScanLineInspectorToggle = ScanLineToggle.floatValue; 420 | if (ScanLineInspectorToggle > 0) 421 | { 422 | EditorGUI.indentLevel ++; 423 | materialEditor.TextureProperty(ScanLineTex, "Scan Line Tex", false); 424 | materialEditor.ShaderProperty(ScanLineColor, "Scan Line Color"); 425 | materialEditor.ShaderProperty(ScanLineColor2Toggle, "Scan Line Color 2 Toggle"); 426 | materialEditor.ShaderProperty(ScanLineColor2, "Scan Line Color 2"); 427 | materialEditor.ShaderProperty(ScanLineSpeed, "Scan Line Speed"); 428 | materialEditor.ShaderProperty(ScanLineWidth, "Scan Line Width"); 429 | materialEditor.ShaderProperty(ScanLinePosition, "Scan Line Position"); 430 | materialEditor.ShaderProperty(Color2ChangeSpeed, "Color 2 Change Speed"); 431 | EditorGUI.indentLevel --; 432 | } 433 | 434 | EditorGUILayout.Space(); 435 | 436 | materialEditor.ShaderProperty(EmissiveScrollToggle, "Emissive Scroll Toggle"); 437 | 438 | var EmissiveScrollInspectorToggle = EmissiveScrollToggle.floatValue; 439 | if (EmissiveScrollInspectorToggle > 0) 440 | { 441 | EditorGUI.indentLevel ++; 442 | materialEditor.ShaderProperty(EmissiveScrollTex, "Emissive Scroll Tex"); 443 | materialEditor.TexturePropertySingleLine(new GUIContent("Emissive Scrol Mask"), EmissiveScrollMask); 444 | materialEditor.ShaderProperty(EmissiveScrollColor, "Emissiv eScroll Color"); 445 | materialEditor.ShaderProperty(EmissiveScrollSpeed, "Emissive Scroll Speed"); 446 | materialEditor.ShaderProperty(EmissiveScrollGradient, "Emissive Scroll Gradient"); 447 | var EmissiveScrollGradientInspector = EmissiveScrollGradient.floatValue; 448 | if (EmissiveScrollGradientInspector > 0) 449 | { 450 | EditorGUI.indentLevel ++; 451 | materialEditor.ShaderProperty(EmissiveScrollContrast, "Emissive Scroll Contrast"); 452 | materialEditor.ShaderProperty(EmissiveScrollStrength, "Emissive Scroll Strength"); 453 | EditorGUI.indentLevel --; 454 | } 455 | materialEditor.ShaderProperty(ForceEmissiveToggle, "Force Emissive Toggle"); 456 | materialEditor.ShaderProperty(EmissiveScrollTiling, "Emissive Scroll Tiling"); 457 | EditorGUI.indentLevel --; 458 | } 459 | 460 | EditorGUILayout.Space(); 461 | 462 | IsShowParallaxEmission = EditorGUILayout.Foldout (IsShowParallaxEmission, "Parallax Emission", EditorStyles.boldFont); 463 | if (IsShowParallaxEmission) 464 | { 465 | 466 | EditorGUI.indentLevel ++; 467 | materialEditor.ShaderProperty(ParallaxEmission, "Parallax Emission"); 468 | materialEditor.ShaderProperty(ParallaxTiling, "Parallax Tiling"); 469 | materialEditor.ShaderProperty(ParallaxScale, "Parallax Scale"); 470 | materialEditor.ShaderProperty(ParallaxHight, "Parallax Hight"); 471 | materialEditor.TexturePropertySingleLine(new GUIContent("Parallax Mask"), ParallaxMask); 472 | EditorGUI.indentLevel --; 473 | 474 | } 475 | 476 | EditorGUI.indentLevel --; 477 | EditorGUILayout.Space(); 478 | } 479 | 480 | 481 | 482 | // Advanced Settings 483 | IsShowAdvancedSettings = Foldout (IsShowAdvancedSettings, "Advanced Settings"); 484 | if (IsShowAdvancedSettings) 485 | { 486 | // indent increment 487 | EditorGUI.indentLevel ++; 488 | EditorGUILayout.HelpBox ("You should not change these parameters.", MessageType.Info); // Message 489 | materialEditor.ShaderProperty(Unlit, "Unlit"); 490 | materialEditor.ShaderProperty(CullMode, "CullMode"); 491 | materialEditor.RenderQueueField(); 492 | EditorGUI.indentLevel --; 493 | } 494 | 495 | EditorGUILayout.LabelField ( "Current ReflexShader Version: " + _RSVersion, EditorStyles.boldLabel); 496 | 497 | } 498 | } 499 | -------------------------------------------------------------------------------- /Editor/RSInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c1895a85d4c38a4e9f6a050722d5a97 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Emissive Scroll Tex.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05a88b84eb0d3f44f984b4d5e6cd6a20 3 | folderAsset: yes 4 | timeCreated: 1541728848 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Emissive Scroll Tex/Emissive Sample 01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Emissive Scroll Tex/Emissive Sample 01.png -------------------------------------------------------------------------------- /Emissive Scroll Tex/Emissive Sample 01.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0205e6023718bab428bc3df400f93cd0 3 | timeCreated: 1541978435 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Emissive Scroll Tex/Emissive Sample 02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Emissive Scroll Tex/Emissive Sample 02.png -------------------------------------------------------------------------------- /Emissive Scroll Tex/Emissive Sample 02.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 700ac6f1880ae4a44b4f4e898f3c9fde 3 | timeCreated: 1541728850 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Emissive Scroll Tex/Emissive Sample 03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Emissive Scroll Tex/Emissive Sample 03.png -------------------------------------------------------------------------------- /Emissive Scroll Tex/Emissive Sample 03.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee5d32dbd750a9a42b74b0eedf74b2cb 3 | timeCreated: 1541728863 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Functions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9c1a7908f10b4c4fad59a4c766d6ce0 3 | folderAsset: yes 4 | timeCreated: 1540756625 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Functions/Reflex Shader Function.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5d8f584674c8984ab029c8868eb5bf3 3 | timeCreated: 1540756636 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Images.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0da85e2974d3c3438247bffdf1ab44d 3 | folderAsset: yes 4 | timeCreated: 1541575363 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Images/RS_Header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Images/RS_Header.png -------------------------------------------------------------------------------- /Images/RS_Header.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 25df7b96fb001804e9f8b60b156dfe34 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Images/RS_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Images/RS_Logo.png -------------------------------------------------------------------------------- /Images/RS_Logo.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a34233ce30b26904cbdc837a2b2f4984 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Reflex 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac1db82fd6a079c47aa6194a7798f04a 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Matcaps.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 25968e86419b36f49a41f8b425898ed6 3 | folderAsset: yes 4 | timeCreated: 1541575362 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Matcaps/Matcap 01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Matcaps/Matcap 01.png -------------------------------------------------------------------------------- /Matcaps/Matcap 01.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7266fc3b47fe69d4eb0e07eae7890fe7 3 | timeCreated: 1541575363 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 512 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 1 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 512 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 1 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | spritePackingTag: 74 | userData: 75 | assetBundleName: 76 | assetBundleVariant: 77 | -------------------------------------------------------------------------------- /Matcaps/Matcap 02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Matcaps/Matcap 02.png -------------------------------------------------------------------------------- /Matcaps/Matcap 02.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e832c7c4b2aa8164188c5fafc6b3157f 3 | timeCreated: 1541807850 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 512 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 1 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 512 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 1 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | spritePackingTag: 74 | userData: 75 | assetBundleName: 76 | assetBundleVariant: 77 | -------------------------------------------------------------------------------- /Matcaps/Matcap 03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Matcaps/Matcap 03.png -------------------------------------------------------------------------------- /Matcaps/Matcap 03.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c62a504aa1f92254580fbba47b5d1d1a 3 | timeCreated: 1541808526 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 512 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 1 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 512 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 1 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | spritePackingTag: 74 | userData: 75 | assetBundleName: 76 | assetBundleVariant: 77 | -------------------------------------------------------------------------------- /Matcaps/Matcap 04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Matcaps/Matcap 04.png -------------------------------------------------------------------------------- /Matcaps/Matcap 04.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 320eb42ea75aecf40b6d307100f53280 3 | timeCreated: 1541809846 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 512 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 1 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 512 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 1 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | spritePackingTag: 74 | userData: 75 | assetBundleName: 76 | assetBundleVariant: 77 | -------------------------------------------------------------------------------- /Matcaps/Shadow 01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Matcaps/Shadow 01.png -------------------------------------------------------------------------------- /Matcaps/Shadow 01.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7dbedf5cb40ba240842f08fe47232f7 3 | timeCreated: 1541575363 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Matcaps/Shadow 02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/reflex1124/Reflex-Shader-2/2bab96d68c7daeb31e356e233915d7dd93df1ea1/Matcaps/Shadow 02.png -------------------------------------------------------------------------------- /Matcaps/Shadow 02.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6172fea687a4bd498140ef4625ba18b 3 | timeCreated: 1541575363 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Reflex Shader 2 2 | [![release](https://img.shields.io/github/v/release/reflex1124/Reflex-Shader-2.svg?&style=for-the-badge)](https://github.com/reflex1124/Reflex-Shader-2/releases/latest) 3 | [![lisence](https://img.shields.io/badge/license-MIT-green.svg?logo=&style=for-the-badge)](https://opensource.org/licenses/mit-license.php) 4 | [![unity version](https://img.shields.io/badge/Unity-2018.4.20.f1-blue.svg?logo=unity&style=for-the-badge)](https://unity3d.com/jp/unity/whats-new/2018.4.20) 5 | [![VRChat](https://img.shields.io/badge/-VRChat-blue.svg?logo=&style=for-the-badge)](https://vrchat.com/) 6 | 7 | ![Header](Images/RS_Header.png) 8 | 9 | This shader is made for VRChat. 10 | このシェーダーはVRChatにおいて利用されることを前提に開発されています。 11 | 12 | Version 2.2.0 13 | 14 | ## Reflex Shader 2.2について 15 | Reflex Shader 2.2はVRChat向けに開発されているアバター向けシェーダーです。 16 | 特徴的な機能として以下のものがあります。 17 | - オブジェクトからの影に対応 18 | - 影色の自由な指定 19 | - Matcapやリムライトなどのリッチな表現 20 | - 色味や明るさはCubed's Unity Shaderに似ています 21 | - 各機能にマスクを入れる場所を用意してあるので、一部のみ機能を有効化することができます。 22 | - VRChatのSafety設定においてシェーダーが無効化されStandardになった場合もテクスチャが維持されます 23 | - ScanlineやEmissive Scrollなどの発光系の機能が豊富なので、Sci-Fi系のアバターに適しています 24 | 25 | ## 導入方法 26 | UnitypackageをUnityからインポートしてください。 27 | 28 | ## Shaders / シェーダー一覧 29 | - Reflex Shader 2 30 | - Reflex Shader 2 (一般的な不透明のシェーダーです) 31 | - Reflex Shader 2 Cutout (透過部分を切り抜くシェーダーです) 32 | - Reflex Shader 2 Transparent (半透明のシェーダーです) 33 | - Stencil/Write (ステンシルで透過させる側のシェーダーです) 34 | - Stencil/Read (ステンシルで透過される側のシェーダーです) 35 | - No Outline 36 | - Opaque (アウトラインなしの不透明シェーダーです) 37 | - Cutout (アウトラインなしのカットアウトシェーダーです) 38 | - Transparent (アウトラインなしの半透明シェーダーです) 39 | - Stencil/Write (アウトラインなしのステンシルで透過させる側のシェーダーです) 40 | - Stencil/Read (アウトラインなしのステンシルで透過される側のシェーダーです) 41 | 42 | ## Contact / 連絡先 43 | Twitter : @reflex_1124 44 | VRChat : reflex1124 45 | -------------------------------------------------------------------------------- /README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81d254e2967e81746a583f5bafc968af 3 | timeCreated: 1541575362 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Reflex Shader 2 Cutout.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a17df36c78d69f24c8fb7cfff294e132 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Reflex Shader 2 Stencil Reader.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: baa2148099f6f3646bdae4319592905e 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Reflex Shader 2 Stencil Writer.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fc79fcfadbc2c149970dd12704133c4 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Reflex Shader 2 Transparent.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d2eda1ffb121d549b437db96574d64e 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Reflex Shader 2.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da4e037220e1c9a40b77c4c6ff6dcc93 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /no_outline.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0268ff2ef6c64fe6a9de690058e30f2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /no_outline/Cutout no_outline.shader: -------------------------------------------------------------------------------- 1 | // Made with Amplify Shader Editor 2 | // Available at the Unity Asset Store - http://u3d.as/y3X 3 | Shader "Reflex Shader 2/No Outline/Cutout" 4 | { 5 | Properties 6 | { 7 | _MainTex("Diffuse", 2D) = "white" {} 8 | _DiffuseColor("Diffuse Color", Color) = (1,1,1,1) 9 | _EmissionMap("Emission", 2D) = "black" {} 10 | _EmissionColor("Emission Color", Color) = (1,1,1,1) 11 | [Normal]_BumpMap("Normal Map", 2D) = "bump" {} 12 | _Matcap("Matcap", 2D) = "black" {} 13 | _MatcapColor("Matcap Color", Color) = (1,1,1,1) 14 | [Toggle(_)]_MatcapShadowToggle("Matcap Shadow Toggle", Float) = 0 15 | _MatcapShadow("Matcap Shadow", 2D) = "white" {} 16 | _MatcapShadowColor("Matcap Shadow Color", Color) = (0.7843137,0.7843137,0.7843137,1) 17 | [NoScaleOffset]_MatcapMask("Matcap Mask", 2D) = "white" {} 18 | [Toggle(_)]_MatcapCameraFix("Matcap Camera Fix", Float) = 0 19 | [Toggle(_)]_RimLightToggle("RimLight Toggle", Float) = 0 20 | _RimLightColor("RimLight Color", Color) = (1,1,1,1) 21 | _RimLightPower("RimLight Power", Range( 0 , 1)) = 0 22 | _RimLightContrast("RimLight Contrast", Range( 0 , 10)) = 3 23 | [NoScaleOffset]_RimLightMask("RimLight Mask", 2D) = "white" {} 24 | [Toggle]_RimLightNormal("RimLight Normal", Float) = 0 25 | [Toggle(_REFLECTIONTOGGLE_ON)] _ReflectionToggle("Reflection Toggle", Float) = 0 26 | _ReflectionColor("Reflection Color", Color) = (1,1,1,0) 27 | _ReflectionIntensity("Reflection Intensity", Range( 0 , 1)) = 1 28 | _Smoothness("Smoothness", Range( 0 , 1)) = 1 29 | [Toggle(_)]_FresnelToggle("Fresnel Toggle", Float) = 0 30 | _FresnelPower("Fresnel Power", Range( 0 , 10)) = 9 31 | _FresnelScale("Fresnel Scale", Range( 0 , 3)) = 3 32 | [Toggle(_)]_HalfLambertToggle("ShaodwToggle", Float) = 1 33 | [Toggle(_)]_ObjectShadow("Use System Shadow", Float) = 1 34 | _Shadow1Contrast("Shadow 1 Contrast", Range( 1 , 20)) = 10 35 | _Shadow1Color("Shadow 1 Color", Color) = (0.8627451,0.8627451,0.8627451,1) 36 | _Shadow1Place("Shadow 1 Place", Range( -1 , 1)) = 0 37 | [Toggle(_)]_Shadow2ContrastToggle("Shadow 2 Contrast Toggle", Float) = 0 38 | _Shadow2Contrast("Shadow 2 Contrast", Range( 1 , 20)) = 20 39 | _Shadow2Color("Shadow 2 Color", Color) = (0.7843137,0.7843137,0.7843137,1) 40 | _Shadow2Place("Shadow 2 Place", Range( -1 , 1)) = 0.1 41 | [NoScaleOffset]_ShadowMask("Shadow Mask", 2D) = "white" {} 42 | [Toggle(_)]_ShadowColorDarken("Shadow Color Darken", Float) = 1 43 | _AmbientMinimum("Ambient Minimum", Range( 0 , 1)) = 0 44 | [Toggle(_)]_PosterizeToggle("Posterize Toggle", Float) = 0 45 | _NormalIntensity("Normal Intensity", Range( 0 , 1)) = 0.5 46 | [Toggle(_)]_LightIntensityShadowPos("Light Intensity Shadow Pos", Float) = 0 47 | _VDirLight("V Dir Light", Vector) = (0,0.6,1,0) 48 | [Toggle(_)]_ColorShift("Color Shift", Float) = 0 49 | _H("H", Range( -1 , 1)) = 1 50 | _S("S", Range( -1 , 1)) = 0 51 | _V("V", Range( -1 , 1)) = 0 52 | [Toggle(_)]_ScanLineToggle("Scan Line Toggle", Float) = 0 53 | [NoScaleOffset]_ScanLineTex("Scan Line Mask", 2D) = "white" {} 54 | _ScanLineColor("Scan Line Color", Color) = (0,0.710345,1,0) 55 | _ScanLineColor2("Scan Line Color 2", Color) = (1,0,0,0) 56 | _ScanLineSpeed("Scan Line Speed", Float) = 1 57 | _ScanLineWidth("Scan Line Width", Range( 0 , 1)) = 1 58 | _ScanLinePosition("Scan Line Position", Float) = 0 59 | [Toggle(_)]_ScanLineColor2Toggle("Scan Line Color 2 Toggle", Float) = 0 60 | _Color2ChangeSpeed("Color 2 Change Speed", Float) = 1 61 | [NoScaleOffset]_EmissiveScrollTex("Emissive Scroll Tex", 2D) = "black" {} 62 | [NoScaleOffset]_EmissiveScrollMask("Emissive Scroll Mask", 2D) = "white" {} 63 | _EmissiveScrollColor("Emissive Scroll Color", Color) = (1,1,1,1) 64 | _EmissiveScrollSpeed("Emissive Scroll Speed", Vector) = (1,0,0,0) 65 | [Toggle(_)]_EmissiveScrollGradient("Emissive Scroll Gradient", Float) = 0 66 | _EmissiveScrollContrast("Emissive Scroll Contrast", Float) = 1 67 | _EmissiveScrollStrength("Emissive Scroll Strength", Float) = 0 68 | [Toggle(_)]_ForceEmissiveToggle("Force Emissive Toggle", Float) = 0 69 | _EmissiveScrollTiling("Emissive Scroll Tiling", Vector) = (1,1,0,0) 70 | [NoScaleOffset]_ParallaxEmission("Parallax Emission", 2D) = "black" {} 71 | _ParallaxTiling("Parallax Tiling", Vector) = (1,1,0,0) 72 | _ParallaxScale("Parallax Scale", Float) = 1 73 | [Toggle(_)]_ForceMatcap("Force Matcap", Float) = 0 74 | [Toggle(_)]_MatcapToggle("Matcap Toggle", Float) = 0 75 | [Toggle(_)]_EmissiveScrollToggle("Emissive Scroll Toggle", Float) = 0 76 | _ParallaxHight("Parallax Hight", Float) = 1 77 | _ParallaxMask("Parallax Mask", 2D) = "white" {} 78 | [Toggle(_)]_Unlit("Unlit", Float) = 0 79 | [Toggle(_)]_GrayscaleColor("Grayscale Color", Float) = 0 80 | [Enum(Both,0,Back,1,Front,2)]_OutlineToggleTest("Outline Toggle Test", Float) = 2 81 | [Toggle(_UNLIT_ON)] _Unlit("Unlit", Float) = 0 82 | [Enum(UnityEngine.Rendering.CullMode)]_CullMode("Cull Mode", Float) = 2 83 | _CutoutThreshold("Cutout Threshold", Range( 0 , 1)) = 0.5 84 | [HideInInspector] _texcoord( "", 2D ) = "white" {} 85 | [HideInInspector] __dirty( "", Int ) = 1 86 | } 87 | 88 | SubShader 89 | { 90 | Tags{ "RenderType" = "TransparentCutout" "Queue" = "AlphaTest+0" "IsEmissive" = "true" } 91 | Cull [_CullMode] 92 | CGINCLUDE 93 | #include "UnityPBSLighting.cginc" 94 | #include "UnityShaderVariables.cginc" 95 | #include "UnityStandardUtils.cginc" 96 | #include "UnityCG.cginc" 97 | #include "Lighting.cginc" 98 | #pragma target 3.0 99 | #pragma shader_feature _UNLIT_ON 100 | #pragma shader_feature _REFLECTIONTOGGLE_ON 101 | #ifdef UNITY_PASS_SHADOWCASTER 102 | #undef INTERNAL_DATA 103 | #undef WorldReflectionVector 104 | #undef WorldNormalVector 105 | #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2; 106 | #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))) 107 | #define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)) 108 | #endif 109 | struct Input 110 | { 111 | float2 uv_texcoord; 112 | float3 worldPos; 113 | float3 viewDir; 114 | INTERNAL_DATA 115 | float3 worldNormal; 116 | }; 117 | 118 | struct SurfaceOutputCustomLightingCustom 119 | { 120 | half3 Albedo; 121 | half3 Normal; 122 | half3 Emission; 123 | half Metallic; 124 | half Smoothness; 125 | half Occlusion; 126 | half Alpha; 127 | Input SurfInput; 128 | UnityGIInput GIData; 129 | }; 130 | 131 | uniform float _CutoutThreshold; 132 | uniform float _OutlineToggleTest; 133 | uniform float _CullMode; 134 | uniform sampler2D _ScanLineTex; 135 | uniform float _ScanLinePosition; 136 | uniform float _ScanLineSpeed; 137 | uniform float _ScanLineWidth; 138 | uniform float4 _ScanLineColor; 139 | uniform float4 _ScanLineColor2; 140 | uniform float _Color2ChangeSpeed; 141 | uniform float _ScanLineColor2Toggle; 142 | uniform float _ScanLineToggle; 143 | uniform sampler2D _EmissionMap; 144 | uniform float4 _EmissionMap_ST; 145 | uniform float4 _EmissionColor; 146 | uniform sampler2D _EmissiveScrollTex; 147 | uniform float2 _EmissiveScrollTiling; 148 | uniform float2 _EmissiveScrollSpeed; 149 | uniform sampler2D _EmissiveScrollMask; 150 | uniform float4 _EmissiveScrollColor; 151 | uniform float _EmissiveScrollStrength; 152 | uniform float _EmissiveScrollContrast; 153 | uniform float _EmissiveScrollGradient; 154 | uniform float _EmissiveScrollToggle; 155 | uniform sampler2D _ParallaxEmission; 156 | uniform float2 _ParallaxTiling; 157 | uniform float _ParallaxHight; 158 | uniform float _ParallaxScale; 159 | uniform sampler2D _ParallaxMask; 160 | uniform float4 _ParallaxMask_ST; 161 | uniform sampler2D _MainTex; 162 | uniform float4 _MainTex_ST; 163 | uniform float4 _DiffuseColor; 164 | uniform float _RimLightNormal; 165 | uniform sampler2D _BumpMap; 166 | uniform float4 _BumpMap_ST; 167 | uniform float _RimLightPower; 168 | uniform float _RimLightContrast; 169 | uniform float4 _RimLightColor; 170 | uniform sampler2D _RimLightMask; 171 | uniform float _RimLightToggle; 172 | uniform sampler2D _Matcap; 173 | uniform float _MatcapCameraFix; 174 | uniform float4 _MatcapColor; 175 | uniform sampler2D _MatcapMask; 176 | uniform float _MatcapToggle; 177 | uniform float _GrayscaleColor; 178 | uniform float _H; 179 | uniform float _S; 180 | uniform float _V; 181 | uniform float _ColorShift; 182 | uniform float _ForceMatcap; 183 | uniform float _Smoothness; 184 | uniform float4 _ReflectionColor; 185 | uniform float _ReflectionIntensity; 186 | uniform float _FresnelScale; 187 | uniform float _FresnelPower; 188 | uniform float _FresnelToggle; 189 | uniform sampler2D _MatcapShadow; 190 | uniform float _MatcapShadowToggle; 191 | uniform float4 _MatcapShadowColor; 192 | uniform float _AmbientMinimum; 193 | uniform float _Unlit; 194 | uniform float4 _Shadow2Color; 195 | uniform float4 _Shadow1Color; 196 | uniform float _ShadowColorDarken; 197 | uniform float _Shadow1Place; 198 | uniform float _NormalIntensity; 199 | uniform float _ObjectShadow; 200 | uniform float _LightIntensityShadowPos; 201 | uniform float3 _VDirLight; 202 | uniform float _Shadow1Contrast; 203 | uniform float _PosterizeToggle; 204 | uniform float _Shadow2Place; 205 | uniform float _Shadow2Contrast; 206 | uniform float _Shadow2ContrastToggle; 207 | uniform sampler2D _ShadowMask; 208 | uniform float _HalfLambertToggle; 209 | uniform float _ForceEmissiveToggle; 210 | 211 | 212 | float3 HSVToRGB( float3 c ) 213 | { 214 | float4 K = float4( 1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0 ); 215 | float3 p = abs( frac( c.xxx + K.xyz ) * 6.0 - K.www ); 216 | return c.z * lerp( K.xxx, saturate( p - K.xxx ), c.y ); 217 | } 218 | 219 | 220 | float3 RGBToHSV(float3 c) 221 | { 222 | float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 223 | float4 p = lerp( float4( c.bg, K.wz ), float4( c.gb, K.xy ), step( c.b, c.g ) ); 224 | float4 q = lerp( float4( p.xyw, c.r ), float4( c.r, p.yzx ), step( p.x, c.r ) ); 225 | float d = q.x - min( q.w, q.y ); 226 | float e = 1.0e-10; 227 | return float3( abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); 228 | } 229 | 230 | float3 Function_ShadeSH9( ) 231 | { 232 | return ShadeSH9(half4(0,0,0,1)); 233 | } 234 | 235 | 236 | float3 BakedDirectionalLight746_g100( ) 237 | { 238 | return normalize(unity_SHAr.rgb *0.3+unity_SHAg.rgb*0.6+unity_SHAb.rgb*0.1); 239 | } 240 | 241 | 242 | inline half4 LightingStandardCustomLighting( inout SurfaceOutputCustomLightingCustom s, half3 viewDir, UnityGI gi ) 243 | { 244 | UnityGIInput data = s.GIData; 245 | Input i = s.SurfInput; 246 | half4 c = 0; 247 | #ifdef UNITY_PASS_FORWARDBASE 248 | float ase_lightAtten = data.atten; 249 | if( _LightColor0.a == 0) 250 | ase_lightAtten = 0; 251 | #else 252 | float3 ase_lightAttenRGB = gi.light.color / ( ( _LightColor0.rgb ) + 0.000001 ); 253 | float ase_lightAtten = max( max( ase_lightAttenRGB.r, ase_lightAttenRGB.g ), ase_lightAttenRGB.b ); 254 | #endif 255 | #if defined(HANDLE_SHADOWS_BLENDING_IN_GI) 256 | half bakedAtten = UnitySampleBakedOcclusion(data.lightmapUV.xy, data.worldPos); 257 | float zDist = dot(_WorldSpaceCameraPos - data.worldPos, UNITY_MATRIX_V[2].xyz); 258 | float fadeDist = UnityComputeShadowFadeDistance(data.worldPos, zDist); 259 | ase_lightAtten = UnityMixRealtimeAndBakedShadows(data.atten, bakedAtten, UnityComputeShadowFade(fadeDist)); 260 | #endif 261 | float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw; 262 | float4 temp_output_84_0_g100 = ( tex2D( _MainTex, uv_MainTex ) * _DiffuseColor ); 263 | float2 uv_ScanLineTex526_g100 = i.uv_texcoord; 264 | float3 ase_worldPos = i.worldPos; 265 | float3 worldToObj529_g100 = mul( unity_WorldToObject, float4( ase_worldPos, 1 ) ).xyz; 266 | float4 lerpResult513_g100 = lerp( float4( 0,0,0,0 ) , tex2D( _ScanLineTex, uv_ScanLineTex526_g100 ) , ( ( worldToObj529_g100.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) > ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 0.0 : ( worldToObj529_g100.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) <= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) && ( worldToObj529_g100.y + _ScanLinePosition ) + (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) >= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 1.0 : 0.0 ) ); 267 | float mulTime583_g100 = _Time.y * _Color2ChangeSpeed; 268 | float4 lerpResult578_g100 = lerp( _ScanLineColor , _ScanLineColor2 , sin( mulTime583_g100 )); 269 | float4 lerpResult704_g100 = lerp( _ScanLineColor , lerpResult578_g100 , _ScanLineColor2Toggle); 270 | float4 lerpResult702_g100 = lerp( float4( 0,0,0,0 ) , ( lerpResult513_g100 * lerpResult704_g100 ) , _ScanLineToggle); 271 | float4 ScanLineEmission534_g100 = lerpResult702_g100; 272 | float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw; 273 | float2 uv_TexCoord485_g100 = i.uv_texcoord * _EmissiveScrollTiling + ( _Time.x * _EmissiveScrollSpeed ); 274 | float2 uv_EmissiveScrollMask466_g100 = i.uv_texcoord; 275 | float4 tex2DNode466_g100 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g100 ); 276 | float4 lerpResult468_g100 = lerp( float4( 0,0,0,0 ) , tex2D( _EmissiveScrollTex, uv_TexCoord485_g100 ) , tex2DNode466_g100); 277 | float2 ScrollDir469_g100 = _EmissiveScrollSpeed; 278 | float dotResult461_g100 = dot( i.uv_texcoord , ScrollDir469_g100 ); 279 | float4 lerpResult504_g100 = lerp( float4( 0,0,0,0 ) , ( _EmissiveScrollColor * ( 1.0 - saturate( ( ( ( ( ( cos( ( UNITY_PI * ( ( dotResult461_g100 + _Time.y ) * ScrollDir469_g100 ) ) ).x + 0.0 ) + _EmissiveScrollStrength ) - 0.5 ) * _EmissiveScrollContrast ) + 0.5 ) ) ) ) , tex2DNode466_g100); 280 | float4 lerpResult700_g100 = lerp( ( lerpResult468_g100 * _EmissiveScrollColor ) , lerpResult504_g100 , _EmissiveScrollGradient); 281 | float4 EmissiveScroll507_g100 = saturate( lerpResult700_g100 ); 282 | float4 lerpResult706_g100 = lerp( float4( 0,0,0,0 ) , EmissiveScroll507_g100 , _EmissiveScrollToggle); 283 | float2 uv_TexCoord574_g100 = i.uv_texcoord * _ParallaxTiling; 284 | float2 Offset573_g100 = ( ( _ParallaxHight - 1 ) * i.viewDir.xy * _ParallaxScale ) + uv_TexCoord574_g100; 285 | float2 uv_ParallaxMask = i.uv_texcoord * _ParallaxMask_ST.xy + _ParallaxMask_ST.zw; 286 | float4 lerpResult588_g100 = lerp( float4( 0,0,0,0 ) , tex2D( _ParallaxEmission, Offset573_g100 ) , tex2D( _ParallaxMask, uv_ParallaxMask )); 287 | float4 temp_output_452_0_g100 = ( ScanLineEmission534_g100 + ( tex2D( _EmissionMap, uv_EmissionMap ) * _EmissionColor ) + lerpResult706_g100 + lerpResult588_g100 ); 288 | float4 Emission679_g100 = temp_output_452_0_g100; 289 | float Opacity674_g100 = saturate( max( temp_output_84_0_g100.a , Emission679_g100.a ) ); 290 | float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw; 291 | float3 tex2DNode207_g100 = UnpackNormal( tex2D( _BumpMap, uv_BumpMap ) ); 292 | float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) ); 293 | float dotResult214_g100 = dot( (WorldNormalVector( i , lerp(float3( 0,0,1 ),tex2DNode207_g100,_RimLightNormal) )) , ase_worldViewDir ); 294 | float2 uv_RimLightMask225_g100 = i.uv_texcoord; 295 | float4 lerpResult230_g100 = lerp( ( ( ( ( ( abs( ( 1.0 - dotResult214_g100 ) ) * _RimLightPower ) - 0.5 ) * _RimLightContrast ) + 0.5 ) * _RimLightColor ) , float4( 0,0,0,0 ) , ( 1.0 - tex2D( _RimLightMask, uv_RimLightMask225_g100 ) )); 296 | float4 lerpResult708_g100 = lerp( float4( 0,0,0,0 ) , lerpResult230_g100 , _RimLightToggle); 297 | float4 RimLight233_g100 = saturate( lerpResult708_g100 ); 298 | float3 NormalMap208_g100 = tex2DNode207_g100; 299 | float3 temp_output_240_0_g100 = mul( UNITY_MATRIX_V, float4( (WorldNormalVector( i , NormalMap208_g100 )) , 0.0 ) ).xyz; 300 | float3 worldToViewDir556_g100 = mul( UNITY_MATRIX_V, float4( ase_worldViewDir, 0 ) ).xyz; 301 | float2 lerpResult737_g100 = lerp( (temp_output_240_0_g100).xy , (BlendNormals( ( worldToViewDir556_g100 * float3(-1,-1,1) ) , temp_output_240_0_g100 )).xy , _MatcapCameraFix); 302 | float2 temp_output_244_0_g100 = ( 0.5 + ( 0.5 * lerpResult737_g100 ) ); 303 | float4 blendOpSrc251_g100 = tex2D( _Matcap, temp_output_244_0_g100 ); 304 | float4 blendOpDest251_g100 = _MatcapColor; 305 | float2 uv_MatcapMask246_g100 = i.uv_texcoord; 306 | float4 tex2DNode246_g100 = tex2D( _MatcapMask, uv_MatcapMask246_g100 ); 307 | float4 lerpResult254_g100 = lerp( float4( 0,0,0,0 ) , ( saturate( ( blendOpSrc251_g100 * blendOpDest251_g100 ) )) , tex2DNode246_g100); 308 | float4 lerpResult709_g100 = lerp( float4( 0,0,0,0 ) , lerpResult254_g100 , _MatcapToggle); 309 | float4 DiffuseBase606_g100 = temp_output_84_0_g100; 310 | float grayscale611_g100 = dot(DiffuseBase606_g100.rgb, float3(0.299,0.587,0.114)); 311 | float4 temp_cast_6 = (grayscale611_g100).xxxx; 312 | float4 lerpResult745_g100 = lerp( DiffuseBase606_g100 , temp_cast_6 , _GrayscaleColor); 313 | float3 hsvTorgb595_g100 = RGBToHSV( lerpResult745_g100.rgb ); 314 | float3 hsvTorgb603_g100 = HSVToRGB( float3(( hsvTorgb595_g100.x + _H ),( hsvTorgb595_g100.y + _S ),( hsvTorgb595_g100.z + _V )) ); 315 | float4 lerpResult742_g100 = lerp( DiffuseBase606_g100 , float4( hsvTorgb603_g100 , 0.0 ) , _ColorShift); 316 | float4 Diffuse105_g100 = lerpResult742_g100; 317 | float4 lerpResult252_g100 = lerp( Diffuse105_g100 , float4( 0,0,0,0 ) , tex2DNode246_g100); 318 | float4 lerpResult713_g100 = lerp( Diffuse105_g100 , lerpResult252_g100 , _ForceMatcap); 319 | float4 Matcap260_g100 = ( lerpResult709_g100 + lerpResult713_g100 ); 320 | float3 indirectNormal281_g100 = WorldNormalVector( i , NormalMap208_g100 ); 321 | Unity_GlossyEnvironmentData g281_g100 = UnityGlossyEnvironmentSetup( _Smoothness, data.worldViewDir, indirectNormal281_g100, float3(0,0,0)); 322 | float3 indirectSpecular281_g100 = UnityGI_IndirectSpecular( data, 1.0, indirectNormal281_g100, g281_g100 ); 323 | float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) ); 324 | float3 ase_worldTangent = WorldNormalVector( i, float3( 1, 0, 0 ) ); 325 | float3 ase_worldBitangent = WorldNormalVector( i, float3( 0, 1, 0 ) ); 326 | float3x3 ase_tangentToWorldFast = float3x3(ase_worldTangent.x,ase_worldBitangent.x,ase_worldNormal.x,ase_worldTangent.y,ase_worldBitangent.y,ase_worldNormal.y,ase_worldTangent.z,ase_worldBitangent.z,ase_worldNormal.z); 327 | float fresnelNdotV275_g100 = dot( mul(ase_tangentToWorldFast,NormalMap208_g100), ase_worldViewDir ); 328 | float fresnelNode275_g100 = ( 0.0 + _FresnelScale * pow( 1.0 - fresnelNdotV275_g100, _FresnelPower ) ); 329 | float lerpResult699_g100 = lerp( 1.0 , fresnelNode275_g100 , _FresnelToggle); 330 | float4 lerpResult278_g100 = lerp( float4( 0,0,0,0 ) , ( ( float4( indirectSpecular281_g100 , 0.0 ) * _ReflectionColor ) * _ReflectionIntensity ) , saturate( lerpResult699_g100 )); 331 | #ifdef _REFLECTIONTOGGLE_ON 332 | float4 staticSwitch549_g100 = lerpResult278_g100; 333 | #else 334 | float4 staticSwitch549_g100 = float4( 0,0,0,0 ); 335 | #endif 336 | float4 Reflection280_g100 = saturate( staticSwitch549_g100 ); 337 | float4 lerpResult740_g100 = lerp( float4( 1,1,1,1 ) , tex2D( _MatcapShadow, temp_output_244_0_g100 ) , _MatcapShadowToggle); 338 | float4 blendOpSrc259_g100 = lerpResult740_g100; 339 | float4 blendOpDest259_g100 = _MatcapShadowColor; 340 | float4 MatcapShadow261_g100 = ( saturate( ( blendOpSrc259_g100 + blendOpDest259_g100 ) )); 341 | float3 localFunction_ShadeSH9411_g100 = Function_ShadeSH9(); 342 | #if defined(LIGHTMAP_ON) && ( UNITY_VERSION < 560 || ( defined(LIGHTMAP_SHADOW_MIXING) && !defined(SHADOWS_SHADOWMASK) && defined(SHADOWS_SCREEN) ) )//aselc 343 | float4 ase_lightColor = 0; 344 | #else //aselc 345 | float4 ase_lightColor = _LightColor0; 346 | #endif //aselc 347 | float4 ifLocalVar196_g100 = 0; 348 | if( _WorldSpaceLightPos0.w <= 0.0 ) 349 | ifLocalVar196_g100 = ase_lightColor; 350 | else 351 | ifLocalVar196_g100 = ( ase_lightAtten * ase_lightColor ); 352 | float4 temp_cast_11 = (_AmbientMinimum).xxxx; 353 | float4 clampResult650_g100 = clamp( ( float4( localFunction_ShadeSH9411_g100 , 0.0 ) + ifLocalVar196_g100 ) , temp_cast_11 , float4( 1,1,1,1 ) ); 354 | float4 temp_cast_12 = (1.0).xxxx; 355 | float4 lerpResult723_g100 = lerp( saturate( clampResult650_g100 ) , temp_cast_12 , _Unlit); 356 | float4 Lighting201_g100 = lerpResult723_g100; 357 | float4 temp_cast_13 = (1.0).xxxx; 358 | float4 blendOpSrc365_g100 = _Shadow1Color; 359 | float4 blendOpDest365_g100 = _Shadow2Color; 360 | float4 lerpResult733_g100 = lerp( _Shadow2Color , ( saturate( min( blendOpSrc365_g100 , blendOpDest365_g100 ) )) , _ShadowColorDarken); 361 | float3 lerpResult333_g100 = lerp( float3( 0,0,1 ) , NormalMap208_g100 , _NormalIntensity); 362 | float3 newWorldNormal334_g100 = (WorldNormalVector( i , lerpResult333_g100 )); 363 | #if defined(LIGHTMAP_ON) && UNITY_VERSION < 560 //aseld 364 | float3 ase_worldlightDir = 0; 365 | #else //aseld 366 | float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) ); 367 | #endif //aseld 368 | float dotResult5_g101 = dot( newWorldNormal334_g100 , ase_worldlightDir ); 369 | float temp_output_335_0_g100 = (dotResult5_g101*0.5 + 0.5); 370 | float lerpResult726_g100 = lerp( temp_output_335_0_g100 , saturate( ( temp_output_335_0_g100 * ase_lightAtten ) ) , _ObjectShadow); 371 | float grayscale544_g100 = (ase_lightColor.rgb.r + ase_lightColor.rgb.g + ase_lightColor.rgb.b) / 3; 372 | float3 localFunction_ShadeSH9567_g100 = Function_ShadeSH9(); 373 | float grayscale568_g100 = (localFunction_ShadeSH9567_g100.r + localFunction_ShadeSH9567_g100.g + localFunction_ShadeSH9567_g100.b) / 3; 374 | float blendOpSrc566_g100 = grayscale544_g100; 375 | float blendOpDest566_g100 = grayscale568_g100; 376 | float lerpResult729_g100 = lerp( lerpResult726_g100 , ( ( saturate( max( blendOpSrc566_g100, blendOpDest566_g100 ) )) * lerpResult726_g100 ) , _LightIntensityShadowPos); 377 | float3 localBakedDirectionalLight746_g100 = BakedDirectionalLight746_g100(); 378 | float dotResult441_g100 = dot( localBakedDirectionalLight746_g100 , newWorldNormal334_g100 ); 379 | float temp_output_538_0_g100 = ( ( dotResult441_g100 * 0.5 ) + 0.5 ); 380 | float ifLocalVar431_g100 = 0; 381 | if( ase_lightColor.a <= 0.0 ) 382 | ifLocalVar431_g100 = temp_output_538_0_g100; 383 | else 384 | ifLocalVar431_g100 = lerpResult729_g100; 385 | float3 VDirLight648_g100 = _VDirLight; 386 | float4 transform617_g100 = mul(unity_ObjectToWorld,float4( VDirLight648_g100 , 0.0 )); 387 | float3 lerpResult624_g100 = lerp( float3( 0,0,1 ) , NormalMap208_g100 , _NormalIntensity); 388 | float dotResult613_g100 = dot( transform617_g100 , float4( (WorldNormalVector( i , lerpResult624_g100 )) , 0.0 ) ); 389 | float FixedShadow627_g100 = ( ( dotResult613_g100 * 0.5 ) + 0.5 ); 390 | float lerpResult724_g100 = lerp( ifLocalVar431_g100 , FixedShadow627_g100 , _Unlit); 391 | float temp_output_351_0_g100 = ( ( ( ( _Shadow1Place + lerpResult724_g100 ) - 0.5 ) * _Shadow1Contrast ) + 0.5 ); 392 | float4 temp_cast_17 = (temp_output_351_0_g100).xxxx; 393 | float4 temp_cast_19 = (temp_output_351_0_g100).xxxx; 394 | float div354_g100=256.0/float((int)255.0); 395 | float4 posterize354_g100 = ( floor( temp_cast_19 * div354_g100 ) / div354_g100 ); 396 | float4 lerpResult720_g100 = lerp( temp_cast_17 , posterize354_g100 , _PosterizeToggle); 397 | float4 temp_cast_20 = (0.0).xxxx; 398 | float4 temp_cast_21 = (1.0).xxxx; 399 | float4 clampResult364_g100 = clamp( lerpResult720_g100 , temp_cast_20 , temp_cast_21 ); 400 | float4 lerpResult366_g100 = lerp( _Shadow1Color , float4( 1,1,1,0 ) , clampResult364_g100); 401 | float lerpResult732_g100 = lerp( _Shadow1Contrast , _Shadow2Contrast , _Shadow2ContrastToggle); 402 | float temp_output_353_0_g100 = ( ( ( ( _Shadow2Place + lerpResult724_g100 ) - 0.5 ) * lerpResult732_g100 ) + 0.5 ); 403 | float4 temp_cast_22 = (temp_output_353_0_g100).xxxx; 404 | float4 temp_cast_24 = (temp_output_353_0_g100).xxxx; 405 | float div356_g100=256.0/float((int)255.0); 406 | float4 posterize356_g100 = ( floor( temp_cast_24 * div356_g100 ) / div356_g100 ); 407 | float4 lerpResult721_g100 = lerp( temp_cast_22 , posterize356_g100 , _PosterizeToggle); 408 | float4 temp_cast_25 = (0.0).xxxx; 409 | float4 temp_cast_26 = (1.0).xxxx; 410 | float4 clampResult363_g100 = clamp( lerpResult721_g100 , temp_cast_25 , temp_cast_26 ); 411 | float4 lerpResult368_g100 = lerp( lerpResult733_g100 , lerpResult366_g100 , clampResult363_g100); 412 | float2 uv_ShadowMask369_g100 = i.uv_texcoord; 413 | float4 lerpResult372_g100 = lerp( float4( 1,1,1,1 ) , lerpResult368_g100 , tex2D( _ShadowMask, uv_ShadowMask369_g100 )); 414 | float4 lerpResult735_g100 = lerp( temp_cast_13 , lerpResult372_g100 , _HalfLambertToggle); 415 | float4 Shadow375_g100 = lerpResult735_g100; 416 | float4 EmissiveScrollMask508_g100 = tex2DNode466_g100; 417 | float4 lerpResult715_g100 = lerp( float4( 0,0,0,0 ) , EmissiveScrollMask508_g100 , _ForceEmissiveToggle); 418 | float4 lerpResult451_g100 = lerp( saturate( ( ( RimLight233_g100 + Matcap260_g100 + Reflection280_g100 ) * MatcapShadow261_g100 * Lighting201_g100 * Shadow375_g100 ) ) , float4( 0,0,0,0 ) , lerpResult715_g100); 419 | c.rgb = lerpResult451_g100.rgb; 420 | c.a = 1; 421 | clip( Opacity674_g100 - _CutoutThreshold ); 422 | return c; 423 | } 424 | 425 | inline void LightingStandardCustomLighting_GI( inout SurfaceOutputCustomLightingCustom s, UnityGIInput data, inout UnityGI gi ) 426 | { 427 | s.GIData = data; 428 | } 429 | 430 | void surf( Input i , inout SurfaceOutputCustomLightingCustom o ) 431 | { 432 | o.SurfInput = i; 433 | o.Normal = float3(0,0,1); 434 | float2 uv_ScanLineTex526_g100 = i.uv_texcoord; 435 | float3 ase_worldPos = i.worldPos; 436 | float3 worldToObj529_g100 = mul( unity_WorldToObject, float4( ase_worldPos, 1 ) ).xyz; 437 | float4 lerpResult513_g100 = lerp( float4( 0,0,0,0 ) , tex2D( _ScanLineTex, uv_ScanLineTex526_g100 ) , ( ( worldToObj529_g100.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) > ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 0.0 : ( worldToObj529_g100.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) <= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) && ( worldToObj529_g100.y + _ScanLinePosition ) + (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) >= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 1.0 : 0.0 ) ); 438 | float mulTime583_g100 = _Time.y * _Color2ChangeSpeed; 439 | float4 lerpResult578_g100 = lerp( _ScanLineColor , _ScanLineColor2 , sin( mulTime583_g100 )); 440 | float4 lerpResult704_g100 = lerp( _ScanLineColor , lerpResult578_g100 , _ScanLineColor2Toggle); 441 | float4 lerpResult702_g100 = lerp( float4( 0,0,0,0 ) , ( lerpResult513_g100 * lerpResult704_g100 ) , _ScanLineToggle); 442 | float4 ScanLineEmission534_g100 = lerpResult702_g100; 443 | float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw; 444 | float2 uv_TexCoord485_g100 = i.uv_texcoord * _EmissiveScrollTiling + ( _Time.x * _EmissiveScrollSpeed ); 445 | float2 uv_EmissiveScrollMask466_g100 = i.uv_texcoord; 446 | float4 tex2DNode466_g100 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g100 ); 447 | float4 lerpResult468_g100 = lerp( float4( 0,0,0,0 ) , tex2D( _EmissiveScrollTex, uv_TexCoord485_g100 ) , tex2DNode466_g100); 448 | float2 ScrollDir469_g100 = _EmissiveScrollSpeed; 449 | float dotResult461_g100 = dot( i.uv_texcoord , ScrollDir469_g100 ); 450 | float4 lerpResult504_g100 = lerp( float4( 0,0,0,0 ) , ( _EmissiveScrollColor * ( 1.0 - saturate( ( ( ( ( ( cos( ( UNITY_PI * ( ( dotResult461_g100 + _Time.y ) * ScrollDir469_g100 ) ) ).x + 0.0 ) + _EmissiveScrollStrength ) - 0.5 ) * _EmissiveScrollContrast ) + 0.5 ) ) ) ) , tex2DNode466_g100); 451 | float4 lerpResult700_g100 = lerp( ( lerpResult468_g100 * _EmissiveScrollColor ) , lerpResult504_g100 , _EmissiveScrollGradient); 452 | float4 EmissiveScroll507_g100 = saturate( lerpResult700_g100 ); 453 | float4 lerpResult706_g100 = lerp( float4( 0,0,0,0 ) , EmissiveScroll507_g100 , _EmissiveScrollToggle); 454 | float2 uv_TexCoord574_g100 = i.uv_texcoord * _ParallaxTiling; 455 | float2 Offset573_g100 = ( ( _ParallaxHight - 1 ) * i.viewDir.xy * _ParallaxScale ) + uv_TexCoord574_g100; 456 | float2 uv_ParallaxMask = i.uv_texcoord * _ParallaxMask_ST.xy + _ParallaxMask_ST.zw; 457 | float4 lerpResult588_g100 = lerp( float4( 0,0,0,0 ) , tex2D( _ParallaxEmission, Offset573_g100 ) , tex2D( _ParallaxMask, uv_ParallaxMask )); 458 | float4 temp_output_452_0_g100 = ( ScanLineEmission534_g100 + ( tex2D( _EmissionMap, uv_EmissionMap ) * _EmissionColor ) + lerpResult706_g100 + lerpResult588_g100 ); 459 | o.Emission = temp_output_452_0_g100.rgb; 460 | } 461 | 462 | ENDCG 463 | CGPROGRAM 464 | #pragma surface surf StandardCustomLighting keepalpha fullforwardshadows exclude_path:deferred 465 | 466 | ENDCG 467 | Pass 468 | { 469 | Name "ShadowCaster" 470 | Tags{ "LightMode" = "ShadowCaster" } 471 | ZWrite On 472 | CGPROGRAM 473 | #pragma vertex vert 474 | #pragma fragment frag 475 | #pragma target 3.0 476 | #pragma multi_compile_shadowcaster 477 | #pragma multi_compile UNITY_PASS_SHADOWCASTER 478 | #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 479 | #include "HLSLSupport.cginc" 480 | #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN ) 481 | #define CAN_SKIP_VPOS 482 | #endif 483 | #include "UnityCG.cginc" 484 | #include "Lighting.cginc" 485 | #include "UnityPBSLighting.cginc" 486 | struct v2f 487 | { 488 | V2F_SHADOW_CASTER; 489 | float2 customPack1 : TEXCOORD1; 490 | float4 tSpace0 : TEXCOORD2; 491 | float4 tSpace1 : TEXCOORD3; 492 | float4 tSpace2 : TEXCOORD4; 493 | UNITY_VERTEX_INPUT_INSTANCE_ID 494 | UNITY_VERTEX_OUTPUT_STEREO 495 | }; 496 | v2f vert( appdata_full v ) 497 | { 498 | v2f o; 499 | UNITY_SETUP_INSTANCE_ID( v ); 500 | UNITY_INITIALIZE_OUTPUT( v2f, o ); 501 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o ); 502 | UNITY_TRANSFER_INSTANCE_ID( v, o ); 503 | Input customInputData; 504 | float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz; 505 | half3 worldNormal = UnityObjectToWorldNormal( v.normal ); 506 | half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz ); 507 | half tangentSign = v.tangent.w * unity_WorldTransformParams.w; 508 | half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign; 509 | o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x ); 510 | o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y ); 511 | o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z ); 512 | o.customPack1.xy = customInputData.uv_texcoord; 513 | o.customPack1.xy = v.texcoord; 514 | TRANSFER_SHADOW_CASTER_NORMALOFFSET( o ) 515 | return o; 516 | } 517 | half4 frag( v2f IN 518 | #if !defined( CAN_SKIP_VPOS ) 519 | , UNITY_VPOS_TYPE vpos : VPOS 520 | #endif 521 | ) : SV_Target 522 | { 523 | UNITY_SETUP_INSTANCE_ID( IN ); 524 | Input surfIN; 525 | UNITY_INITIALIZE_OUTPUT( Input, surfIN ); 526 | surfIN.uv_texcoord = IN.customPack1.xy; 527 | float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w ); 528 | half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) ); 529 | surfIN.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z; 530 | surfIN.worldPos = worldPos; 531 | surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z ); 532 | surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz; 533 | surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz; 534 | surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz; 535 | SurfaceOutputCustomLightingCustom o; 536 | UNITY_INITIALIZE_OUTPUT( SurfaceOutputCustomLightingCustom, o ) 537 | surf( surfIN, o ); 538 | UnityGI gi; 539 | UNITY_INITIALIZE_OUTPUT( UnityGI, gi ); 540 | o.Alpha = LightingStandardCustomLighting( o, worldViewDir, gi ).a; 541 | #if defined( CAN_SKIP_VPOS ) 542 | float2 vpos = IN.pos; 543 | #endif 544 | SHADOW_CASTER_FRAGMENT( IN ) 545 | } 546 | ENDCG 547 | } 548 | } 549 | Fallback "Diffuse" 550 | CustomEditor "RSInspector" 551 | } 552 | /*ASEBEGIN 553 | Version=17000 554 | 1927;12;1906;1020;865.0032;367.8367;1;True;False 555 | Node;AmplifyShaderEditor.CommentaryNode;46;338.6193,-381.5405;Float;False;361.0041;347.572;Properties;3;98;48;47;Miscellaneous;0.5514706,0.5514706,0.5514706,1;0;0 556 | Node;AmplifyShaderEditor.FunctionNode;105;-411.4024,126.0497;Float;False;Reflex Shader Function;0;;100;f5d8f584674c8984ab029c8868eb5bf3;0;0;6;COLOR;186;FLOAT;265;COLOR;0;COLOR;402;FLOAT;403;COLOR;404 557 | Node;AmplifyShaderEditor.RangedFloatNode;47;378.3102,-222.1641;Float;False;Property;_CutoutThreshold;Cutout Threshold;82;0;Create;True;0;0;True;0;0.5;0.5;0;1;0;1;FLOAT;0 558 | Node;AmplifyShaderEditor.RangedFloatNode;106;722.0185,-254.6994;Float;False;Property;_OutlineToggleTest;Outline Toggle Test;79;1;[Enum];Create;True;3;Both;0;Back;1;Front;2;0;True;0;2;0;0;0;0;1;FLOAT;0 559 | Node;AmplifyShaderEditor.StaticSwitch;98;373.2518,-139.9842;Float;False;Property;_Unlit;Unlit;80;0;Create;True;0;0;True;0;0;0;0;True;;Toggle;2;Key0;Key1;Create;False;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0 560 | Node;AmplifyShaderEditor.RangedFloatNode;48;376.6192,-309.541;Float;False;Property;_CullMode;Cull Mode;81;1;[Enum];Create;True;0;1;UnityEngine.Rendering.CullMode;True;0;2;0;0;0;0;1;FLOAT;0 561 | Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;324,-10;Float;False;True;2;Float;RSInspector;0;0;CustomLighting;Reflex Shader 2/No Outline/Cutout;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Masked;0.5;True;True;0;False;TransparentCutout;;AlphaTest;ForwardOnly;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;0;False;-1;False;0;False;-1;255;False;-1;255;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;True;0;0;False;-1;0;False;-1;0;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;-1;-1;-1;-1;0;False;0;0;True;48;-1;0;True;47;0;0;0;False;0.1;False;-1;0;False;-1;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0 562 | WireConnection;0;2;105;186 563 | WireConnection;0;10;105;265 564 | WireConnection;0;13;105;0 565 | ASEEND*/ 566 | //CHKSM=2FE6FB3DE0042C3648804C8D948552941CDD93E5 -------------------------------------------------------------------------------- /no_outline/Cutout no_outline.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13dcfc05fc9ff46279cd0d8b19b6eb16 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /no_outline/Opaque no_outline.shader: -------------------------------------------------------------------------------- 1 | // Made with Amplify Shader Editor 2 | // Available at the Unity Asset Store - http://u3d.as/y3X 3 | Shader "Reflex Shader 2/No Outline/Opaque" 4 | { 5 | Properties 6 | { 7 | _MainTex("Diffuse", 2D) = "white" {} 8 | _DiffuseColor("Diffuse Color", Color) = (1,1,1,1) 9 | _EmissionMap("Emission", 2D) = "black" {} 10 | _EmissionColor("Emission Color", Color) = (1,1,1,1) 11 | [Normal]_BumpMap("Normal Map", 2D) = "bump" {} 12 | _Matcap("Matcap", 2D) = "black" {} 13 | _MatcapColor("Matcap Color", Color) = (1,1,1,1) 14 | [Toggle(_)]_MatcapShadowToggle("Matcap Shadow Toggle", Float) = 0 15 | _MatcapShadow("Matcap Shadow", 2D) = "white" {} 16 | _MatcapShadowColor("Matcap Shadow Color", Color) = (0.7843137,0.7843137,0.7843137,1) 17 | [NoScaleOffset]_MatcapMask("Matcap Mask", 2D) = "white" {} 18 | [Toggle(_)]_MatcapCameraFix("Matcap Camera Fix", Float) = 0 19 | [Toggle(_)]_RimLightToggle("RimLight Toggle", Float) = 0 20 | _RimLightColor("RimLight Color", Color) = (1,1,1,1) 21 | _RimLightPower("RimLight Power", Range( 0 , 1)) = 0 22 | _RimLightContrast("RimLight Contrast", Range( 0 , 10)) = 3 23 | [NoScaleOffset]_RimLightMask("RimLight Mask", 2D) = "white" {} 24 | [Toggle]_RimLightNormal("RimLight Normal", Float) = 0 25 | [Toggle(_REFLECTIONTOGGLE_ON)] _ReflectionToggle("Reflection Toggle", Float) = 0 26 | _ReflectionColor("Reflection Color", Color) = (1,1,1,0) 27 | _ReflectionIntensity("Reflection Intensity", Range( 0 , 1)) = 1 28 | _Smoothness("Smoothness", Range( 0 , 1)) = 1 29 | [Toggle(_)]_FresnelToggle("Fresnel Toggle", Float) = 0 30 | _FresnelPower("Fresnel Power", Range( 0 , 10)) = 9 31 | _FresnelScale("Fresnel Scale", Range( 0 , 3)) = 3 32 | [Toggle(_)]_HalfLambertToggle("ShaodwToggle", Float) = 1 33 | [Toggle(_)]_ObjectShadow("Use System Shadow", Float) = 1 34 | _Shadow1Contrast("Shadow 1 Contrast", Range( 1 , 20)) = 10 35 | _Shadow1Color("Shadow 1 Color", Color) = (0.8627451,0.8627451,0.8627451,1) 36 | _Shadow1Place("Shadow 1 Place", Range( -1 , 1)) = 0 37 | [Toggle(_)]_Shadow2ContrastToggle("Shadow 2 Contrast Toggle", Float) = 0 38 | _Shadow2Contrast("Shadow 2 Contrast", Range( 1 , 20)) = 20 39 | _Shadow2Color("Shadow 2 Color", Color) = (0.7843137,0.7843137,0.7843137,1) 40 | _Shadow2Place("Shadow 2 Place", Range( -1 , 1)) = 0.1 41 | [NoScaleOffset]_ShadowMask("Shadow Mask", 2D) = "white" {} 42 | [Toggle(_)]_ShadowColorDarken("Shadow Color Darken", Float) = 1 43 | _AmbientMinimum("Ambient Minimum", Range( 0 , 1)) = 0 44 | [Toggle(_)]_PosterizeToggle("Posterize Toggle", Float) = 0 45 | _NormalIntensity("Normal Intensity", Range( 0 , 1)) = 0.5 46 | [Toggle(_)]_LightIntensityShadowPos("Light Intensity Shadow Pos", Float) = 0 47 | _VDirLight("V Dir Light", Vector) = (0,0.6,1,0) 48 | [Toggle(_)]_ColorShift("Color Shift", Float) = 0 49 | _H("H", Range( -1 , 1)) = 1 50 | _S("S", Range( -1 , 1)) = 0 51 | _V("V", Range( -1 , 1)) = 0 52 | [Toggle(_)]_ScanLineToggle("Scan Line Toggle", Float) = 0 53 | [NoScaleOffset]_ScanLineTex("Scan Line Mask", 2D) = "white" {} 54 | _ScanLineColor("Scan Line Color", Color) = (0,0.710345,1,0) 55 | _ScanLineColor2("Scan Line Color 2", Color) = (1,0,0,0) 56 | _ScanLineSpeed("Scan Line Speed", Float) = 1 57 | _ScanLineWidth("Scan Line Width", Range( 0 , 1)) = 1 58 | _ScanLinePosition("Scan Line Position", Float) = 0 59 | [Toggle(_)]_ScanLineColor2Toggle("Scan Line Color 2 Toggle", Float) = 0 60 | _Color2ChangeSpeed("Color 2 Change Speed", Float) = 1 61 | [NoScaleOffset]_EmissiveScrollTex("Emissive Scroll Tex", 2D) = "black" {} 62 | [NoScaleOffset]_EmissiveScrollMask("Emissive Scroll Mask", 2D) = "white" {} 63 | _EmissiveScrollColor("Emissive Scroll Color", Color) = (1,1,1,1) 64 | _EmissiveScrollSpeed("Emissive Scroll Speed", Vector) = (1,0,0,0) 65 | [Toggle(_)]_EmissiveScrollGradient("Emissive Scroll Gradient", Float) = 0 66 | _EmissiveScrollContrast("Emissive Scroll Contrast", Float) = 1 67 | _EmissiveScrollStrength("Emissive Scroll Strength", Float) = 0 68 | [Toggle(_)]_ForceEmissiveToggle("Force Emissive Toggle", Float) = 0 69 | _EmissiveScrollTiling("Emissive Scroll Tiling", Vector) = (1,1,0,0) 70 | [NoScaleOffset]_ParallaxEmission("Parallax Emission", 2D) = "black" {} 71 | _ParallaxTiling("Parallax Tiling", Vector) = (1,1,0,0) 72 | _ParallaxScale("Parallax Scale", Float) = 1 73 | [Toggle(_)]_ForceMatcap("Force Matcap", Float) = 0 74 | [Toggle(_)]_MatcapToggle("Matcap Toggle", Float) = 0 75 | [Toggle(_)]_EmissiveScrollToggle("Emissive Scroll Toggle", Float) = 0 76 | _ParallaxHight("Parallax Hight", Float) = 1 77 | _ParallaxMask("Parallax Mask", 2D) = "white" {} 78 | [Toggle(_)]_Unlit("Unlit", Float) = 0 79 | [Toggle(_)]_GrayscaleColor("Grayscale Color", Float) = 0 80 | [Enum(UnityEngine.Rendering.CullMode)]_CullMode("Cull Mode", Float) = 2 81 | [HideInInspector] _texcoord( "", 2D ) = "white" {} 82 | [HideInInspector] __dirty( "", Int ) = 1 83 | } 84 | 85 | SubShader 86 | { 87 | Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" "IsEmissive" = "true" } 88 | Cull [_CullMode] 89 | CGINCLUDE 90 | #include "UnityPBSLighting.cginc" 91 | #include "UnityShaderVariables.cginc" 92 | #include "UnityStandardUtils.cginc" 93 | #include "UnityCG.cginc" 94 | #include "Lighting.cginc" 95 | #pragma target 3.0 96 | #pragma shader_feature _REFLECTIONTOGGLE_ON 97 | #ifdef UNITY_PASS_SHADOWCASTER 98 | #undef INTERNAL_DATA 99 | #undef WorldReflectionVector 100 | #undef WorldNormalVector 101 | #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2; 102 | #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))) 103 | #define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)) 104 | #endif 105 | struct Input 106 | { 107 | float2 uv_texcoord; 108 | float3 worldPos; 109 | float3 viewDir; 110 | INTERNAL_DATA 111 | float3 worldNormal; 112 | }; 113 | 114 | struct SurfaceOutputCustomLightingCustom 115 | { 116 | half3 Albedo; 117 | half3 Normal; 118 | half3 Emission; 119 | half Metallic; 120 | half Smoothness; 121 | half Occlusion; 122 | half Alpha; 123 | Input SurfInput; 124 | UnityGIInput GIData; 125 | }; 126 | 127 | uniform float _CullMode; 128 | uniform sampler2D _ScanLineTex; 129 | uniform float _ScanLinePosition; 130 | uniform float _ScanLineSpeed; 131 | uniform float _ScanLineWidth; 132 | uniform float4 _ScanLineColor; 133 | uniform float4 _ScanLineColor2; 134 | uniform float _Color2ChangeSpeed; 135 | uniform float _ScanLineColor2Toggle; 136 | uniform float _ScanLineToggle; 137 | uniform sampler2D _EmissionMap; 138 | uniform float4 _EmissionMap_ST; 139 | uniform float4 _EmissionColor; 140 | uniform sampler2D _EmissiveScrollTex; 141 | uniform float2 _EmissiveScrollTiling; 142 | uniform float2 _EmissiveScrollSpeed; 143 | uniform sampler2D _EmissiveScrollMask; 144 | uniform float4 _EmissiveScrollColor; 145 | uniform float _EmissiveScrollStrength; 146 | uniform float _EmissiveScrollContrast; 147 | uniform float _EmissiveScrollGradient; 148 | uniform float _EmissiveScrollToggle; 149 | uniform sampler2D _ParallaxEmission; 150 | uniform float2 _ParallaxTiling; 151 | uniform float _ParallaxHight; 152 | uniform float _ParallaxScale; 153 | uniform sampler2D _ParallaxMask; 154 | uniform float4 _ParallaxMask_ST; 155 | uniform float _RimLightNormal; 156 | uniform sampler2D _BumpMap; 157 | uniform float4 _BumpMap_ST; 158 | uniform float _RimLightPower; 159 | uniform float _RimLightContrast; 160 | uniform float4 _RimLightColor; 161 | uniform sampler2D _RimLightMask; 162 | uniform float _RimLightToggle; 163 | uniform sampler2D _Matcap; 164 | uniform float _MatcapCameraFix; 165 | uniform float4 _MatcapColor; 166 | uniform sampler2D _MatcapMask; 167 | uniform float _MatcapToggle; 168 | uniform sampler2D _MainTex; 169 | uniform float4 _MainTex_ST; 170 | uniform float4 _DiffuseColor; 171 | uniform float _GrayscaleColor; 172 | uniform float _H; 173 | uniform float _S; 174 | uniform float _V; 175 | uniform float _ColorShift; 176 | uniform float _ForceMatcap; 177 | uniform float _Smoothness; 178 | uniform float4 _ReflectionColor; 179 | uniform float _ReflectionIntensity; 180 | uniform float _FresnelScale; 181 | uniform float _FresnelPower; 182 | uniform float _FresnelToggle; 183 | uniform sampler2D _MatcapShadow; 184 | uniform float _MatcapShadowToggle; 185 | uniform float4 _MatcapShadowColor; 186 | uniform float _AmbientMinimum; 187 | uniform float _Unlit; 188 | uniform float4 _Shadow2Color; 189 | uniform float4 _Shadow1Color; 190 | uniform float _ShadowColorDarken; 191 | uniform float _Shadow1Place; 192 | uniform float _NormalIntensity; 193 | uniform float _ObjectShadow; 194 | uniform float _LightIntensityShadowPos; 195 | uniform float3 _VDirLight; 196 | uniform float _Shadow1Contrast; 197 | uniform float _PosterizeToggle; 198 | uniform float _Shadow2Place; 199 | uniform float _Shadow2Contrast; 200 | uniform float _Shadow2ContrastToggle; 201 | uniform sampler2D _ShadowMask; 202 | uniform float _HalfLambertToggle; 203 | uniform float _ForceEmissiveToggle; 204 | 205 | 206 | float3 HSVToRGB( float3 c ) 207 | { 208 | float4 K = float4( 1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0 ); 209 | float3 p = abs( frac( c.xxx + K.xyz ) * 6.0 - K.www ); 210 | return c.z * lerp( K.xxx, saturate( p - K.xxx ), c.y ); 211 | } 212 | 213 | 214 | float3 RGBToHSV(float3 c) 215 | { 216 | float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 217 | float4 p = lerp( float4( c.bg, K.wz ), float4( c.gb, K.xy ), step( c.b, c.g ) ); 218 | float4 q = lerp( float4( p.xyw, c.r ), float4( c.r, p.yzx ), step( p.x, c.r ) ); 219 | float d = q.x - min( q.w, q.y ); 220 | float e = 1.0e-10; 221 | return float3( abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); 222 | } 223 | 224 | float3 Function_ShadeSH9( ) 225 | { 226 | return ShadeSH9(half4(0,0,0,1)); 227 | } 228 | 229 | 230 | float3 BakedDirectionalLight746_g77( ) 231 | { 232 | return normalize(unity_SHAr.rgb *0.3+unity_SHAg.rgb*0.6+unity_SHAb.rgb*0.1); 233 | } 234 | 235 | 236 | inline half4 LightingStandardCustomLighting( inout SurfaceOutputCustomLightingCustom s, half3 viewDir, UnityGI gi ) 237 | { 238 | UnityGIInput data = s.GIData; 239 | Input i = s.SurfInput; 240 | half4 c = 0; 241 | #ifdef UNITY_PASS_FORWARDBASE 242 | float ase_lightAtten = data.atten; 243 | if( _LightColor0.a == 0) 244 | ase_lightAtten = 0; 245 | #else 246 | float3 ase_lightAttenRGB = gi.light.color / ( ( _LightColor0.rgb ) + 0.000001 ); 247 | float ase_lightAtten = max( max( ase_lightAttenRGB.r, ase_lightAttenRGB.g ), ase_lightAttenRGB.b ); 248 | #endif 249 | #if defined(HANDLE_SHADOWS_BLENDING_IN_GI) 250 | half bakedAtten = UnitySampleBakedOcclusion(data.lightmapUV.xy, data.worldPos); 251 | float zDist = dot(_WorldSpaceCameraPos - data.worldPos, UNITY_MATRIX_V[2].xyz); 252 | float fadeDist = UnityComputeShadowFadeDistance(data.worldPos, zDist); 253 | ase_lightAtten = UnityMixRealtimeAndBakedShadows(data.atten, bakedAtten, UnityComputeShadowFade(fadeDist)); 254 | #endif 255 | float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw; 256 | float3 tex2DNode207_g77 = UnpackNormal( tex2D( _BumpMap, uv_BumpMap ) ); 257 | float3 ase_worldPos = i.worldPos; 258 | float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) ); 259 | float dotResult214_g77 = dot( (WorldNormalVector( i , lerp(float3( 0,0,1 ),tex2DNode207_g77,_RimLightNormal) )) , ase_worldViewDir ); 260 | float2 uv_RimLightMask225_g77 = i.uv_texcoord; 261 | float4 lerpResult230_g77 = lerp( ( ( ( ( ( abs( ( 1.0 - dotResult214_g77 ) ) * _RimLightPower ) - 0.5 ) * _RimLightContrast ) + 0.5 ) * _RimLightColor ) , float4( 0,0,0,0 ) , ( 1.0 - tex2D( _RimLightMask, uv_RimLightMask225_g77 ) )); 262 | float4 lerpResult708_g77 = lerp( float4( 0,0,0,0 ) , lerpResult230_g77 , _RimLightToggle); 263 | float4 RimLight233_g77 = saturate( lerpResult708_g77 ); 264 | float3 NormalMap208_g77 = tex2DNode207_g77; 265 | float3 temp_output_240_0_g77 = mul( UNITY_MATRIX_V, float4( (WorldNormalVector( i , NormalMap208_g77 )) , 0.0 ) ).xyz; 266 | float3 worldToViewDir556_g77 = mul( UNITY_MATRIX_V, float4( ase_worldViewDir, 0 ) ).xyz; 267 | float2 lerpResult737_g77 = lerp( (temp_output_240_0_g77).xy , (BlendNormals( ( worldToViewDir556_g77 * float3(-1,-1,1) ) , temp_output_240_0_g77 )).xy , _MatcapCameraFix); 268 | float2 temp_output_244_0_g77 = ( 0.5 + ( 0.5 * lerpResult737_g77 ) ); 269 | float4 blendOpSrc251_g77 = tex2D( _Matcap, temp_output_244_0_g77 ); 270 | float4 blendOpDest251_g77 = _MatcapColor; 271 | float2 uv_MatcapMask246_g77 = i.uv_texcoord; 272 | float4 tex2DNode246_g77 = tex2D( _MatcapMask, uv_MatcapMask246_g77 ); 273 | float4 lerpResult254_g77 = lerp( float4( 0,0,0,0 ) , ( saturate( ( blendOpSrc251_g77 * blendOpDest251_g77 ) )) , tex2DNode246_g77); 274 | float4 lerpResult709_g77 = lerp( float4( 0,0,0,0 ) , lerpResult254_g77 , _MatcapToggle); 275 | float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw; 276 | float4 temp_output_84_0_g77 = ( tex2D( _MainTex, uv_MainTex ) * _DiffuseColor ); 277 | float4 DiffuseBase606_g77 = temp_output_84_0_g77; 278 | float grayscale611_g77 = dot(DiffuseBase606_g77.rgb, float3(0.299,0.587,0.114)); 279 | float4 temp_cast_6 = (grayscale611_g77).xxxx; 280 | float4 lerpResult745_g77 = lerp( DiffuseBase606_g77 , temp_cast_6 , _GrayscaleColor); 281 | float3 hsvTorgb595_g77 = RGBToHSV( lerpResult745_g77.rgb ); 282 | float3 hsvTorgb603_g77 = HSVToRGB( float3(( hsvTorgb595_g77.x + _H ),( hsvTorgb595_g77.y + _S ),( hsvTorgb595_g77.z + _V )) ); 283 | float4 lerpResult742_g77 = lerp( DiffuseBase606_g77 , float4( hsvTorgb603_g77 , 0.0 ) , _ColorShift); 284 | float4 Diffuse105_g77 = lerpResult742_g77; 285 | float4 lerpResult252_g77 = lerp( Diffuse105_g77 , float4( 0,0,0,0 ) , tex2DNode246_g77); 286 | float4 lerpResult713_g77 = lerp( Diffuse105_g77 , lerpResult252_g77 , _ForceMatcap); 287 | float4 Matcap260_g77 = ( lerpResult709_g77 + lerpResult713_g77 ); 288 | float3 indirectNormal281_g77 = WorldNormalVector( i , NormalMap208_g77 ); 289 | Unity_GlossyEnvironmentData g281_g77 = UnityGlossyEnvironmentSetup( _Smoothness, data.worldViewDir, indirectNormal281_g77, float3(0,0,0)); 290 | float3 indirectSpecular281_g77 = UnityGI_IndirectSpecular( data, 1.0, indirectNormal281_g77, g281_g77 ); 291 | float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) ); 292 | float3 ase_worldTangent = WorldNormalVector( i, float3( 1, 0, 0 ) ); 293 | float3 ase_worldBitangent = WorldNormalVector( i, float3( 0, 1, 0 ) ); 294 | float3x3 ase_tangentToWorldFast = float3x3(ase_worldTangent.x,ase_worldBitangent.x,ase_worldNormal.x,ase_worldTangent.y,ase_worldBitangent.y,ase_worldNormal.y,ase_worldTangent.z,ase_worldBitangent.z,ase_worldNormal.z); 295 | float fresnelNdotV275_g77 = dot( mul(ase_tangentToWorldFast,NormalMap208_g77), ase_worldViewDir ); 296 | float fresnelNode275_g77 = ( 0.0 + _FresnelScale * pow( 1.0 - fresnelNdotV275_g77, _FresnelPower ) ); 297 | float lerpResult699_g77 = lerp( 1.0 , fresnelNode275_g77 , _FresnelToggle); 298 | float4 lerpResult278_g77 = lerp( float4( 0,0,0,0 ) , ( ( float4( indirectSpecular281_g77 , 0.0 ) * _ReflectionColor ) * _ReflectionIntensity ) , saturate( lerpResult699_g77 )); 299 | #ifdef _REFLECTIONTOGGLE_ON 300 | float4 staticSwitch549_g77 = lerpResult278_g77; 301 | #else 302 | float4 staticSwitch549_g77 = float4( 0,0,0,0 ); 303 | #endif 304 | float4 Reflection280_g77 = saturate( staticSwitch549_g77 ); 305 | float4 lerpResult740_g77 = lerp( float4( 1,1,1,1 ) , tex2D( _MatcapShadow, temp_output_244_0_g77 ) , _MatcapShadowToggle); 306 | float4 blendOpSrc259_g77 = lerpResult740_g77; 307 | float4 blendOpDest259_g77 = _MatcapShadowColor; 308 | float4 MatcapShadow261_g77 = ( saturate( ( blendOpSrc259_g77 + blendOpDest259_g77 ) )); 309 | float3 localFunction_ShadeSH9411_g77 = Function_ShadeSH9(); 310 | #if defined(LIGHTMAP_ON) && ( UNITY_VERSION < 560 || ( defined(LIGHTMAP_SHADOW_MIXING) && !defined(SHADOWS_SHADOWMASK) && defined(SHADOWS_SCREEN) ) )//aselc 311 | float4 ase_lightColor = 0; 312 | #else //aselc 313 | float4 ase_lightColor = _LightColor0; 314 | #endif //aselc 315 | float4 ifLocalVar196_g77 = 0; 316 | if( _WorldSpaceLightPos0.w <= 0.0 ) 317 | ifLocalVar196_g77 = ase_lightColor; 318 | else 319 | ifLocalVar196_g77 = ( ase_lightAtten * ase_lightColor ); 320 | float4 temp_cast_11 = (_AmbientMinimum).xxxx; 321 | float4 clampResult650_g77 = clamp( ( float4( localFunction_ShadeSH9411_g77 , 0.0 ) + ifLocalVar196_g77 ) , temp_cast_11 , float4( 1,1,1,1 ) ); 322 | float4 temp_cast_12 = (1.0).xxxx; 323 | float4 lerpResult723_g77 = lerp( saturate( clampResult650_g77 ) , temp_cast_12 , _Unlit); 324 | float4 Lighting201_g77 = lerpResult723_g77; 325 | float4 temp_cast_13 = (1.0).xxxx; 326 | float4 blendOpSrc365_g77 = _Shadow1Color; 327 | float4 blendOpDest365_g77 = _Shadow2Color; 328 | float4 lerpResult733_g77 = lerp( _Shadow2Color , ( saturate( min( blendOpSrc365_g77 , blendOpDest365_g77 ) )) , _ShadowColorDarken); 329 | float3 lerpResult333_g77 = lerp( float3( 0,0,1 ) , NormalMap208_g77 , _NormalIntensity); 330 | float3 newWorldNormal334_g77 = (WorldNormalVector( i , lerpResult333_g77 )); 331 | #if defined(LIGHTMAP_ON) && UNITY_VERSION < 560 //aseld 332 | float3 ase_worldlightDir = 0; 333 | #else //aseld 334 | float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) ); 335 | #endif //aseld 336 | float dotResult5_g78 = dot( newWorldNormal334_g77 , ase_worldlightDir ); 337 | float temp_output_335_0_g77 = (dotResult5_g78*0.5 + 0.5); 338 | float lerpResult726_g77 = lerp( temp_output_335_0_g77 , saturate( ( temp_output_335_0_g77 * ase_lightAtten ) ) , _ObjectShadow); 339 | float grayscale544_g77 = (ase_lightColor.rgb.r + ase_lightColor.rgb.g + ase_lightColor.rgb.b) / 3; 340 | float3 localFunction_ShadeSH9567_g77 = Function_ShadeSH9(); 341 | float grayscale568_g77 = (localFunction_ShadeSH9567_g77.r + localFunction_ShadeSH9567_g77.g + localFunction_ShadeSH9567_g77.b) / 3; 342 | float blendOpSrc566_g77 = grayscale544_g77; 343 | float blendOpDest566_g77 = grayscale568_g77; 344 | float lerpResult729_g77 = lerp( lerpResult726_g77 , ( ( saturate( max( blendOpSrc566_g77, blendOpDest566_g77 ) )) * lerpResult726_g77 ) , _LightIntensityShadowPos); 345 | float3 localBakedDirectionalLight746_g77 = BakedDirectionalLight746_g77(); 346 | float dotResult441_g77 = dot( localBakedDirectionalLight746_g77 , newWorldNormal334_g77 ); 347 | float temp_output_538_0_g77 = ( ( dotResult441_g77 * 0.5 ) + 0.5 ); 348 | float ifLocalVar431_g77 = 0; 349 | if( ase_lightColor.a <= 0.0 ) 350 | ifLocalVar431_g77 = temp_output_538_0_g77; 351 | else 352 | ifLocalVar431_g77 = lerpResult729_g77; 353 | float3 VDirLight648_g77 = _VDirLight; 354 | float4 transform617_g77 = mul(unity_ObjectToWorld,float4( VDirLight648_g77 , 0.0 )); 355 | float3 lerpResult624_g77 = lerp( float3( 0,0,1 ) , NormalMap208_g77 , _NormalIntensity); 356 | float dotResult613_g77 = dot( transform617_g77 , float4( (WorldNormalVector( i , lerpResult624_g77 )) , 0.0 ) ); 357 | float FixedShadow627_g77 = ( ( dotResult613_g77 * 0.5 ) + 0.5 ); 358 | float lerpResult724_g77 = lerp( ifLocalVar431_g77 , FixedShadow627_g77 , _Unlit); 359 | float temp_output_351_0_g77 = ( ( ( ( _Shadow1Place + lerpResult724_g77 ) - 0.5 ) * _Shadow1Contrast ) + 0.5 ); 360 | float4 temp_cast_17 = (temp_output_351_0_g77).xxxx; 361 | float4 temp_cast_19 = (temp_output_351_0_g77).xxxx; 362 | float div354_g77=256.0/float((int)255.0); 363 | float4 posterize354_g77 = ( floor( temp_cast_19 * div354_g77 ) / div354_g77 ); 364 | float4 lerpResult720_g77 = lerp( temp_cast_17 , posterize354_g77 , _PosterizeToggle); 365 | float4 temp_cast_20 = (0.0).xxxx; 366 | float4 temp_cast_21 = (1.0).xxxx; 367 | float4 clampResult364_g77 = clamp( lerpResult720_g77 , temp_cast_20 , temp_cast_21 ); 368 | float4 lerpResult366_g77 = lerp( _Shadow1Color , float4( 1,1,1,0 ) , clampResult364_g77); 369 | float lerpResult732_g77 = lerp( _Shadow1Contrast , _Shadow2Contrast , _Shadow2ContrastToggle); 370 | float temp_output_353_0_g77 = ( ( ( ( _Shadow2Place + lerpResult724_g77 ) - 0.5 ) * lerpResult732_g77 ) + 0.5 ); 371 | float4 temp_cast_22 = (temp_output_353_0_g77).xxxx; 372 | float4 temp_cast_24 = (temp_output_353_0_g77).xxxx; 373 | float div356_g77=256.0/float((int)255.0); 374 | float4 posterize356_g77 = ( floor( temp_cast_24 * div356_g77 ) / div356_g77 ); 375 | float4 lerpResult721_g77 = lerp( temp_cast_22 , posterize356_g77 , _PosterizeToggle); 376 | float4 temp_cast_25 = (0.0).xxxx; 377 | float4 temp_cast_26 = (1.0).xxxx; 378 | float4 clampResult363_g77 = clamp( lerpResult721_g77 , temp_cast_25 , temp_cast_26 ); 379 | float4 lerpResult368_g77 = lerp( lerpResult733_g77 , lerpResult366_g77 , clampResult363_g77); 380 | float2 uv_ShadowMask369_g77 = i.uv_texcoord; 381 | float4 lerpResult372_g77 = lerp( float4( 1,1,1,1 ) , lerpResult368_g77 , tex2D( _ShadowMask, uv_ShadowMask369_g77 )); 382 | float4 lerpResult735_g77 = lerp( temp_cast_13 , lerpResult372_g77 , _HalfLambertToggle); 383 | float4 Shadow375_g77 = lerpResult735_g77; 384 | float2 uv_EmissiveScrollMask466_g77 = i.uv_texcoord; 385 | float4 tex2DNode466_g77 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g77 ); 386 | float4 EmissiveScrollMask508_g77 = tex2DNode466_g77; 387 | float4 lerpResult715_g77 = lerp( float4( 0,0,0,0 ) , EmissiveScrollMask508_g77 , _ForceEmissiveToggle); 388 | float4 lerpResult451_g77 = lerp( saturate( ( ( RimLight233_g77 + Matcap260_g77 + Reflection280_g77 ) * MatcapShadow261_g77 * Lighting201_g77 * Shadow375_g77 ) ) , float4( 0,0,0,0 ) , lerpResult715_g77); 389 | c.rgb = lerpResult451_g77.rgb; 390 | c.a = 1; 391 | return c; 392 | } 393 | 394 | inline void LightingStandardCustomLighting_GI( inout SurfaceOutputCustomLightingCustom s, UnityGIInput data, inout UnityGI gi ) 395 | { 396 | s.GIData = data; 397 | } 398 | 399 | void surf( Input i , inout SurfaceOutputCustomLightingCustom o ) 400 | { 401 | o.SurfInput = i; 402 | o.Normal = float3(0,0,1); 403 | float2 uv_ScanLineTex526_g77 = i.uv_texcoord; 404 | float3 ase_worldPos = i.worldPos; 405 | float3 worldToObj529_g77 = mul( unity_WorldToObject, float4( ase_worldPos, 1 ) ).xyz; 406 | float4 lerpResult513_g77 = lerp( float4( 0,0,0,0 ) , tex2D( _ScanLineTex, uv_ScanLineTex526_g77 ) , ( ( worldToObj529_g77.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) > ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 0.0 : ( worldToObj529_g77.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) <= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) && ( worldToObj529_g77.y + _ScanLinePosition ) + (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) >= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 1.0 : 0.0 ) ); 407 | float mulTime583_g77 = _Time.y * _Color2ChangeSpeed; 408 | float4 lerpResult578_g77 = lerp( _ScanLineColor , _ScanLineColor2 , sin( mulTime583_g77 )); 409 | float4 lerpResult704_g77 = lerp( _ScanLineColor , lerpResult578_g77 , _ScanLineColor2Toggle); 410 | float4 lerpResult702_g77 = lerp( float4( 0,0,0,0 ) , ( lerpResult513_g77 * lerpResult704_g77 ) , _ScanLineToggle); 411 | float4 ScanLineEmission534_g77 = lerpResult702_g77; 412 | float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw; 413 | float2 uv_TexCoord485_g77 = i.uv_texcoord * _EmissiveScrollTiling + ( _Time.x * _EmissiveScrollSpeed ); 414 | float2 uv_EmissiveScrollMask466_g77 = i.uv_texcoord; 415 | float4 tex2DNode466_g77 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g77 ); 416 | float4 lerpResult468_g77 = lerp( float4( 0,0,0,0 ) , tex2D( _EmissiveScrollTex, uv_TexCoord485_g77 ) , tex2DNode466_g77); 417 | float2 ScrollDir469_g77 = _EmissiveScrollSpeed; 418 | float dotResult461_g77 = dot( i.uv_texcoord , ScrollDir469_g77 ); 419 | float4 lerpResult504_g77 = lerp( float4( 0,0,0,0 ) , ( _EmissiveScrollColor * ( 1.0 - saturate( ( ( ( ( ( cos( ( UNITY_PI * ( ( dotResult461_g77 + _Time.y ) * ScrollDir469_g77 ) ) ).x + 0.0 ) + _EmissiveScrollStrength ) - 0.5 ) * _EmissiveScrollContrast ) + 0.5 ) ) ) ) , tex2DNode466_g77); 420 | float4 lerpResult700_g77 = lerp( ( lerpResult468_g77 * _EmissiveScrollColor ) , lerpResult504_g77 , _EmissiveScrollGradient); 421 | float4 EmissiveScroll507_g77 = saturate( lerpResult700_g77 ); 422 | float4 lerpResult706_g77 = lerp( float4( 0,0,0,0 ) , EmissiveScroll507_g77 , _EmissiveScrollToggle); 423 | float2 uv_TexCoord574_g77 = i.uv_texcoord * _ParallaxTiling; 424 | float2 Offset573_g77 = ( ( _ParallaxHight - 1 ) * i.viewDir.xy * _ParallaxScale ) + uv_TexCoord574_g77; 425 | float2 uv_ParallaxMask = i.uv_texcoord * _ParallaxMask_ST.xy + _ParallaxMask_ST.zw; 426 | float4 lerpResult588_g77 = lerp( float4( 0,0,0,0 ) , tex2D( _ParallaxEmission, Offset573_g77 ) , tex2D( _ParallaxMask, uv_ParallaxMask )); 427 | float4 temp_output_452_0_g77 = ( ScanLineEmission534_g77 + ( tex2D( _EmissionMap, uv_EmissionMap ) * _EmissionColor ) + lerpResult706_g77 + lerpResult588_g77 ); 428 | o.Emission = temp_output_452_0_g77.rgb; 429 | } 430 | 431 | ENDCG 432 | CGPROGRAM 433 | #pragma surface surf StandardCustomLighting keepalpha fullforwardshadows exclude_path:deferred 434 | 435 | ENDCG 436 | Pass 437 | { 438 | Name "ShadowCaster" 439 | Tags{ "LightMode" = "ShadowCaster" } 440 | ZWrite On 441 | CGPROGRAM 442 | #pragma vertex vert 443 | #pragma fragment frag 444 | #pragma target 3.0 445 | #pragma multi_compile_shadowcaster 446 | #pragma multi_compile UNITY_PASS_SHADOWCASTER 447 | #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 448 | #include "HLSLSupport.cginc" 449 | #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN ) 450 | #define CAN_SKIP_VPOS 451 | #endif 452 | #include "UnityCG.cginc" 453 | #include "Lighting.cginc" 454 | #include "UnityPBSLighting.cginc" 455 | struct v2f 456 | { 457 | V2F_SHADOW_CASTER; 458 | float2 customPack1 : TEXCOORD1; 459 | float4 tSpace0 : TEXCOORD2; 460 | float4 tSpace1 : TEXCOORD3; 461 | float4 tSpace2 : TEXCOORD4; 462 | UNITY_VERTEX_INPUT_INSTANCE_ID 463 | UNITY_VERTEX_OUTPUT_STEREO 464 | }; 465 | v2f vert( appdata_full v ) 466 | { 467 | v2f o; 468 | UNITY_SETUP_INSTANCE_ID( v ); 469 | UNITY_INITIALIZE_OUTPUT( v2f, o ); 470 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o ); 471 | UNITY_TRANSFER_INSTANCE_ID( v, o ); 472 | Input customInputData; 473 | float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz; 474 | half3 worldNormal = UnityObjectToWorldNormal( v.normal ); 475 | half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz ); 476 | half tangentSign = v.tangent.w * unity_WorldTransformParams.w; 477 | half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign; 478 | o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x ); 479 | o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y ); 480 | o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z ); 481 | o.customPack1.xy = customInputData.uv_texcoord; 482 | o.customPack1.xy = v.texcoord; 483 | TRANSFER_SHADOW_CASTER_NORMALOFFSET( o ) 484 | return o; 485 | } 486 | half4 frag( v2f IN 487 | #if !defined( CAN_SKIP_VPOS ) 488 | , UNITY_VPOS_TYPE vpos : VPOS 489 | #endif 490 | ) : SV_Target 491 | { 492 | UNITY_SETUP_INSTANCE_ID( IN ); 493 | Input surfIN; 494 | UNITY_INITIALIZE_OUTPUT( Input, surfIN ); 495 | surfIN.uv_texcoord = IN.customPack1.xy; 496 | float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w ); 497 | half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) ); 498 | surfIN.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z; 499 | surfIN.worldPos = worldPos; 500 | surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z ); 501 | surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz; 502 | surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz; 503 | surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz; 504 | SurfaceOutputCustomLightingCustom o; 505 | UNITY_INITIALIZE_OUTPUT( SurfaceOutputCustomLightingCustom, o ) 506 | surf( surfIN, o ); 507 | #if defined( CAN_SKIP_VPOS ) 508 | float2 vpos = IN.pos; 509 | #endif 510 | SHADOW_CASTER_FRAGMENT( IN ) 511 | } 512 | ENDCG 513 | } 514 | } 515 | Fallback "Diffuse" 516 | CustomEditor "RSInspector" 517 | } 518 | /*ASEBEGIN 519 | Version=17000 520 | 1927;12;1906;1020;1076.419;442.5393;1;True;False 521 | Node;AmplifyShaderEditor.CommentaryNode;46;73.28168,-339.6262;Float;False;276.991;267.938;Properties;1;48;Miscellaneous;0.5514706,0.5514706,0.5514706,1;0;0 522 | Node;AmplifyShaderEditor.FunctionNode;395;-548.9369,93.55735;Float;False;Reflex Shader Function;0;;77;f5d8f584674c8984ab029c8868eb5bf3;0;0;6;COLOR;186;FLOAT;265;COLOR;0;COLOR;402;FLOAT;403;COLOR;404 523 | Node;AmplifyShaderEditor.RangedFloatNode;48;111.2817,-267.6262;Float;False;Property;_CullMode;Cull Mode;79;1;[Enum];Create;True;0;1;UnityEngine.Rendering.CullMode;True;0;2;2;0;0;0;1;FLOAT;0 524 | Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;150,-18;Float;False;True;2;Float;RSInspector;0;0;CustomLighting;Reflex Shader 2/No Outline/Opaque;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Opaque;0.5;True;True;0;False;Opaque;;Geometry;ForwardOnly;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;0;False;-1;False;0;True;218;255;True;219;255;True;220;7;True;221;0;True;222;0;True;223;3;True;224;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;True;0;5;False;-1;10;False;-1;0;5;False;-1;10;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;-1;-1;-1;-1;0;False;0;0;True;48;-1;0;False;-1;0;0;0;False;0.1;False;-1;0;False;-1;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0 525 | WireConnection;0;2;395;186 526 | WireConnection;0;13;395;0 527 | ASEEND*/ 528 | //CHKSM=61E2DEC0B0148BEC59F13F6D36AF20BC5490BAD9 -------------------------------------------------------------------------------- /no_outline/Opaque no_outline.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f69d22507846543fba38e64372dfe6a8 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /no_outline/Stencil Reader no_outline.shader: -------------------------------------------------------------------------------- 1 | // Made with Amplify Shader Editor 2 | // Available at the Unity Asset Store - http://u3d.as/y3X 3 | Shader "Reflex Shader 2/No Outline/Stencil/Reader" 4 | { 5 | Properties 6 | { 7 | _MainTex("Diffuse", 2D) = "white" {} 8 | _DiffuseColor("Diffuse Color", Color) = (1,1,1,1) 9 | _EmissionMap("Emission", 2D) = "black" {} 10 | _EmissionColor("Emission Color", Color) = (1,1,1,1) 11 | [Normal]_BumpMap("Normal Map", 2D) = "bump" {} 12 | _Matcap("Matcap", 2D) = "black" {} 13 | _MatcapColor("Matcap Color", Color) = (1,1,1,1) 14 | [Toggle(_)]_MatcapShadowToggle("Matcap Shadow Toggle", Float) = 0 15 | _MatcapShadow("Matcap Shadow", 2D) = "white" {} 16 | _MatcapShadowColor("Matcap Shadow Color", Color) = (0.7843137,0.7843137,0.7843137,1) 17 | [NoScaleOffset]_MatcapMask("Matcap Mask", 2D) = "white" {} 18 | [Toggle(_)]_MatcapCameraFix("Matcap Camera Fix", Float) = 0 19 | [Toggle(_)]_RimLightToggle("RimLight Toggle", Float) = 0 20 | _RimLightColor("RimLight Color", Color) = (1,1,1,1) 21 | _RimLightPower("RimLight Power", Range( 0 , 1)) = 0 22 | _RimLightContrast("RimLight Contrast", Range( 0 , 10)) = 3 23 | [NoScaleOffset]_RimLightMask("RimLight Mask", 2D) = "white" {} 24 | [Toggle]_RimLightNormal("RimLight Normal", Float) = 0 25 | [Toggle(_REFLECTIONTOGGLE_ON)] _ReflectionToggle("Reflection Toggle", Float) = 0 26 | _ReflectionColor("Reflection Color", Color) = (1,1,1,0) 27 | _ReflectionIntensity("Reflection Intensity", Range( 0 , 1)) = 1 28 | _Smoothness("Smoothness", Range( 0 , 1)) = 1 29 | [Toggle(_)]_FresnelToggle("Fresnel Toggle", Float) = 0 30 | _FresnelPower("Fresnel Power", Range( 0 , 10)) = 9 31 | _FresnelScale("Fresnel Scale", Range( 0 , 3)) = 3 32 | [Toggle(_)]_HalfLambertToggle("ShaodwToggle", Float) = 1 33 | [Toggle(_)]_ObjectShadow("Use System Shadow", Float) = 1 34 | _Shadow1Contrast("Shadow 1 Contrast", Range( 1 , 20)) = 10 35 | _Shadow1Color("Shadow 1 Color", Color) = (0.8627451,0.8627451,0.8627451,1) 36 | _Shadow1Place("Shadow 1 Place", Range( -1 , 1)) = 0 37 | [Toggle(_)]_Shadow2ContrastToggle("Shadow 2 Contrast Toggle", Float) = 0 38 | _Shadow2Contrast("Shadow 2 Contrast", Range( 1 , 20)) = 20 39 | _Shadow2Color("Shadow 2 Color", Color) = (0.7843137,0.7843137,0.7843137,1) 40 | _Shadow2Place("Shadow 2 Place", Range( -1 , 1)) = 0.1 41 | [NoScaleOffset]_ShadowMask("Shadow Mask", 2D) = "white" {} 42 | [Toggle(_)]_ShadowColorDarken("Shadow Color Darken", Float) = 1 43 | _AmbientMinimum("Ambient Minimum", Range( 0 , 1)) = 0 44 | [Toggle(_)]_PosterizeToggle("Posterize Toggle", Float) = 0 45 | _NormalIntensity("Normal Intensity", Range( 0 , 1)) = 0.5 46 | [Toggle(_)]_LightIntensityShadowPos("Light Intensity Shadow Pos", Float) = 0 47 | _VDirLight("V Dir Light", Vector) = (0,0.6,1,0) 48 | [Toggle(_)]_ColorShift("Color Shift", Float) = 0 49 | _H("H", Range( -1 , 1)) = 1 50 | _S("S", Range( -1 , 1)) = 0 51 | _V("V", Range( -1 , 1)) = 0 52 | [Toggle(_)]_ScanLineToggle("Scan Line Toggle", Float) = 0 53 | [NoScaleOffset]_ScanLineTex("Scan Line Mask", 2D) = "white" {} 54 | _ScanLineColor("Scan Line Color", Color) = (0,0.710345,1,0) 55 | _ScanLineColor2("Scan Line Color 2", Color) = (1,0,0,0) 56 | _ScanLineSpeed("Scan Line Speed", Float) = 1 57 | _ScanLineWidth("Scan Line Width", Range( 0 , 1)) = 1 58 | _ScanLinePosition("Scan Line Position", Float) = 0 59 | [Toggle(_)]_ScanLineColor2Toggle("Scan Line Color 2 Toggle", Float) = 0 60 | _Color2ChangeSpeed("Color 2 Change Speed", Float) = 1 61 | [NoScaleOffset]_EmissiveScrollTex("Emissive Scroll Tex", 2D) = "black" {} 62 | [NoScaleOffset]_EmissiveScrollMask("Emissive Scroll Mask", 2D) = "white" {} 63 | _EmissiveScrollColor("Emissive Scroll Color", Color) = (1,1,1,1) 64 | _EmissiveScrollSpeed("Emissive Scroll Speed", Vector) = (1,0,0,0) 65 | [Toggle(_)]_EmissiveScrollGradient("Emissive Scroll Gradient", Float) = 0 66 | _EmissiveScrollContrast("Emissive Scroll Contrast", Float) = 1 67 | _EmissiveScrollStrength("Emissive Scroll Strength", Float) = 0 68 | [Toggle(_)]_ForceEmissiveToggle("Force Emissive Toggle", Float) = 0 69 | _EmissiveScrollTiling("Emissive Scroll Tiling", Vector) = (1,1,0,0) 70 | [NoScaleOffset]_ParallaxEmission("Parallax Emission", 2D) = "black" {} 71 | _ParallaxTiling("Parallax Tiling", Vector) = (1,1,0,0) 72 | _ParallaxScale("Parallax Scale", Float) = 1 73 | [Toggle(_)]_ForceMatcap("Force Matcap", Float) = 0 74 | [Toggle(_)]_MatcapToggle("Matcap Toggle", Float) = 0 75 | [Toggle(_)]_EmissiveScrollToggle("Emissive Scroll Toggle", Float) = 0 76 | _ParallaxHight("Parallax Hight", Float) = 1 77 | _ParallaxMask("Parallax Mask", 2D) = "white" {} 78 | [Toggle(_)]_Unlit("Unlit", Float) = 0 79 | [Toggle(_)]_GrayscaleColor("Grayscale Color", Float) = 0 80 | _CullMode("Cull Mode", Float) = 2 81 | _Cutoff( "Mask Clip Value", Float ) = 0.5 82 | _StencilReference("Stencil Reference", Float) = 0 83 | [HideInInspector] _texcoord( "", 2D ) = "white" {} 84 | [HideInInspector] __dirty( "", Int ) = 1 85 | } 86 | 87 | SubShader 88 | { 89 | Tags{ "RenderType" = "TransparentCutout" "Queue" = "AlphaTest+1" "IsEmissive" = "true" } 90 | Cull Back 91 | Stencil 92 | { 93 | Ref [_StencilReference] 94 | Comp NotEqual 95 | Pass Keep 96 | } 97 | CGINCLUDE 98 | #include "UnityPBSLighting.cginc" 99 | #include "UnityShaderVariables.cginc" 100 | #include "UnityStandardUtils.cginc" 101 | #include "UnityCG.cginc" 102 | #include "Lighting.cginc" 103 | #pragma target 3.0 104 | #pragma shader_feature _REFLECTIONTOGGLE_ON 105 | #ifdef UNITY_PASS_SHADOWCASTER 106 | #undef INTERNAL_DATA 107 | #undef WorldReflectionVector 108 | #undef WorldNormalVector 109 | #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2; 110 | #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))) 111 | #define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)) 112 | #endif 113 | struct Input 114 | { 115 | float2 uv_texcoord; 116 | float3 worldPos; 117 | float3 viewDir; 118 | INTERNAL_DATA 119 | float3 worldNormal; 120 | }; 121 | 122 | struct SurfaceOutputCustomLightingCustom 123 | { 124 | half3 Albedo; 125 | half3 Normal; 126 | half3 Emission; 127 | half Metallic; 128 | half Smoothness; 129 | half Occlusion; 130 | half Alpha; 131 | Input SurfInput; 132 | UnityGIInput GIData; 133 | }; 134 | 135 | uniform float _CullMode; 136 | uniform float _StencilReference; 137 | uniform sampler2D _ScanLineTex; 138 | uniform float _ScanLinePosition; 139 | uniform float _ScanLineSpeed; 140 | uniform float _ScanLineWidth; 141 | uniform float4 _ScanLineColor; 142 | uniform float4 _ScanLineColor2; 143 | uniform float _Color2ChangeSpeed; 144 | uniform float _ScanLineColor2Toggle; 145 | uniform float _ScanLineToggle; 146 | uniform sampler2D _EmissionMap; 147 | uniform float4 _EmissionMap_ST; 148 | uniform float4 _EmissionColor; 149 | uniform sampler2D _EmissiveScrollTex; 150 | uniform float2 _EmissiveScrollTiling; 151 | uniform float2 _EmissiveScrollSpeed; 152 | uniform sampler2D _EmissiveScrollMask; 153 | uniform float4 _EmissiveScrollColor; 154 | uniform float _EmissiveScrollStrength; 155 | uniform float _EmissiveScrollContrast; 156 | uniform float _EmissiveScrollGradient; 157 | uniform float _EmissiveScrollToggle; 158 | uniform sampler2D _ParallaxEmission; 159 | uniform float2 _ParallaxTiling; 160 | uniform float _ParallaxHight; 161 | uniform float _ParallaxScale; 162 | uniform sampler2D _ParallaxMask; 163 | uniform float4 _ParallaxMask_ST; 164 | uniform sampler2D _MainTex; 165 | uniform float4 _MainTex_ST; 166 | uniform float4 _DiffuseColor; 167 | uniform float _RimLightNormal; 168 | uniform sampler2D _BumpMap; 169 | uniform float4 _BumpMap_ST; 170 | uniform float _RimLightPower; 171 | uniform float _RimLightContrast; 172 | uniform float4 _RimLightColor; 173 | uniform sampler2D _RimLightMask; 174 | uniform float _RimLightToggle; 175 | uniform sampler2D _Matcap; 176 | uniform float _MatcapCameraFix; 177 | uniform float4 _MatcapColor; 178 | uniform sampler2D _MatcapMask; 179 | uniform float _MatcapToggle; 180 | uniform float _GrayscaleColor; 181 | uniform float _H; 182 | uniform float _S; 183 | uniform float _V; 184 | uniform float _ColorShift; 185 | uniform float _ForceMatcap; 186 | uniform float _Smoothness; 187 | uniform float4 _ReflectionColor; 188 | uniform float _ReflectionIntensity; 189 | uniform float _FresnelScale; 190 | uniform float _FresnelPower; 191 | uniform float _FresnelToggle; 192 | uniform sampler2D _MatcapShadow; 193 | uniform float _MatcapShadowToggle; 194 | uniform float4 _MatcapShadowColor; 195 | uniform float _AmbientMinimum; 196 | uniform float _Unlit; 197 | uniform float4 _Shadow2Color; 198 | uniform float4 _Shadow1Color; 199 | uniform float _ShadowColorDarken; 200 | uniform float _Shadow1Place; 201 | uniform float _NormalIntensity; 202 | uniform float _ObjectShadow; 203 | uniform float _LightIntensityShadowPos; 204 | uniform float3 _VDirLight; 205 | uniform float _Shadow1Contrast; 206 | uniform float _PosterizeToggle; 207 | uniform float _Shadow2Place; 208 | uniform float _Shadow2Contrast; 209 | uniform float _Shadow2ContrastToggle; 210 | uniform sampler2D _ShadowMask; 211 | uniform float _HalfLambertToggle; 212 | uniform float _ForceEmissiveToggle; 213 | uniform float _Cutoff = 0.5; 214 | 215 | 216 | float3 HSVToRGB( float3 c ) 217 | { 218 | float4 K = float4( 1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0 ); 219 | float3 p = abs( frac( c.xxx + K.xyz ) * 6.0 - K.www ); 220 | return c.z * lerp( K.xxx, saturate( p - K.xxx ), c.y ); 221 | } 222 | 223 | 224 | float3 RGBToHSV(float3 c) 225 | { 226 | float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 227 | float4 p = lerp( float4( c.bg, K.wz ), float4( c.gb, K.xy ), step( c.b, c.g ) ); 228 | float4 q = lerp( float4( p.xyw, c.r ), float4( c.r, p.yzx ), step( p.x, c.r ) ); 229 | float d = q.x - min( q.w, q.y ); 230 | float e = 1.0e-10; 231 | return float3( abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); 232 | } 233 | 234 | float3 Function_ShadeSH9( ) 235 | { 236 | return ShadeSH9(half4(0,0,0,1)); 237 | } 238 | 239 | 240 | float3 BakedDirectionalLight746_g81( ) 241 | { 242 | return normalize(unity_SHAr.rgb *0.3+unity_SHAg.rgb*0.6+unity_SHAb.rgb*0.1); 243 | } 244 | 245 | 246 | inline half4 LightingStandardCustomLighting( inout SurfaceOutputCustomLightingCustom s, half3 viewDir, UnityGI gi ) 247 | { 248 | UnityGIInput data = s.GIData; 249 | Input i = s.SurfInput; 250 | half4 c = 0; 251 | #ifdef UNITY_PASS_FORWARDBASE 252 | float ase_lightAtten = data.atten; 253 | if( _LightColor0.a == 0) 254 | ase_lightAtten = 0; 255 | #else 256 | float3 ase_lightAttenRGB = gi.light.color / ( ( _LightColor0.rgb ) + 0.000001 ); 257 | float ase_lightAtten = max( max( ase_lightAttenRGB.r, ase_lightAttenRGB.g ), ase_lightAttenRGB.b ); 258 | #endif 259 | #if defined(HANDLE_SHADOWS_BLENDING_IN_GI) 260 | half bakedAtten = UnitySampleBakedOcclusion(data.lightmapUV.xy, data.worldPos); 261 | float zDist = dot(_WorldSpaceCameraPos - data.worldPos, UNITY_MATRIX_V[2].xyz); 262 | float fadeDist = UnityComputeShadowFadeDistance(data.worldPos, zDist); 263 | ase_lightAtten = UnityMixRealtimeAndBakedShadows(data.atten, bakedAtten, UnityComputeShadowFade(fadeDist)); 264 | #endif 265 | float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw; 266 | float4 temp_output_84_0_g81 = ( tex2D( _MainTex, uv_MainTex ) * _DiffuseColor ); 267 | float2 uv_ScanLineTex526_g81 = i.uv_texcoord; 268 | float3 ase_worldPos = i.worldPos; 269 | float3 worldToObj529_g81 = mul( unity_WorldToObject, float4( ase_worldPos, 1 ) ).xyz; 270 | float4 lerpResult513_g81 = lerp( float4( 0,0,0,0 ) , tex2D( _ScanLineTex, uv_ScanLineTex526_g81 ) , ( ( worldToObj529_g81.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) > ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 0.0 : ( worldToObj529_g81.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) <= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) && ( worldToObj529_g81.y + _ScanLinePosition ) + (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) >= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 1.0 : 0.0 ) ); 271 | float mulTime583_g81 = _Time.y * _Color2ChangeSpeed; 272 | float4 lerpResult578_g81 = lerp( _ScanLineColor , _ScanLineColor2 , sin( mulTime583_g81 )); 273 | float4 lerpResult704_g81 = lerp( _ScanLineColor , lerpResult578_g81 , _ScanLineColor2Toggle); 274 | float4 lerpResult702_g81 = lerp( float4( 0,0,0,0 ) , ( lerpResult513_g81 * lerpResult704_g81 ) , _ScanLineToggle); 275 | float4 ScanLineEmission534_g81 = lerpResult702_g81; 276 | float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw; 277 | float2 uv_TexCoord485_g81 = i.uv_texcoord * _EmissiveScrollTiling + ( _Time.x * _EmissiveScrollSpeed ); 278 | float2 uv_EmissiveScrollMask466_g81 = i.uv_texcoord; 279 | float4 tex2DNode466_g81 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g81 ); 280 | float4 lerpResult468_g81 = lerp( float4( 0,0,0,0 ) , tex2D( _EmissiveScrollTex, uv_TexCoord485_g81 ) , tex2DNode466_g81); 281 | float2 ScrollDir469_g81 = _EmissiveScrollSpeed; 282 | float dotResult461_g81 = dot( i.uv_texcoord , ScrollDir469_g81 ); 283 | float4 lerpResult504_g81 = lerp( float4( 0,0,0,0 ) , ( _EmissiveScrollColor * ( 1.0 - saturate( ( ( ( ( ( cos( ( UNITY_PI * ( ( dotResult461_g81 + _Time.y ) * ScrollDir469_g81 ) ) ).x + 0.0 ) + _EmissiveScrollStrength ) - 0.5 ) * _EmissiveScrollContrast ) + 0.5 ) ) ) ) , tex2DNode466_g81); 284 | float4 lerpResult700_g81 = lerp( ( lerpResult468_g81 * _EmissiveScrollColor ) , lerpResult504_g81 , _EmissiveScrollGradient); 285 | float4 EmissiveScroll507_g81 = saturate( lerpResult700_g81 ); 286 | float4 lerpResult706_g81 = lerp( float4( 0,0,0,0 ) , EmissiveScroll507_g81 , _EmissiveScrollToggle); 287 | float2 uv_TexCoord574_g81 = i.uv_texcoord * _ParallaxTiling; 288 | float2 Offset573_g81 = ( ( _ParallaxHight - 1 ) * i.viewDir.xy * _ParallaxScale ) + uv_TexCoord574_g81; 289 | float2 uv_ParallaxMask = i.uv_texcoord * _ParallaxMask_ST.xy + _ParallaxMask_ST.zw; 290 | float4 lerpResult588_g81 = lerp( float4( 0,0,0,0 ) , tex2D( _ParallaxEmission, Offset573_g81 ) , tex2D( _ParallaxMask, uv_ParallaxMask )); 291 | float4 temp_output_452_0_g81 = ( ScanLineEmission534_g81 + ( tex2D( _EmissionMap, uv_EmissionMap ) * _EmissionColor ) + lerpResult706_g81 + lerpResult588_g81 ); 292 | float4 Emission679_g81 = temp_output_452_0_g81; 293 | float Opacity674_g81 = saturate( max( temp_output_84_0_g81.a , Emission679_g81.a ) ); 294 | float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw; 295 | float3 tex2DNode207_g81 = UnpackNormal( tex2D( _BumpMap, uv_BumpMap ) ); 296 | float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) ); 297 | float dotResult214_g81 = dot( (WorldNormalVector( i , lerp(float3( 0,0,1 ),tex2DNode207_g81,_RimLightNormal) )) , ase_worldViewDir ); 298 | float2 uv_RimLightMask225_g81 = i.uv_texcoord; 299 | float4 lerpResult230_g81 = lerp( ( ( ( ( ( abs( ( 1.0 - dotResult214_g81 ) ) * _RimLightPower ) - 0.5 ) * _RimLightContrast ) + 0.5 ) * _RimLightColor ) , float4( 0,0,0,0 ) , ( 1.0 - tex2D( _RimLightMask, uv_RimLightMask225_g81 ) )); 300 | float4 lerpResult708_g81 = lerp( float4( 0,0,0,0 ) , lerpResult230_g81 , _RimLightToggle); 301 | float4 RimLight233_g81 = saturate( lerpResult708_g81 ); 302 | float3 NormalMap208_g81 = tex2DNode207_g81; 303 | float3 temp_output_240_0_g81 = mul( UNITY_MATRIX_V, float4( (WorldNormalVector( i , NormalMap208_g81 )) , 0.0 ) ).xyz; 304 | float3 worldToViewDir556_g81 = mul( UNITY_MATRIX_V, float4( ase_worldViewDir, 0 ) ).xyz; 305 | float2 lerpResult737_g81 = lerp( (temp_output_240_0_g81).xy , (BlendNormals( ( worldToViewDir556_g81 * float3(-1,-1,1) ) , temp_output_240_0_g81 )).xy , _MatcapCameraFix); 306 | float2 temp_output_244_0_g81 = ( 0.5 + ( 0.5 * lerpResult737_g81 ) ); 307 | float4 blendOpSrc251_g81 = tex2D( _Matcap, temp_output_244_0_g81 ); 308 | float4 blendOpDest251_g81 = _MatcapColor; 309 | float2 uv_MatcapMask246_g81 = i.uv_texcoord; 310 | float4 tex2DNode246_g81 = tex2D( _MatcapMask, uv_MatcapMask246_g81 ); 311 | float4 lerpResult254_g81 = lerp( float4( 0,0,0,0 ) , ( saturate( ( blendOpSrc251_g81 * blendOpDest251_g81 ) )) , tex2DNode246_g81); 312 | float4 lerpResult709_g81 = lerp( float4( 0,0,0,0 ) , lerpResult254_g81 , _MatcapToggle); 313 | float4 DiffuseBase606_g81 = temp_output_84_0_g81; 314 | float grayscale611_g81 = dot(DiffuseBase606_g81.rgb, float3(0.299,0.587,0.114)); 315 | float4 temp_cast_6 = (grayscale611_g81).xxxx; 316 | float4 lerpResult745_g81 = lerp( DiffuseBase606_g81 , temp_cast_6 , _GrayscaleColor); 317 | float3 hsvTorgb595_g81 = RGBToHSV( lerpResult745_g81.rgb ); 318 | float3 hsvTorgb603_g81 = HSVToRGB( float3(( hsvTorgb595_g81.x + _H ),( hsvTorgb595_g81.y + _S ),( hsvTorgb595_g81.z + _V )) ); 319 | float4 lerpResult742_g81 = lerp( DiffuseBase606_g81 , float4( hsvTorgb603_g81 , 0.0 ) , _ColorShift); 320 | float4 Diffuse105_g81 = lerpResult742_g81; 321 | float4 lerpResult252_g81 = lerp( Diffuse105_g81 , float4( 0,0,0,0 ) , tex2DNode246_g81); 322 | float4 lerpResult713_g81 = lerp( Diffuse105_g81 , lerpResult252_g81 , _ForceMatcap); 323 | float4 Matcap260_g81 = ( lerpResult709_g81 + lerpResult713_g81 ); 324 | float3 indirectNormal281_g81 = WorldNormalVector( i , NormalMap208_g81 ); 325 | Unity_GlossyEnvironmentData g281_g81 = UnityGlossyEnvironmentSetup( _Smoothness, data.worldViewDir, indirectNormal281_g81, float3(0,0,0)); 326 | float3 indirectSpecular281_g81 = UnityGI_IndirectSpecular( data, 1.0, indirectNormal281_g81, g281_g81 ); 327 | float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) ); 328 | float3 ase_worldTangent = WorldNormalVector( i, float3( 1, 0, 0 ) ); 329 | float3 ase_worldBitangent = WorldNormalVector( i, float3( 0, 1, 0 ) ); 330 | float3x3 ase_tangentToWorldFast = float3x3(ase_worldTangent.x,ase_worldBitangent.x,ase_worldNormal.x,ase_worldTangent.y,ase_worldBitangent.y,ase_worldNormal.y,ase_worldTangent.z,ase_worldBitangent.z,ase_worldNormal.z); 331 | float fresnelNdotV275_g81 = dot( mul(ase_tangentToWorldFast,NormalMap208_g81), ase_worldViewDir ); 332 | float fresnelNode275_g81 = ( 0.0 + _FresnelScale * pow( 1.0 - fresnelNdotV275_g81, _FresnelPower ) ); 333 | float lerpResult699_g81 = lerp( 1.0 , fresnelNode275_g81 , _FresnelToggle); 334 | float4 lerpResult278_g81 = lerp( float4( 0,0,0,0 ) , ( ( float4( indirectSpecular281_g81 , 0.0 ) * _ReflectionColor ) * _ReflectionIntensity ) , saturate( lerpResult699_g81 )); 335 | #ifdef _REFLECTIONTOGGLE_ON 336 | float4 staticSwitch549_g81 = lerpResult278_g81; 337 | #else 338 | float4 staticSwitch549_g81 = float4( 0,0,0,0 ); 339 | #endif 340 | float4 Reflection280_g81 = saturate( staticSwitch549_g81 ); 341 | float4 lerpResult740_g81 = lerp( float4( 1,1,1,1 ) , tex2D( _MatcapShadow, temp_output_244_0_g81 ) , _MatcapShadowToggle); 342 | float4 blendOpSrc259_g81 = lerpResult740_g81; 343 | float4 blendOpDest259_g81 = _MatcapShadowColor; 344 | float4 MatcapShadow261_g81 = ( saturate( ( blendOpSrc259_g81 + blendOpDest259_g81 ) )); 345 | float3 localFunction_ShadeSH9411_g81 = Function_ShadeSH9(); 346 | #if defined(LIGHTMAP_ON) && ( UNITY_VERSION < 560 || ( defined(LIGHTMAP_SHADOW_MIXING) && !defined(SHADOWS_SHADOWMASK) && defined(SHADOWS_SCREEN) ) )//aselc 347 | float4 ase_lightColor = 0; 348 | #else //aselc 349 | float4 ase_lightColor = _LightColor0; 350 | #endif //aselc 351 | float4 ifLocalVar196_g81 = 0; 352 | if( _WorldSpaceLightPos0.w <= 0.0 ) 353 | ifLocalVar196_g81 = ase_lightColor; 354 | else 355 | ifLocalVar196_g81 = ( ase_lightAtten * ase_lightColor ); 356 | float4 temp_cast_11 = (_AmbientMinimum).xxxx; 357 | float4 clampResult650_g81 = clamp( ( float4( localFunction_ShadeSH9411_g81 , 0.0 ) + ifLocalVar196_g81 ) , temp_cast_11 , float4( 1,1,1,1 ) ); 358 | float4 temp_cast_12 = (1.0).xxxx; 359 | float4 lerpResult723_g81 = lerp( saturate( clampResult650_g81 ) , temp_cast_12 , _Unlit); 360 | float4 Lighting201_g81 = lerpResult723_g81; 361 | float4 temp_cast_13 = (1.0).xxxx; 362 | float4 blendOpSrc365_g81 = _Shadow1Color; 363 | float4 blendOpDest365_g81 = _Shadow2Color; 364 | float4 lerpResult733_g81 = lerp( _Shadow2Color , ( saturate( min( blendOpSrc365_g81 , blendOpDest365_g81 ) )) , _ShadowColorDarken); 365 | float3 lerpResult333_g81 = lerp( float3( 0,0,1 ) , NormalMap208_g81 , _NormalIntensity); 366 | float3 newWorldNormal334_g81 = (WorldNormalVector( i , lerpResult333_g81 )); 367 | #if defined(LIGHTMAP_ON) && UNITY_VERSION < 560 //aseld 368 | float3 ase_worldlightDir = 0; 369 | #else //aseld 370 | float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) ); 371 | #endif //aseld 372 | float dotResult5_g82 = dot( newWorldNormal334_g81 , ase_worldlightDir ); 373 | float temp_output_335_0_g81 = (dotResult5_g82*0.5 + 0.5); 374 | float lerpResult726_g81 = lerp( temp_output_335_0_g81 , saturate( ( temp_output_335_0_g81 * ase_lightAtten ) ) , _ObjectShadow); 375 | float grayscale544_g81 = (ase_lightColor.rgb.r + ase_lightColor.rgb.g + ase_lightColor.rgb.b) / 3; 376 | float3 localFunction_ShadeSH9567_g81 = Function_ShadeSH9(); 377 | float grayscale568_g81 = (localFunction_ShadeSH9567_g81.r + localFunction_ShadeSH9567_g81.g + localFunction_ShadeSH9567_g81.b) / 3; 378 | float blendOpSrc566_g81 = grayscale544_g81; 379 | float blendOpDest566_g81 = grayscale568_g81; 380 | float lerpResult729_g81 = lerp( lerpResult726_g81 , ( ( saturate( max( blendOpSrc566_g81, blendOpDest566_g81 ) )) * lerpResult726_g81 ) , _LightIntensityShadowPos); 381 | float3 localBakedDirectionalLight746_g81 = BakedDirectionalLight746_g81(); 382 | float dotResult441_g81 = dot( localBakedDirectionalLight746_g81 , newWorldNormal334_g81 ); 383 | float temp_output_538_0_g81 = ( ( dotResult441_g81 * 0.5 ) + 0.5 ); 384 | float ifLocalVar431_g81 = 0; 385 | if( ase_lightColor.a <= 0.0 ) 386 | ifLocalVar431_g81 = temp_output_538_0_g81; 387 | else 388 | ifLocalVar431_g81 = lerpResult729_g81; 389 | float3 VDirLight648_g81 = _VDirLight; 390 | float4 transform617_g81 = mul(unity_ObjectToWorld,float4( VDirLight648_g81 , 0.0 )); 391 | float3 lerpResult624_g81 = lerp( float3( 0,0,1 ) , NormalMap208_g81 , _NormalIntensity); 392 | float dotResult613_g81 = dot( transform617_g81 , float4( (WorldNormalVector( i , lerpResult624_g81 )) , 0.0 ) ); 393 | float FixedShadow627_g81 = ( ( dotResult613_g81 * 0.5 ) + 0.5 ); 394 | float lerpResult724_g81 = lerp( ifLocalVar431_g81 , FixedShadow627_g81 , _Unlit); 395 | float temp_output_351_0_g81 = ( ( ( ( _Shadow1Place + lerpResult724_g81 ) - 0.5 ) * _Shadow1Contrast ) + 0.5 ); 396 | float4 temp_cast_17 = (temp_output_351_0_g81).xxxx; 397 | float4 temp_cast_19 = (temp_output_351_0_g81).xxxx; 398 | float div354_g81=256.0/float((int)255.0); 399 | float4 posterize354_g81 = ( floor( temp_cast_19 * div354_g81 ) / div354_g81 ); 400 | float4 lerpResult720_g81 = lerp( temp_cast_17 , posterize354_g81 , _PosterizeToggle); 401 | float4 temp_cast_20 = (0.0).xxxx; 402 | float4 temp_cast_21 = (1.0).xxxx; 403 | float4 clampResult364_g81 = clamp( lerpResult720_g81 , temp_cast_20 , temp_cast_21 ); 404 | float4 lerpResult366_g81 = lerp( _Shadow1Color , float4( 1,1,1,0 ) , clampResult364_g81); 405 | float lerpResult732_g81 = lerp( _Shadow1Contrast , _Shadow2Contrast , _Shadow2ContrastToggle); 406 | float temp_output_353_0_g81 = ( ( ( ( _Shadow2Place + lerpResult724_g81 ) - 0.5 ) * lerpResult732_g81 ) + 0.5 ); 407 | float4 temp_cast_22 = (temp_output_353_0_g81).xxxx; 408 | float4 temp_cast_24 = (temp_output_353_0_g81).xxxx; 409 | float div356_g81=256.0/float((int)255.0); 410 | float4 posterize356_g81 = ( floor( temp_cast_24 * div356_g81 ) / div356_g81 ); 411 | float4 lerpResult721_g81 = lerp( temp_cast_22 , posterize356_g81 , _PosterizeToggle); 412 | float4 temp_cast_25 = (0.0).xxxx; 413 | float4 temp_cast_26 = (1.0).xxxx; 414 | float4 clampResult363_g81 = clamp( lerpResult721_g81 , temp_cast_25 , temp_cast_26 ); 415 | float4 lerpResult368_g81 = lerp( lerpResult733_g81 , lerpResult366_g81 , clampResult363_g81); 416 | float2 uv_ShadowMask369_g81 = i.uv_texcoord; 417 | float4 lerpResult372_g81 = lerp( float4( 1,1,1,1 ) , lerpResult368_g81 , tex2D( _ShadowMask, uv_ShadowMask369_g81 )); 418 | float4 lerpResult735_g81 = lerp( temp_cast_13 , lerpResult372_g81 , _HalfLambertToggle); 419 | float4 Shadow375_g81 = lerpResult735_g81; 420 | float4 EmissiveScrollMask508_g81 = tex2DNode466_g81; 421 | float4 lerpResult715_g81 = lerp( float4( 0,0,0,0 ) , EmissiveScrollMask508_g81 , _ForceEmissiveToggle); 422 | float4 lerpResult451_g81 = lerp( saturate( ( ( RimLight233_g81 + Matcap260_g81 + Reflection280_g81 ) * MatcapShadow261_g81 * Lighting201_g81 * Shadow375_g81 ) ) , float4( 0,0,0,0 ) , lerpResult715_g81); 423 | c.rgb = lerpResult451_g81.rgb; 424 | c.a = 1; 425 | clip( Opacity674_g81 - _Cutoff ); 426 | return c; 427 | } 428 | 429 | inline void LightingStandardCustomLighting_GI( inout SurfaceOutputCustomLightingCustom s, UnityGIInput data, inout UnityGI gi ) 430 | { 431 | s.GIData = data; 432 | } 433 | 434 | void surf( Input i , inout SurfaceOutputCustomLightingCustom o ) 435 | { 436 | o.SurfInput = i; 437 | o.Normal = float3(0,0,1); 438 | float2 uv_ScanLineTex526_g81 = i.uv_texcoord; 439 | float3 ase_worldPos = i.worldPos; 440 | float3 worldToObj529_g81 = mul( unity_WorldToObject, float4( ase_worldPos, 1 ) ).xyz; 441 | float4 lerpResult513_g81 = lerp( float4( 0,0,0,0 ) , tex2D( _ScanLineTex, uv_ScanLineTex526_g81 ) , ( ( worldToObj529_g81.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) > ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 0.0 : ( worldToObj529_g81.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) <= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) && ( worldToObj529_g81.y + _ScanLinePosition ) + (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) >= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 1.0 : 0.0 ) ); 442 | float mulTime583_g81 = _Time.y * _Color2ChangeSpeed; 443 | float4 lerpResult578_g81 = lerp( _ScanLineColor , _ScanLineColor2 , sin( mulTime583_g81 )); 444 | float4 lerpResult704_g81 = lerp( _ScanLineColor , lerpResult578_g81 , _ScanLineColor2Toggle); 445 | float4 lerpResult702_g81 = lerp( float4( 0,0,0,0 ) , ( lerpResult513_g81 * lerpResult704_g81 ) , _ScanLineToggle); 446 | float4 ScanLineEmission534_g81 = lerpResult702_g81; 447 | float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw; 448 | float2 uv_TexCoord485_g81 = i.uv_texcoord * _EmissiveScrollTiling + ( _Time.x * _EmissiveScrollSpeed ); 449 | float2 uv_EmissiveScrollMask466_g81 = i.uv_texcoord; 450 | float4 tex2DNode466_g81 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g81 ); 451 | float4 lerpResult468_g81 = lerp( float4( 0,0,0,0 ) , tex2D( _EmissiveScrollTex, uv_TexCoord485_g81 ) , tex2DNode466_g81); 452 | float2 ScrollDir469_g81 = _EmissiveScrollSpeed; 453 | float dotResult461_g81 = dot( i.uv_texcoord , ScrollDir469_g81 ); 454 | float4 lerpResult504_g81 = lerp( float4( 0,0,0,0 ) , ( _EmissiveScrollColor * ( 1.0 - saturate( ( ( ( ( ( cos( ( UNITY_PI * ( ( dotResult461_g81 + _Time.y ) * ScrollDir469_g81 ) ) ).x + 0.0 ) + _EmissiveScrollStrength ) - 0.5 ) * _EmissiveScrollContrast ) + 0.5 ) ) ) ) , tex2DNode466_g81); 455 | float4 lerpResult700_g81 = lerp( ( lerpResult468_g81 * _EmissiveScrollColor ) , lerpResult504_g81 , _EmissiveScrollGradient); 456 | float4 EmissiveScroll507_g81 = saturate( lerpResult700_g81 ); 457 | float4 lerpResult706_g81 = lerp( float4( 0,0,0,0 ) , EmissiveScroll507_g81 , _EmissiveScrollToggle); 458 | float2 uv_TexCoord574_g81 = i.uv_texcoord * _ParallaxTiling; 459 | float2 Offset573_g81 = ( ( _ParallaxHight - 1 ) * i.viewDir.xy * _ParallaxScale ) + uv_TexCoord574_g81; 460 | float2 uv_ParallaxMask = i.uv_texcoord * _ParallaxMask_ST.xy + _ParallaxMask_ST.zw; 461 | float4 lerpResult588_g81 = lerp( float4( 0,0,0,0 ) , tex2D( _ParallaxEmission, Offset573_g81 ) , tex2D( _ParallaxMask, uv_ParallaxMask )); 462 | float4 temp_output_452_0_g81 = ( ScanLineEmission534_g81 + ( tex2D( _EmissionMap, uv_EmissionMap ) * _EmissionColor ) + lerpResult706_g81 + lerpResult588_g81 ); 463 | o.Emission = temp_output_452_0_g81.rgb; 464 | } 465 | 466 | ENDCG 467 | CGPROGRAM 468 | #pragma surface surf StandardCustomLighting keepalpha fullforwardshadows exclude_path:deferred 469 | 470 | ENDCG 471 | Pass 472 | { 473 | Name "ShadowCaster" 474 | Tags{ "LightMode" = "ShadowCaster" } 475 | ZWrite On 476 | Stencil 477 | { 478 | Ref [_StencilReference] 479 | Comp NotEqual 480 | Pass Keep 481 | } 482 | CGPROGRAM 483 | #pragma vertex vert 484 | #pragma fragment frag 485 | #pragma target 3.0 486 | #pragma multi_compile_shadowcaster 487 | #pragma multi_compile UNITY_PASS_SHADOWCASTER 488 | #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 489 | #include "HLSLSupport.cginc" 490 | #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN ) 491 | #define CAN_SKIP_VPOS 492 | #endif 493 | #include "UnityCG.cginc" 494 | #include "Lighting.cginc" 495 | #include "UnityPBSLighting.cginc" 496 | struct v2f 497 | { 498 | V2F_SHADOW_CASTER; 499 | float2 customPack1 : TEXCOORD1; 500 | float4 tSpace0 : TEXCOORD2; 501 | float4 tSpace1 : TEXCOORD3; 502 | float4 tSpace2 : TEXCOORD4; 503 | UNITY_VERTEX_INPUT_INSTANCE_ID 504 | UNITY_VERTEX_OUTPUT_STEREO 505 | }; 506 | v2f vert( appdata_full v ) 507 | { 508 | v2f o; 509 | UNITY_SETUP_INSTANCE_ID( v ); 510 | UNITY_INITIALIZE_OUTPUT( v2f, o ); 511 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o ); 512 | UNITY_TRANSFER_INSTANCE_ID( v, o ); 513 | Input customInputData; 514 | float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz; 515 | half3 worldNormal = UnityObjectToWorldNormal( v.normal ); 516 | half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz ); 517 | half tangentSign = v.tangent.w * unity_WorldTransformParams.w; 518 | half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign; 519 | o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x ); 520 | o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y ); 521 | o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z ); 522 | o.customPack1.xy = customInputData.uv_texcoord; 523 | o.customPack1.xy = v.texcoord; 524 | TRANSFER_SHADOW_CASTER_NORMALOFFSET( o ) 525 | return o; 526 | } 527 | half4 frag( v2f IN 528 | #if !defined( CAN_SKIP_VPOS ) 529 | , UNITY_VPOS_TYPE vpos : VPOS 530 | #endif 531 | ) : SV_Target 532 | { 533 | UNITY_SETUP_INSTANCE_ID( IN ); 534 | Input surfIN; 535 | UNITY_INITIALIZE_OUTPUT( Input, surfIN ); 536 | surfIN.uv_texcoord = IN.customPack1.xy; 537 | float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w ); 538 | half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) ); 539 | surfIN.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z; 540 | surfIN.worldPos = worldPos; 541 | surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z ); 542 | surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz; 543 | surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz; 544 | surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz; 545 | SurfaceOutputCustomLightingCustom o; 546 | UNITY_INITIALIZE_OUTPUT( SurfaceOutputCustomLightingCustom, o ) 547 | surf( surfIN, o ); 548 | UnityGI gi; 549 | UNITY_INITIALIZE_OUTPUT( UnityGI, gi ); 550 | o.Alpha = LightingStandardCustomLighting( o, worldViewDir, gi ).a; 551 | #if defined( CAN_SKIP_VPOS ) 552 | float2 vpos = IN.pos; 553 | #endif 554 | SHADOW_CASTER_FRAGMENT( IN ) 555 | } 556 | ENDCG 557 | } 558 | } 559 | Fallback "Diffuse" 560 | CustomEditor "RSInspector" 561 | } 562 | /*ASEBEGIN 563 | Version=17000 564 | 1927;12;1906;1020;567.7275;458.8727;1;True;False 565 | Node;AmplifyShaderEditor.CommentaryNode;225;415.1616,-347.5059;Float;False;727.0001;345;Stencil;7;220;219;218;224;221;222;223;;1,1,1,1;0;0 566 | Node;AmplifyShaderEditor.CommentaryNode;46;69.28168,-267.6262;Float;False;266.991;191.938;Properties;1;48;Miscellaneous;0.5514706,0.5514706,0.5514706,1;0;0 567 | Node;AmplifyShaderEditor.FunctionNode;236;-617.6109,124.1579;Float;False;Reflex Shader Function;0;;81;f5d8f584674c8984ab029c8868eb5bf3;0;0;6;COLOR;186;FLOAT;265;COLOR;0;COLOR;402;FLOAT;403;COLOR;404 568 | Node;AmplifyShaderEditor.RangedFloatNode;48;107.2817,-195.6262;Float;False;Property;_CullMode;Cull Mode;79;0;Create;True;0;0;True;0;2;0;0;0;0;1;FLOAT;0 569 | Node;AmplifyShaderEditor.RangedFloatNode;221;673.1616,-297.5059;Float;False;Property;_StencilComparison;Stencil Comparison;84;0;Create;True;0;0;False;0;255;0;0;0;0;1;FLOAT;0 570 | Node;AmplifyShaderEditor.RangedFloatNode;219;469.1616,-203.5059;Float;False;Property;_StencilReadMask;Stencil Read Mask;82;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 571 | Node;AmplifyShaderEditor.RangedFloatNode;220;469.1616,-119.5059;Float;False;Property;_StencilWriteMask;Stencil Write Mask;83;0;Create;True;0;0;False;0;255;0;0;0;0;1;FLOAT;0 572 | Node;AmplifyShaderEditor.RangedFloatNode;223;685.1616,-117.5059;Float;False;Property;_StencilFailFront;Stencil Fail Front;86;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 573 | Node;AmplifyShaderEditor.RangedFloatNode;224;895.1616,-295.5059;Float;False;Property;_StencilZFailFront;Stencil Z Fail Front;87;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 574 | Node;AmplifyShaderEditor.RangedFloatNode;222;681.1616,-209.5059;Float;False;Property;_StencilPassFront;Stencil Pass Front;85;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 575 | Node;AmplifyShaderEditor.RangedFloatNode;218;465.1616,-293.5059;Float;False;Property;_StencilReference;Stencil Reference;81;0;Create;True;0;0;True;0;0;0;0;0;0;1;FLOAT;0 576 | Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;150,-18;Float;False;True;2;Float;RSInspector;0;0;CustomLighting;Reflex Shader 2/No Outline/Stencil/Reader;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Masked;0.5;True;True;1;False;TransparentCutout;;AlphaTest;ForwardOnly;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;0;False;-1;True;2;True;218;255;False;219;255;False;220;6;False;221;1;False;222;0;False;223;0;False;224;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;True;0;5;False;-1;10;False;-1;0;1;False;-1;1;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;80;-1;-1;-1;0;False;0;0;False;48;-1;0;False;-1;0;0;0;False;0.1;False;-1;0;False;-1;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0 577 | WireConnection;0;2;236;186 578 | WireConnection;0;10;236;265 579 | WireConnection;0;13;236;0 580 | ASEEND*/ 581 | //CHKSM=FBE46C43619C64CFDCCE2E08FAD111AE5256E090 -------------------------------------------------------------------------------- /no_outline/Stencil Reader no_outline.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 240e6a39b9c4c4df083e49e5f139cff0 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /no_outline/Stencil Writer no_outline.shader: -------------------------------------------------------------------------------- 1 | // Made with Amplify Shader Editor 2 | // Available at the Unity Asset Store - http://u3d.as/y3X 3 | Shader "Reflex Shader 2/No Outline/Stencil/Writer" 4 | { 5 | Properties 6 | { 7 | _MainTex("Diffuse", 2D) = "white" {} 8 | _DiffuseColor("Diffuse Color", Color) = (1,1,1,1) 9 | _EmissionMap("Emission", 2D) = "black" {} 10 | _EmissionColor("Emission Color", Color) = (1,1,1,1) 11 | [Normal]_BumpMap("Normal Map", 2D) = "bump" {} 12 | _Matcap("Matcap", 2D) = "black" {} 13 | _MatcapColor("Matcap Color", Color) = (1,1,1,1) 14 | [Toggle(_)]_MatcapShadowToggle("Matcap Shadow Toggle", Float) = 0 15 | _MatcapShadow("Matcap Shadow", 2D) = "white" {} 16 | _MatcapShadowColor("Matcap Shadow Color", Color) = (0.7843137,0.7843137,0.7843137,1) 17 | [NoScaleOffset]_MatcapMask("Matcap Mask", 2D) = "white" {} 18 | [Toggle(_)]_MatcapCameraFix("Matcap Camera Fix", Float) = 0 19 | [Toggle(_)]_RimLightToggle("RimLight Toggle", Float) = 0 20 | _RimLightColor("RimLight Color", Color) = (1,1,1,1) 21 | _RimLightPower("RimLight Power", Range( 0 , 1)) = 0 22 | _RimLightContrast("RimLight Contrast", Range( 0 , 10)) = 3 23 | [NoScaleOffset]_RimLightMask("RimLight Mask", 2D) = "white" {} 24 | [Toggle]_RimLightNormal("RimLight Normal", Float) = 0 25 | [Toggle(_REFLECTIONTOGGLE_ON)] _ReflectionToggle("Reflection Toggle", Float) = 0 26 | _ReflectionColor("Reflection Color", Color) = (1,1,1,0) 27 | _ReflectionIntensity("Reflection Intensity", Range( 0 , 1)) = 1 28 | _Smoothness("Smoothness", Range( 0 , 1)) = 1 29 | [Toggle(_)]_FresnelToggle("Fresnel Toggle", Float) = 0 30 | _FresnelPower("Fresnel Power", Range( 0 , 10)) = 9 31 | _FresnelScale("Fresnel Scale", Range( 0 , 3)) = 3 32 | [Toggle(_)]_HalfLambertToggle("ShaodwToggle", Float) = 1 33 | [Toggle(_)]_ObjectShadow("Use System Shadow", Float) = 1 34 | _Shadow1Contrast("Shadow 1 Contrast", Range( 1 , 20)) = 10 35 | _Shadow1Color("Shadow 1 Color", Color) = (0.8627451,0.8627451,0.8627451,1) 36 | _Shadow1Place("Shadow 1 Place", Range( -1 , 1)) = 0 37 | [Toggle(_)]_Shadow2ContrastToggle("Shadow 2 Contrast Toggle", Float) = 0 38 | _Shadow2Contrast("Shadow 2 Contrast", Range( 1 , 20)) = 20 39 | _Shadow2Color("Shadow 2 Color", Color) = (0.7843137,0.7843137,0.7843137,1) 40 | _Shadow2Place("Shadow 2 Place", Range( -1 , 1)) = 0.1 41 | [NoScaleOffset]_ShadowMask("Shadow Mask", 2D) = "white" {} 42 | [Toggle(_)]_ShadowColorDarken("Shadow Color Darken", Float) = 1 43 | _AmbientMinimum("Ambient Minimum", Range( 0 , 1)) = 0 44 | [Toggle(_)]_PosterizeToggle("Posterize Toggle", Float) = 0 45 | _NormalIntensity("Normal Intensity", Range( 0 , 1)) = 0.5 46 | [Toggle(_)]_LightIntensityShadowPos("Light Intensity Shadow Pos", Float) = 0 47 | _VDirLight("V Dir Light", Vector) = (0,0.6,1,0) 48 | [Toggle(_)]_ColorShift("Color Shift", Float) = 0 49 | _H("H", Range( -1 , 1)) = 1 50 | _S("S", Range( -1 , 1)) = 0 51 | _V("V", Range( -1 , 1)) = 0 52 | [Toggle(_)]_ScanLineToggle("Scan Line Toggle", Float) = 0 53 | [NoScaleOffset]_ScanLineTex("Scan Line Mask", 2D) = "white" {} 54 | _ScanLineColor("Scan Line Color", Color) = (0,0.710345,1,0) 55 | _ScanLineColor2("Scan Line Color 2", Color) = (1,0,0,0) 56 | _ScanLineSpeed("Scan Line Speed", Float) = 1 57 | _ScanLineWidth("Scan Line Width", Range( 0 , 1)) = 1 58 | _ScanLinePosition("Scan Line Position", Float) = 0 59 | [Toggle(_)]_ScanLineColor2Toggle("Scan Line Color 2 Toggle", Float) = 0 60 | _Color2ChangeSpeed("Color 2 Change Speed", Float) = 1 61 | [NoScaleOffset]_EmissiveScrollTex("Emissive Scroll Tex", 2D) = "black" {} 62 | [NoScaleOffset]_EmissiveScrollMask("Emissive Scroll Mask", 2D) = "white" {} 63 | _EmissiveScrollColor("Emissive Scroll Color", Color) = (1,1,1,1) 64 | _EmissiveScrollSpeed("Emissive Scroll Speed", Vector) = (1,0,0,0) 65 | [Toggle(_)]_EmissiveScrollGradient("Emissive Scroll Gradient", Float) = 0 66 | _EmissiveScrollContrast("Emissive Scroll Contrast", Float) = 1 67 | _EmissiveScrollStrength("Emissive Scroll Strength", Float) = 0 68 | [Toggle(_)]_ForceEmissiveToggle("Force Emissive Toggle", Float) = 0 69 | _EmissiveScrollTiling("Emissive Scroll Tiling", Vector) = (1,1,0,0) 70 | [NoScaleOffset]_ParallaxEmission("Parallax Emission", 2D) = "black" {} 71 | _ParallaxTiling("Parallax Tiling", Vector) = (1,1,0,0) 72 | _ParallaxScale("Parallax Scale", Float) = 1 73 | [Toggle(_)]_ForceMatcap("Force Matcap", Float) = 0 74 | [Toggle(_)]_MatcapToggle("Matcap Toggle", Float) = 0 75 | [Toggle(_)]_EmissiveScrollToggle("Emissive Scroll Toggle", Float) = 0 76 | _ParallaxHight("Parallax Hight", Float) = 1 77 | _ParallaxMask("Parallax Mask", 2D) = "white" {} 78 | [Toggle(_)]_Unlit("Unlit", Float) = 0 79 | [Toggle(_)]_GrayscaleColor("Grayscale Color", Float) = 0 80 | _CullMode("Cull Mode", Float) = 2 81 | _StencilReference("Stencil Reference", Float) = 0 82 | _Cutoff( "Mask Clip Value", Float ) = 0.5 83 | [HideInInspector] _texcoord( "", 2D ) = "white" {} 84 | [HideInInspector] __dirty( "", Int ) = 1 85 | } 86 | 87 | SubShader 88 | { 89 | Tags{ "RenderType" = "TransparentCutout" "Queue" = "AlphaTest+0" "IsEmissive" = "true" } 90 | Cull [_CullMode] 91 | Stencil 92 | { 93 | Ref [_StencilReference] 94 | Comp Always 95 | Pass Replace 96 | } 97 | CGINCLUDE 98 | #include "UnityPBSLighting.cginc" 99 | #include "UnityShaderVariables.cginc" 100 | #include "UnityStandardUtils.cginc" 101 | #include "UnityCG.cginc" 102 | #include "Lighting.cginc" 103 | #pragma target 3.0 104 | #pragma shader_feature _REFLECTIONTOGGLE_ON 105 | #ifdef UNITY_PASS_SHADOWCASTER 106 | #undef INTERNAL_DATA 107 | #undef WorldReflectionVector 108 | #undef WorldNormalVector 109 | #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2; 110 | #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))) 111 | #define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)) 112 | #endif 113 | struct Input 114 | { 115 | float2 uv_texcoord; 116 | float3 worldPos; 117 | float3 viewDir; 118 | INTERNAL_DATA 119 | float3 worldNormal; 120 | }; 121 | 122 | struct SurfaceOutputCustomLightingCustom 123 | { 124 | half3 Albedo; 125 | half3 Normal; 126 | half3 Emission; 127 | half Metallic; 128 | half Smoothness; 129 | half Occlusion; 130 | half Alpha; 131 | Input SurfInput; 132 | UnityGIInput GIData; 133 | }; 134 | 135 | uniform float _CullMode; 136 | uniform float _StencilReference; 137 | uniform sampler2D _ScanLineTex; 138 | uniform float _ScanLinePosition; 139 | uniform float _ScanLineSpeed; 140 | uniform float _ScanLineWidth; 141 | uniform float4 _ScanLineColor; 142 | uniform float4 _ScanLineColor2; 143 | uniform float _Color2ChangeSpeed; 144 | uniform float _ScanLineColor2Toggle; 145 | uniform float _ScanLineToggle; 146 | uniform sampler2D _EmissionMap; 147 | uniform float4 _EmissionMap_ST; 148 | uniform float4 _EmissionColor; 149 | uniform sampler2D _EmissiveScrollTex; 150 | uniform float2 _EmissiveScrollTiling; 151 | uniform float2 _EmissiveScrollSpeed; 152 | uniform sampler2D _EmissiveScrollMask; 153 | uniform float4 _EmissiveScrollColor; 154 | uniform float _EmissiveScrollStrength; 155 | uniform float _EmissiveScrollContrast; 156 | uniform float _EmissiveScrollGradient; 157 | uniform float _EmissiveScrollToggle; 158 | uniform sampler2D _ParallaxEmission; 159 | uniform float2 _ParallaxTiling; 160 | uniform float _ParallaxHight; 161 | uniform float _ParallaxScale; 162 | uniform sampler2D _ParallaxMask; 163 | uniform float4 _ParallaxMask_ST; 164 | uniform sampler2D _MainTex; 165 | uniform float4 _MainTex_ST; 166 | uniform float4 _DiffuseColor; 167 | uniform float _RimLightNormal; 168 | uniform sampler2D _BumpMap; 169 | uniform float4 _BumpMap_ST; 170 | uniform float _RimLightPower; 171 | uniform float _RimLightContrast; 172 | uniform float4 _RimLightColor; 173 | uniform sampler2D _RimLightMask; 174 | uniform float _RimLightToggle; 175 | uniform sampler2D _Matcap; 176 | uniform float _MatcapCameraFix; 177 | uniform float4 _MatcapColor; 178 | uniform sampler2D _MatcapMask; 179 | uniform float _MatcapToggle; 180 | uniform float _GrayscaleColor; 181 | uniform float _H; 182 | uniform float _S; 183 | uniform float _V; 184 | uniform float _ColorShift; 185 | uniform float _ForceMatcap; 186 | uniform float _Smoothness; 187 | uniform float4 _ReflectionColor; 188 | uniform float _ReflectionIntensity; 189 | uniform float _FresnelScale; 190 | uniform float _FresnelPower; 191 | uniform float _FresnelToggle; 192 | uniform sampler2D _MatcapShadow; 193 | uniform float _MatcapShadowToggle; 194 | uniform float4 _MatcapShadowColor; 195 | uniform float _AmbientMinimum; 196 | uniform float _Unlit; 197 | uniform float4 _Shadow2Color; 198 | uniform float4 _Shadow1Color; 199 | uniform float _ShadowColorDarken; 200 | uniform float _Shadow1Place; 201 | uniform float _NormalIntensity; 202 | uniform float _ObjectShadow; 203 | uniform float _LightIntensityShadowPos; 204 | uniform float3 _VDirLight; 205 | uniform float _Shadow1Contrast; 206 | uniform float _PosterizeToggle; 207 | uniform float _Shadow2Place; 208 | uniform float _Shadow2Contrast; 209 | uniform float _Shadow2ContrastToggle; 210 | uniform sampler2D _ShadowMask; 211 | uniform float _HalfLambertToggle; 212 | uniform float _ForceEmissiveToggle; 213 | uniform float _Cutoff = 0.5; 214 | 215 | 216 | float3 HSVToRGB( float3 c ) 217 | { 218 | float4 K = float4( 1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0 ); 219 | float3 p = abs( frac( c.xxx + K.xyz ) * 6.0 - K.www ); 220 | return c.z * lerp( K.xxx, saturate( p - K.xxx ), c.y ); 221 | } 222 | 223 | 224 | float3 RGBToHSV(float3 c) 225 | { 226 | float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 227 | float4 p = lerp( float4( c.bg, K.wz ), float4( c.gb, K.xy ), step( c.b, c.g ) ); 228 | float4 q = lerp( float4( p.xyw, c.r ), float4( c.r, p.yzx ), step( p.x, c.r ) ); 229 | float d = q.x - min( q.w, q.y ); 230 | float e = 1.0e-10; 231 | return float3( abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); 232 | } 233 | 234 | float3 Function_ShadeSH9( ) 235 | { 236 | return ShadeSH9(half4(0,0,0,1)); 237 | } 238 | 239 | 240 | float3 BakedDirectionalLight746_g79( ) 241 | { 242 | return normalize(unity_SHAr.rgb *0.3+unity_SHAg.rgb*0.6+unity_SHAb.rgb*0.1); 243 | } 244 | 245 | 246 | inline half4 LightingStandardCustomLighting( inout SurfaceOutputCustomLightingCustom s, half3 viewDir, UnityGI gi ) 247 | { 248 | UnityGIInput data = s.GIData; 249 | Input i = s.SurfInput; 250 | half4 c = 0; 251 | #ifdef UNITY_PASS_FORWARDBASE 252 | float ase_lightAtten = data.atten; 253 | if( _LightColor0.a == 0) 254 | ase_lightAtten = 0; 255 | #else 256 | float3 ase_lightAttenRGB = gi.light.color / ( ( _LightColor0.rgb ) + 0.000001 ); 257 | float ase_lightAtten = max( max( ase_lightAttenRGB.r, ase_lightAttenRGB.g ), ase_lightAttenRGB.b ); 258 | #endif 259 | #if defined(HANDLE_SHADOWS_BLENDING_IN_GI) 260 | half bakedAtten = UnitySampleBakedOcclusion(data.lightmapUV.xy, data.worldPos); 261 | float zDist = dot(_WorldSpaceCameraPos - data.worldPos, UNITY_MATRIX_V[2].xyz); 262 | float fadeDist = UnityComputeShadowFadeDistance(data.worldPos, zDist); 263 | ase_lightAtten = UnityMixRealtimeAndBakedShadows(data.atten, bakedAtten, UnityComputeShadowFade(fadeDist)); 264 | #endif 265 | float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw; 266 | float4 temp_output_84_0_g79 = ( tex2D( _MainTex, uv_MainTex ) * _DiffuseColor ); 267 | float2 uv_ScanLineTex526_g79 = i.uv_texcoord; 268 | float3 ase_worldPos = i.worldPos; 269 | float3 worldToObj529_g79 = mul( unity_WorldToObject, float4( ase_worldPos, 1 ) ).xyz; 270 | float4 lerpResult513_g79 = lerp( float4( 0,0,0,0 ) , tex2D( _ScanLineTex, uv_ScanLineTex526_g79 ) , ( ( worldToObj529_g79.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) > ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 0.0 : ( worldToObj529_g79.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) <= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) && ( worldToObj529_g79.y + _ScanLinePosition ) + (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) >= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 1.0 : 0.0 ) ); 271 | float mulTime583_g79 = _Time.y * _Color2ChangeSpeed; 272 | float4 lerpResult578_g79 = lerp( _ScanLineColor , _ScanLineColor2 , sin( mulTime583_g79 )); 273 | float4 lerpResult704_g79 = lerp( _ScanLineColor , lerpResult578_g79 , _ScanLineColor2Toggle); 274 | float4 lerpResult702_g79 = lerp( float4( 0,0,0,0 ) , ( lerpResult513_g79 * lerpResult704_g79 ) , _ScanLineToggle); 275 | float4 ScanLineEmission534_g79 = lerpResult702_g79; 276 | float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw; 277 | float2 uv_TexCoord485_g79 = i.uv_texcoord * _EmissiveScrollTiling + ( _Time.x * _EmissiveScrollSpeed ); 278 | float2 uv_EmissiveScrollMask466_g79 = i.uv_texcoord; 279 | float4 tex2DNode466_g79 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g79 ); 280 | float4 lerpResult468_g79 = lerp( float4( 0,0,0,0 ) , tex2D( _EmissiveScrollTex, uv_TexCoord485_g79 ) , tex2DNode466_g79); 281 | float2 ScrollDir469_g79 = _EmissiveScrollSpeed; 282 | float dotResult461_g79 = dot( i.uv_texcoord , ScrollDir469_g79 ); 283 | float4 lerpResult504_g79 = lerp( float4( 0,0,0,0 ) , ( _EmissiveScrollColor * ( 1.0 - saturate( ( ( ( ( ( cos( ( UNITY_PI * ( ( dotResult461_g79 + _Time.y ) * ScrollDir469_g79 ) ) ).x + 0.0 ) + _EmissiveScrollStrength ) - 0.5 ) * _EmissiveScrollContrast ) + 0.5 ) ) ) ) , tex2DNode466_g79); 284 | float4 lerpResult700_g79 = lerp( ( lerpResult468_g79 * _EmissiveScrollColor ) , lerpResult504_g79 , _EmissiveScrollGradient); 285 | float4 EmissiveScroll507_g79 = saturate( lerpResult700_g79 ); 286 | float4 lerpResult706_g79 = lerp( float4( 0,0,0,0 ) , EmissiveScroll507_g79 , _EmissiveScrollToggle); 287 | float2 uv_TexCoord574_g79 = i.uv_texcoord * _ParallaxTiling; 288 | float2 Offset573_g79 = ( ( _ParallaxHight - 1 ) * i.viewDir.xy * _ParallaxScale ) + uv_TexCoord574_g79; 289 | float2 uv_ParallaxMask = i.uv_texcoord * _ParallaxMask_ST.xy + _ParallaxMask_ST.zw; 290 | float4 lerpResult588_g79 = lerp( float4( 0,0,0,0 ) , tex2D( _ParallaxEmission, Offset573_g79 ) , tex2D( _ParallaxMask, uv_ParallaxMask )); 291 | float4 temp_output_452_0_g79 = ( ScanLineEmission534_g79 + ( tex2D( _EmissionMap, uv_EmissionMap ) * _EmissionColor ) + lerpResult706_g79 + lerpResult588_g79 ); 292 | float4 Emission679_g79 = temp_output_452_0_g79; 293 | float Opacity674_g79 = saturate( max( temp_output_84_0_g79.a , Emission679_g79.a ) ); 294 | float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw; 295 | float3 tex2DNode207_g79 = UnpackNormal( tex2D( _BumpMap, uv_BumpMap ) ); 296 | float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) ); 297 | float dotResult214_g79 = dot( (WorldNormalVector( i , lerp(float3( 0,0,1 ),tex2DNode207_g79,_RimLightNormal) )) , ase_worldViewDir ); 298 | float2 uv_RimLightMask225_g79 = i.uv_texcoord; 299 | float4 lerpResult230_g79 = lerp( ( ( ( ( ( abs( ( 1.0 - dotResult214_g79 ) ) * _RimLightPower ) - 0.5 ) * _RimLightContrast ) + 0.5 ) * _RimLightColor ) , float4( 0,0,0,0 ) , ( 1.0 - tex2D( _RimLightMask, uv_RimLightMask225_g79 ) )); 300 | float4 lerpResult708_g79 = lerp( float4( 0,0,0,0 ) , lerpResult230_g79 , _RimLightToggle); 301 | float4 RimLight233_g79 = saturate( lerpResult708_g79 ); 302 | float3 NormalMap208_g79 = tex2DNode207_g79; 303 | float3 temp_output_240_0_g79 = mul( UNITY_MATRIX_V, float4( (WorldNormalVector( i , NormalMap208_g79 )) , 0.0 ) ).xyz; 304 | float3 worldToViewDir556_g79 = mul( UNITY_MATRIX_V, float4( ase_worldViewDir, 0 ) ).xyz; 305 | float2 lerpResult737_g79 = lerp( (temp_output_240_0_g79).xy , (BlendNormals( ( worldToViewDir556_g79 * float3(-1,-1,1) ) , temp_output_240_0_g79 )).xy , _MatcapCameraFix); 306 | float2 temp_output_244_0_g79 = ( 0.5 + ( 0.5 * lerpResult737_g79 ) ); 307 | float4 blendOpSrc251_g79 = tex2D( _Matcap, temp_output_244_0_g79 ); 308 | float4 blendOpDest251_g79 = _MatcapColor; 309 | float2 uv_MatcapMask246_g79 = i.uv_texcoord; 310 | float4 tex2DNode246_g79 = tex2D( _MatcapMask, uv_MatcapMask246_g79 ); 311 | float4 lerpResult254_g79 = lerp( float4( 0,0,0,0 ) , ( saturate( ( blendOpSrc251_g79 * blendOpDest251_g79 ) )) , tex2DNode246_g79); 312 | float4 lerpResult709_g79 = lerp( float4( 0,0,0,0 ) , lerpResult254_g79 , _MatcapToggle); 313 | float4 DiffuseBase606_g79 = temp_output_84_0_g79; 314 | float grayscale611_g79 = dot(DiffuseBase606_g79.rgb, float3(0.299,0.587,0.114)); 315 | float4 temp_cast_6 = (grayscale611_g79).xxxx; 316 | float4 lerpResult745_g79 = lerp( DiffuseBase606_g79 , temp_cast_6 , _GrayscaleColor); 317 | float3 hsvTorgb595_g79 = RGBToHSV( lerpResult745_g79.rgb ); 318 | float3 hsvTorgb603_g79 = HSVToRGB( float3(( hsvTorgb595_g79.x + _H ),( hsvTorgb595_g79.y + _S ),( hsvTorgb595_g79.z + _V )) ); 319 | float4 lerpResult742_g79 = lerp( DiffuseBase606_g79 , float4( hsvTorgb603_g79 , 0.0 ) , _ColorShift); 320 | float4 Diffuse105_g79 = lerpResult742_g79; 321 | float4 lerpResult252_g79 = lerp( Diffuse105_g79 , float4( 0,0,0,0 ) , tex2DNode246_g79); 322 | float4 lerpResult713_g79 = lerp( Diffuse105_g79 , lerpResult252_g79 , _ForceMatcap); 323 | float4 Matcap260_g79 = ( lerpResult709_g79 + lerpResult713_g79 ); 324 | float3 indirectNormal281_g79 = WorldNormalVector( i , NormalMap208_g79 ); 325 | Unity_GlossyEnvironmentData g281_g79 = UnityGlossyEnvironmentSetup( _Smoothness, data.worldViewDir, indirectNormal281_g79, float3(0,0,0)); 326 | float3 indirectSpecular281_g79 = UnityGI_IndirectSpecular( data, 1.0, indirectNormal281_g79, g281_g79 ); 327 | float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) ); 328 | float3 ase_worldTangent = WorldNormalVector( i, float3( 1, 0, 0 ) ); 329 | float3 ase_worldBitangent = WorldNormalVector( i, float3( 0, 1, 0 ) ); 330 | float3x3 ase_tangentToWorldFast = float3x3(ase_worldTangent.x,ase_worldBitangent.x,ase_worldNormal.x,ase_worldTangent.y,ase_worldBitangent.y,ase_worldNormal.y,ase_worldTangent.z,ase_worldBitangent.z,ase_worldNormal.z); 331 | float fresnelNdotV275_g79 = dot( mul(ase_tangentToWorldFast,NormalMap208_g79), ase_worldViewDir ); 332 | float fresnelNode275_g79 = ( 0.0 + _FresnelScale * pow( 1.0 - fresnelNdotV275_g79, _FresnelPower ) ); 333 | float lerpResult699_g79 = lerp( 1.0 , fresnelNode275_g79 , _FresnelToggle); 334 | float4 lerpResult278_g79 = lerp( float4( 0,0,0,0 ) , ( ( float4( indirectSpecular281_g79 , 0.0 ) * _ReflectionColor ) * _ReflectionIntensity ) , saturate( lerpResult699_g79 )); 335 | #ifdef _REFLECTIONTOGGLE_ON 336 | float4 staticSwitch549_g79 = lerpResult278_g79; 337 | #else 338 | float4 staticSwitch549_g79 = float4( 0,0,0,0 ); 339 | #endif 340 | float4 Reflection280_g79 = saturate( staticSwitch549_g79 ); 341 | float4 lerpResult740_g79 = lerp( float4( 1,1,1,1 ) , tex2D( _MatcapShadow, temp_output_244_0_g79 ) , _MatcapShadowToggle); 342 | float4 blendOpSrc259_g79 = lerpResult740_g79; 343 | float4 blendOpDest259_g79 = _MatcapShadowColor; 344 | float4 MatcapShadow261_g79 = ( saturate( ( blendOpSrc259_g79 + blendOpDest259_g79 ) )); 345 | float3 localFunction_ShadeSH9411_g79 = Function_ShadeSH9(); 346 | #if defined(LIGHTMAP_ON) && ( UNITY_VERSION < 560 || ( defined(LIGHTMAP_SHADOW_MIXING) && !defined(SHADOWS_SHADOWMASK) && defined(SHADOWS_SCREEN) ) )//aselc 347 | float4 ase_lightColor = 0; 348 | #else //aselc 349 | float4 ase_lightColor = _LightColor0; 350 | #endif //aselc 351 | float4 ifLocalVar196_g79 = 0; 352 | if( _WorldSpaceLightPos0.w <= 0.0 ) 353 | ifLocalVar196_g79 = ase_lightColor; 354 | else 355 | ifLocalVar196_g79 = ( ase_lightAtten * ase_lightColor ); 356 | float4 temp_cast_11 = (_AmbientMinimum).xxxx; 357 | float4 clampResult650_g79 = clamp( ( float4( localFunction_ShadeSH9411_g79 , 0.0 ) + ifLocalVar196_g79 ) , temp_cast_11 , float4( 1,1,1,1 ) ); 358 | float4 temp_cast_12 = (1.0).xxxx; 359 | float4 lerpResult723_g79 = lerp( saturate( clampResult650_g79 ) , temp_cast_12 , _Unlit); 360 | float4 Lighting201_g79 = lerpResult723_g79; 361 | float4 temp_cast_13 = (1.0).xxxx; 362 | float4 blendOpSrc365_g79 = _Shadow1Color; 363 | float4 blendOpDest365_g79 = _Shadow2Color; 364 | float4 lerpResult733_g79 = lerp( _Shadow2Color , ( saturate( min( blendOpSrc365_g79 , blendOpDest365_g79 ) )) , _ShadowColorDarken); 365 | float3 lerpResult333_g79 = lerp( float3( 0,0,1 ) , NormalMap208_g79 , _NormalIntensity); 366 | float3 newWorldNormal334_g79 = (WorldNormalVector( i , lerpResult333_g79 )); 367 | #if defined(LIGHTMAP_ON) && UNITY_VERSION < 560 //aseld 368 | float3 ase_worldlightDir = 0; 369 | #else //aseld 370 | float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) ); 371 | #endif //aseld 372 | float dotResult5_g80 = dot( newWorldNormal334_g79 , ase_worldlightDir ); 373 | float temp_output_335_0_g79 = (dotResult5_g80*0.5 + 0.5); 374 | float lerpResult726_g79 = lerp( temp_output_335_0_g79 , saturate( ( temp_output_335_0_g79 * ase_lightAtten ) ) , _ObjectShadow); 375 | float grayscale544_g79 = (ase_lightColor.rgb.r + ase_lightColor.rgb.g + ase_lightColor.rgb.b) / 3; 376 | float3 localFunction_ShadeSH9567_g79 = Function_ShadeSH9(); 377 | float grayscale568_g79 = (localFunction_ShadeSH9567_g79.r + localFunction_ShadeSH9567_g79.g + localFunction_ShadeSH9567_g79.b) / 3; 378 | float blendOpSrc566_g79 = grayscale544_g79; 379 | float blendOpDest566_g79 = grayscale568_g79; 380 | float lerpResult729_g79 = lerp( lerpResult726_g79 , ( ( saturate( max( blendOpSrc566_g79, blendOpDest566_g79 ) )) * lerpResult726_g79 ) , _LightIntensityShadowPos); 381 | float3 localBakedDirectionalLight746_g79 = BakedDirectionalLight746_g79(); 382 | float dotResult441_g79 = dot( localBakedDirectionalLight746_g79 , newWorldNormal334_g79 ); 383 | float temp_output_538_0_g79 = ( ( dotResult441_g79 * 0.5 ) + 0.5 ); 384 | float ifLocalVar431_g79 = 0; 385 | if( ase_lightColor.a <= 0.0 ) 386 | ifLocalVar431_g79 = temp_output_538_0_g79; 387 | else 388 | ifLocalVar431_g79 = lerpResult729_g79; 389 | float3 VDirLight648_g79 = _VDirLight; 390 | float4 transform617_g79 = mul(unity_ObjectToWorld,float4( VDirLight648_g79 , 0.0 )); 391 | float3 lerpResult624_g79 = lerp( float3( 0,0,1 ) , NormalMap208_g79 , _NormalIntensity); 392 | float dotResult613_g79 = dot( transform617_g79 , float4( (WorldNormalVector( i , lerpResult624_g79 )) , 0.0 ) ); 393 | float FixedShadow627_g79 = ( ( dotResult613_g79 * 0.5 ) + 0.5 ); 394 | float lerpResult724_g79 = lerp( ifLocalVar431_g79 , FixedShadow627_g79 , _Unlit); 395 | float temp_output_351_0_g79 = ( ( ( ( _Shadow1Place + lerpResult724_g79 ) - 0.5 ) * _Shadow1Contrast ) + 0.5 ); 396 | float4 temp_cast_17 = (temp_output_351_0_g79).xxxx; 397 | float4 temp_cast_19 = (temp_output_351_0_g79).xxxx; 398 | float div354_g79=256.0/float((int)255.0); 399 | float4 posterize354_g79 = ( floor( temp_cast_19 * div354_g79 ) / div354_g79 ); 400 | float4 lerpResult720_g79 = lerp( temp_cast_17 , posterize354_g79 , _PosterizeToggle); 401 | float4 temp_cast_20 = (0.0).xxxx; 402 | float4 temp_cast_21 = (1.0).xxxx; 403 | float4 clampResult364_g79 = clamp( lerpResult720_g79 , temp_cast_20 , temp_cast_21 ); 404 | float4 lerpResult366_g79 = lerp( _Shadow1Color , float4( 1,1,1,0 ) , clampResult364_g79); 405 | float lerpResult732_g79 = lerp( _Shadow1Contrast , _Shadow2Contrast , _Shadow2ContrastToggle); 406 | float temp_output_353_0_g79 = ( ( ( ( _Shadow2Place + lerpResult724_g79 ) - 0.5 ) * lerpResult732_g79 ) + 0.5 ); 407 | float4 temp_cast_22 = (temp_output_353_0_g79).xxxx; 408 | float4 temp_cast_24 = (temp_output_353_0_g79).xxxx; 409 | float div356_g79=256.0/float((int)255.0); 410 | float4 posterize356_g79 = ( floor( temp_cast_24 * div356_g79 ) / div356_g79 ); 411 | float4 lerpResult721_g79 = lerp( temp_cast_22 , posterize356_g79 , _PosterizeToggle); 412 | float4 temp_cast_25 = (0.0).xxxx; 413 | float4 temp_cast_26 = (1.0).xxxx; 414 | float4 clampResult363_g79 = clamp( lerpResult721_g79 , temp_cast_25 , temp_cast_26 ); 415 | float4 lerpResult368_g79 = lerp( lerpResult733_g79 , lerpResult366_g79 , clampResult363_g79); 416 | float2 uv_ShadowMask369_g79 = i.uv_texcoord; 417 | float4 lerpResult372_g79 = lerp( float4( 1,1,1,1 ) , lerpResult368_g79 , tex2D( _ShadowMask, uv_ShadowMask369_g79 )); 418 | float4 lerpResult735_g79 = lerp( temp_cast_13 , lerpResult372_g79 , _HalfLambertToggle); 419 | float4 Shadow375_g79 = lerpResult735_g79; 420 | float4 EmissiveScrollMask508_g79 = tex2DNode466_g79; 421 | float4 lerpResult715_g79 = lerp( float4( 0,0,0,0 ) , EmissiveScrollMask508_g79 , _ForceEmissiveToggle); 422 | float4 lerpResult451_g79 = lerp( saturate( ( ( RimLight233_g79 + Matcap260_g79 + Reflection280_g79 ) * MatcapShadow261_g79 * Lighting201_g79 * Shadow375_g79 ) ) , float4( 0,0,0,0 ) , lerpResult715_g79); 423 | c.rgb = lerpResult451_g79.rgb; 424 | c.a = 1; 425 | clip( Opacity674_g79 - _Cutoff ); 426 | return c; 427 | } 428 | 429 | inline void LightingStandardCustomLighting_GI( inout SurfaceOutputCustomLightingCustom s, UnityGIInput data, inout UnityGI gi ) 430 | { 431 | s.GIData = data; 432 | } 433 | 434 | void surf( Input i , inout SurfaceOutputCustomLightingCustom o ) 435 | { 436 | o.SurfInput = i; 437 | o.Normal = float3(0,0,1); 438 | float2 uv_ScanLineTex526_g79 = i.uv_texcoord; 439 | float3 ase_worldPos = i.worldPos; 440 | float3 worldToObj529_g79 = mul( unity_WorldToObject, float4( ase_worldPos, 1 ) ).xyz; 441 | float4 lerpResult513_g79 = lerp( float4( 0,0,0,0 ) , tex2D( _ScanLineTex, uv_ScanLineTex526_g79 ) , ( ( worldToObj529_g79.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) > ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 0.0 : ( worldToObj529_g79.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) <= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) && ( worldToObj529_g79.y + _ScanLinePosition ) + (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) >= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 1.0 : 0.0 ) ); 442 | float mulTime583_g79 = _Time.y * _Color2ChangeSpeed; 443 | float4 lerpResult578_g79 = lerp( _ScanLineColor , _ScanLineColor2 , sin( mulTime583_g79 )); 444 | float4 lerpResult704_g79 = lerp( _ScanLineColor , lerpResult578_g79 , _ScanLineColor2Toggle); 445 | float4 lerpResult702_g79 = lerp( float4( 0,0,0,0 ) , ( lerpResult513_g79 * lerpResult704_g79 ) , _ScanLineToggle); 446 | float4 ScanLineEmission534_g79 = lerpResult702_g79; 447 | float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw; 448 | float2 uv_TexCoord485_g79 = i.uv_texcoord * _EmissiveScrollTiling + ( _Time.x * _EmissiveScrollSpeed ); 449 | float2 uv_EmissiveScrollMask466_g79 = i.uv_texcoord; 450 | float4 tex2DNode466_g79 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g79 ); 451 | float4 lerpResult468_g79 = lerp( float4( 0,0,0,0 ) , tex2D( _EmissiveScrollTex, uv_TexCoord485_g79 ) , tex2DNode466_g79); 452 | float2 ScrollDir469_g79 = _EmissiveScrollSpeed; 453 | float dotResult461_g79 = dot( i.uv_texcoord , ScrollDir469_g79 ); 454 | float4 lerpResult504_g79 = lerp( float4( 0,0,0,0 ) , ( _EmissiveScrollColor * ( 1.0 - saturate( ( ( ( ( ( cos( ( UNITY_PI * ( ( dotResult461_g79 + _Time.y ) * ScrollDir469_g79 ) ) ).x + 0.0 ) + _EmissiveScrollStrength ) - 0.5 ) * _EmissiveScrollContrast ) + 0.5 ) ) ) ) , tex2DNode466_g79); 455 | float4 lerpResult700_g79 = lerp( ( lerpResult468_g79 * _EmissiveScrollColor ) , lerpResult504_g79 , _EmissiveScrollGradient); 456 | float4 EmissiveScroll507_g79 = saturate( lerpResult700_g79 ); 457 | float4 lerpResult706_g79 = lerp( float4( 0,0,0,0 ) , EmissiveScroll507_g79 , _EmissiveScrollToggle); 458 | float2 uv_TexCoord574_g79 = i.uv_texcoord * _ParallaxTiling; 459 | float2 Offset573_g79 = ( ( _ParallaxHight - 1 ) * i.viewDir.xy * _ParallaxScale ) + uv_TexCoord574_g79; 460 | float2 uv_ParallaxMask = i.uv_texcoord * _ParallaxMask_ST.xy + _ParallaxMask_ST.zw; 461 | float4 lerpResult588_g79 = lerp( float4( 0,0,0,0 ) , tex2D( _ParallaxEmission, Offset573_g79 ) , tex2D( _ParallaxMask, uv_ParallaxMask )); 462 | float4 temp_output_452_0_g79 = ( ScanLineEmission534_g79 + ( tex2D( _EmissionMap, uv_EmissionMap ) * _EmissionColor ) + lerpResult706_g79 + lerpResult588_g79 ); 463 | o.Emission = temp_output_452_0_g79.rgb; 464 | } 465 | 466 | ENDCG 467 | CGPROGRAM 468 | #pragma surface surf StandardCustomLighting keepalpha fullforwardshadows exclude_path:deferred 469 | 470 | ENDCG 471 | Pass 472 | { 473 | Name "ShadowCaster" 474 | Tags{ "LightMode" = "ShadowCaster" } 475 | ZWrite On 476 | Stencil 477 | { 478 | Ref [_StencilReference] 479 | Comp Always 480 | Pass Replace 481 | } 482 | CGPROGRAM 483 | #pragma vertex vert 484 | #pragma fragment frag 485 | #pragma target 3.0 486 | #pragma multi_compile_shadowcaster 487 | #pragma multi_compile UNITY_PASS_SHADOWCASTER 488 | #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 489 | #include "HLSLSupport.cginc" 490 | #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN ) 491 | #define CAN_SKIP_VPOS 492 | #endif 493 | #include "UnityCG.cginc" 494 | #include "Lighting.cginc" 495 | #include "UnityPBSLighting.cginc" 496 | struct v2f 497 | { 498 | V2F_SHADOW_CASTER; 499 | float2 customPack1 : TEXCOORD1; 500 | float4 tSpace0 : TEXCOORD2; 501 | float4 tSpace1 : TEXCOORD3; 502 | float4 tSpace2 : TEXCOORD4; 503 | UNITY_VERTEX_INPUT_INSTANCE_ID 504 | UNITY_VERTEX_OUTPUT_STEREO 505 | }; 506 | v2f vert( appdata_full v ) 507 | { 508 | v2f o; 509 | UNITY_SETUP_INSTANCE_ID( v ); 510 | UNITY_INITIALIZE_OUTPUT( v2f, o ); 511 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o ); 512 | UNITY_TRANSFER_INSTANCE_ID( v, o ); 513 | Input customInputData; 514 | float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz; 515 | half3 worldNormal = UnityObjectToWorldNormal( v.normal ); 516 | half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz ); 517 | half tangentSign = v.tangent.w * unity_WorldTransformParams.w; 518 | half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign; 519 | o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x ); 520 | o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y ); 521 | o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z ); 522 | o.customPack1.xy = customInputData.uv_texcoord; 523 | o.customPack1.xy = v.texcoord; 524 | TRANSFER_SHADOW_CASTER_NORMALOFFSET( o ) 525 | return o; 526 | } 527 | half4 frag( v2f IN 528 | #if !defined( CAN_SKIP_VPOS ) 529 | , UNITY_VPOS_TYPE vpos : VPOS 530 | #endif 531 | ) : SV_Target 532 | { 533 | UNITY_SETUP_INSTANCE_ID( IN ); 534 | Input surfIN; 535 | UNITY_INITIALIZE_OUTPUT( Input, surfIN ); 536 | surfIN.uv_texcoord = IN.customPack1.xy; 537 | float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w ); 538 | half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) ); 539 | surfIN.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z; 540 | surfIN.worldPos = worldPos; 541 | surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z ); 542 | surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz; 543 | surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz; 544 | surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz; 545 | SurfaceOutputCustomLightingCustom o; 546 | UNITY_INITIALIZE_OUTPUT( SurfaceOutputCustomLightingCustom, o ) 547 | surf( surfIN, o ); 548 | UnityGI gi; 549 | UNITY_INITIALIZE_OUTPUT( UnityGI, gi ); 550 | o.Alpha = LightingStandardCustomLighting( o, worldViewDir, gi ).a; 551 | #if defined( CAN_SKIP_VPOS ) 552 | float2 vpos = IN.pos; 553 | #endif 554 | SHADOW_CASTER_FRAGMENT( IN ) 555 | } 556 | ENDCG 557 | } 558 | } 559 | Fallback "Diffuse" 560 | CustomEditor "RSInspector" 561 | } 562 | /*ASEBEGIN 563 | Version=17000 564 | 1927;12;1906;1020;553.0916;478.5941;1;True;False 565 | Node;AmplifyShaderEditor.CommentaryNode;225;415.1616,-347.5059;Float;False;727.0001;345;Stencil;7;220;219;218;224;221;222;223;;1,1,1,1;0;0 566 | Node;AmplifyShaderEditor.CommentaryNode;46;69.28168,-267.6262;Float;False;266.991;191.938;Properties;1;48;Miscellaneous;0.5514706,0.5514706,0.5514706,1;0;0 567 | Node;AmplifyShaderEditor.FunctionNode;237;-581.649,143.5963;Float;False;Reflex Shader Function;0;;79;f5d8f584674c8984ab029c8868eb5bf3;0;0;6;COLOR;186;FLOAT;265;COLOR;0;COLOR;402;FLOAT;403;COLOR;404 568 | Node;AmplifyShaderEditor.RangedFloatNode;220;469.1616,-119.5059;Float;False;Property;_StencilWriteMask;Stencil Write Mask;83;0;Create;True;0;0;False;0;255;0;0;0;0;1;FLOAT;0 569 | Node;AmplifyShaderEditor.RangedFloatNode;224;895.1616,-295.5059;Float;False;Property;_StencilZFailFront;Stencil Z Fail Front;87;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 570 | Node;AmplifyShaderEditor.RangedFloatNode;222;681.1616,-209.5059;Float;False;Property;_StencilPassFront;Stencil Pass Front;85;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 571 | Node;AmplifyShaderEditor.RangedFloatNode;219;469.1616,-203.5059;Float;False;Property;_StencilReadMask;Stencil Read Mask;82;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 572 | Node;AmplifyShaderEditor.RangedFloatNode;221;673.1616,-297.5059;Float;False;Property;_StencilComparison;Stencil Comparison;84;0;Create;True;0;0;False;0;255;0;0;0;0;1;FLOAT;0 573 | Node;AmplifyShaderEditor.RangedFloatNode;48;107.2817,-195.6262;Float;False;Property;_CullMode;Cull Mode;79;0;Create;True;0;0;True;0;2;0;0;0;0;1;FLOAT;0 574 | Node;AmplifyShaderEditor.RangedFloatNode;218;465.1616,-293.5059;Float;False;Property;_StencilReference;Stencil Reference;80;0;Create;True;0;0;True;0;0;0;0;0;0;1;FLOAT;0 575 | Node;AmplifyShaderEditor.RangedFloatNode;223;685.1616,-117.5059;Float;False;Property;_StencilFailFront;Stencil Fail Front;86;0;Create;True;0;0;False;0;0;0;0;0;0;1;FLOAT;0 576 | Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;150,-18;Float;False;True;2;Float;RSInspector;0;0;CustomLighting;Reflex Shader 2/No Outline/Stencil/Writer;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;-1;0;False;-1;False;0;False;-1;0;False;-1;False;0;Masked;0.5;True;True;0;False;TransparentCutout;;AlphaTest;ForwardOnly;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;0;False;-1;True;2;True;218;255;False;219;255;False;220;7;False;221;3;False;222;0;False;223;0;False;224;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;True;0;1;False;-1;1;False;-1;0;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;81;-1;-1;-1;0;False;0;0;True;48;-1;0;False;-1;0;0;0;False;0.1;False;-1;0;False;-1;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0 577 | WireConnection;0;2;237;186 578 | WireConnection;0;10;237;265 579 | WireConnection;0;13;237;0 580 | ASEEND*/ 581 | //CHKSM=271B31F1E996BB91698268F460F428C5CE783FE0 -------------------------------------------------------------------------------- /no_outline/Stencil Writer no_outline.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37a618d5b552742348253195161d4a74 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /no_outline/Transparent no_outline.shader: -------------------------------------------------------------------------------- 1 | // Made with Amplify Shader Editor 2 | // Available at the Unity Asset Store - http://u3d.as/y3X 3 | Shader "Reflex Shader 2/No Outline/Transparent" 4 | { 5 | Properties 6 | { 7 | _MainTex("Diffuse", 2D) = "white" {} 8 | _DiffuseColor("Diffuse Color", Color) = (1,1,1,1) 9 | _EmissionMap("Emission", 2D) = "black" {} 10 | _EmissionColor("Emission Color", Color) = (1,1,1,1) 11 | [Normal]_BumpMap("Normal Map", 2D) = "bump" {} 12 | _Matcap("Matcap", 2D) = "black" {} 13 | _MatcapColor("Matcap Color", Color) = (1,1,1,1) 14 | [Toggle(_)]_MatcapShadowToggle("Matcap Shadow Toggle", Float) = 0 15 | _MatcapShadow("Matcap Shadow", 2D) = "white" {} 16 | _MatcapShadowColor("Matcap Shadow Color", Color) = (0.7843137,0.7843137,0.7843137,1) 17 | [NoScaleOffset]_MatcapMask("Matcap Mask", 2D) = "white" {} 18 | [Toggle(_)]_MatcapCameraFix("Matcap Camera Fix", Float) = 0 19 | [Toggle(_)]_RimLightToggle("RimLight Toggle", Float) = 0 20 | _RimLightColor("RimLight Color", Color) = (1,1,1,1) 21 | _RimLightPower("RimLight Power", Range( 0 , 1)) = 0 22 | _RimLightContrast("RimLight Contrast", Range( 0 , 10)) = 3 23 | [NoScaleOffset]_RimLightMask("RimLight Mask", 2D) = "white" {} 24 | [Toggle]_RimLightNormal("RimLight Normal", Float) = 0 25 | [Toggle(_REFLECTIONTOGGLE_ON)] _ReflectionToggle("Reflection Toggle", Float) = 0 26 | _ReflectionColor("Reflection Color", Color) = (1,1,1,0) 27 | _ReflectionIntensity("Reflection Intensity", Range( 0 , 1)) = 1 28 | _Smoothness("Smoothness", Range( 0 , 1)) = 1 29 | [Toggle(_)]_FresnelToggle("Fresnel Toggle", Float) = 0 30 | _FresnelPower("Fresnel Power", Range( 0 , 10)) = 9 31 | _FresnelScale("Fresnel Scale", Range( 0 , 3)) = 3 32 | [Toggle(_)]_HalfLambertToggle("ShaodwToggle", Float) = 1 33 | [Toggle(_)]_ObjectShadow("Use System Shadow", Float) = 1 34 | _Shadow1Contrast("Shadow 1 Contrast", Range( 1 , 20)) = 10 35 | _Shadow1Color("Shadow 1 Color", Color) = (0.8627451,0.8627451,0.8627451,1) 36 | _Shadow1Place("Shadow 1 Place", Range( -1 , 1)) = 0 37 | [Toggle(_)]_Shadow2ContrastToggle("Shadow 2 Contrast Toggle", Float) = 0 38 | _Shadow2Contrast("Shadow 2 Contrast", Range( 1 , 20)) = 20 39 | _Shadow2Color("Shadow 2 Color", Color) = (0.7843137,0.7843137,0.7843137,1) 40 | _Shadow2Place("Shadow 2 Place", Range( -1 , 1)) = 0.1 41 | [NoScaleOffset]_ShadowMask("Shadow Mask", 2D) = "white" {} 42 | [Toggle(_)]_ShadowColorDarken("Shadow Color Darken", Float) = 1 43 | _AmbientMinimum("Ambient Minimum", Range( 0 , 1)) = 0 44 | [Toggle(_)]_PosterizeToggle("Posterize Toggle", Float) = 0 45 | _NormalIntensity("Normal Intensity", Range( 0 , 1)) = 0.5 46 | [Toggle(_)]_LightIntensityShadowPos("Light Intensity Shadow Pos", Float) = 0 47 | _VDirLight("V Dir Light", Vector) = (0,0.6,1,0) 48 | [Toggle(_)]_ColorShift("Color Shift", Float) = 0 49 | _H("H", Range( -1 , 1)) = 1 50 | _S("S", Range( -1 , 1)) = 0 51 | _V("V", Range( -1 , 1)) = 0 52 | [Toggle(_)]_ScanLineToggle("Scan Line Toggle", Float) = 0 53 | [NoScaleOffset]_ScanLineTex("Scan Line Mask", 2D) = "white" {} 54 | _ScanLineColor("Scan Line Color", Color) = (0,0.710345,1,0) 55 | _ScanLineColor2("Scan Line Color 2", Color) = (1,0,0,0) 56 | _ScanLineSpeed("Scan Line Speed", Float) = 1 57 | _ScanLineWidth("Scan Line Width", Range( 0 , 1)) = 1 58 | _ScanLinePosition("Scan Line Position", Float) = 0 59 | [Toggle(_)]_ScanLineColor2Toggle("Scan Line Color 2 Toggle", Float) = 0 60 | _Color2ChangeSpeed("Color 2 Change Speed", Float) = 1 61 | [NoScaleOffset]_EmissiveScrollTex("Emissive Scroll Tex", 2D) = "black" {} 62 | [NoScaleOffset]_EmissiveScrollMask("Emissive Scroll Mask", 2D) = "white" {} 63 | _EmissiveScrollColor("Emissive Scroll Color", Color) = (1,1,1,1) 64 | _EmissiveScrollSpeed("Emissive Scroll Speed", Vector) = (1,0,0,0) 65 | [Toggle(_)]_EmissiveScrollGradient("Emissive Scroll Gradient", Float) = 0 66 | _EmissiveScrollContrast("Emissive Scroll Contrast", Float) = 1 67 | _EmissiveScrollStrength("Emissive Scroll Strength", Float) = 0 68 | [Toggle(_)]_ForceEmissiveToggle("Force Emissive Toggle", Float) = 0 69 | _EmissiveScrollTiling("Emissive Scroll Tiling", Vector) = (1,1,0,0) 70 | [NoScaleOffset]_ParallaxEmission("Parallax Emission", 2D) = "black" {} 71 | _ParallaxTiling("Parallax Tiling", Vector) = (1,1,0,0) 72 | _ParallaxScale("Parallax Scale", Float) = 1 73 | [Toggle(_)]_ForceMatcap("Force Matcap", Float) = 0 74 | [Toggle(_)]_MatcapToggle("Matcap Toggle", Float) = 0 75 | [Toggle(_)]_EmissiveScrollToggle("Emissive Scroll Toggle", Float) = 0 76 | _ParallaxHight("Parallax Hight", Float) = 1 77 | _ParallaxMask("Parallax Mask", 2D) = "white" {} 78 | [Toggle(_)]_Unlit("Unlit", Float) = 0 79 | [Toggle(_)]_GrayscaleColor("Grayscale Color", Float) = 0 80 | [Enum(Both,0,Back,1,Front,2)]_OutlineToggleTest("Outline Toggle Test", Float) = 2 81 | [Enum(UnityEngine.Rendering.CullMode)]_CullMode("Cull Mode", Float) = 2 82 | [Enum(On,1,Off,0)]_ZWriteMode("Z Write Mode", Float) = 1 83 | [HideInInspector] _texcoord( "", 2D ) = "white" {} 84 | [HideInInspector] __dirty( "", Int ) = 1 85 | } 86 | 87 | SubShader 88 | { 89 | Pass 90 | { 91 | ColorMask 0 92 | ZWrite [_ZWriteMode] 93 | } 94 | 95 | Tags{ "RenderType" = "Transparent" "Queue" = "Transparent+0" "IgnoreProjector" = "True" "IsEmissive" = "true" } 96 | Cull [_CullMode] 97 | ZWrite [_ZWriteMode] 98 | Blend SrcAlpha OneMinusSrcAlpha , SrcAlpha DstAlpha 99 | 100 | CGINCLUDE 101 | #include "UnityPBSLighting.cginc" 102 | #include "UnityShaderVariables.cginc" 103 | #include "UnityStandardUtils.cginc" 104 | #include "UnityCG.cginc" 105 | #include "Lighting.cginc" 106 | #pragma target 3.0 107 | #pragma shader_feature _REFLECTIONTOGGLE_ON 108 | #ifdef UNITY_PASS_SHADOWCASTER 109 | #undef INTERNAL_DATA 110 | #undef WorldReflectionVector 111 | #undef WorldNormalVector 112 | #define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2; 113 | #define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))) 114 | #define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)) 115 | #endif 116 | struct Input 117 | { 118 | float2 uv_texcoord; 119 | float3 worldPos; 120 | float3 viewDir; 121 | INTERNAL_DATA 122 | float3 worldNormal; 123 | }; 124 | 125 | struct SurfaceOutputCustomLightingCustom 126 | { 127 | half3 Albedo; 128 | half3 Normal; 129 | half3 Emission; 130 | half Metallic; 131 | half Smoothness; 132 | half Occlusion; 133 | half Alpha; 134 | Input SurfInput; 135 | UnityGIInput GIData; 136 | }; 137 | 138 | uniform float _CullMode; 139 | uniform float _OutlineToggleTest; 140 | uniform float _ZWriteMode; 141 | uniform sampler2D _ScanLineTex; 142 | uniform float _ScanLinePosition; 143 | uniform float _ScanLineSpeed; 144 | uniform float _ScanLineWidth; 145 | uniform float4 _ScanLineColor; 146 | uniform float4 _ScanLineColor2; 147 | uniform float _Color2ChangeSpeed; 148 | uniform float _ScanLineColor2Toggle; 149 | uniform float _ScanLineToggle; 150 | uniform sampler2D _EmissionMap; 151 | uniform float4 _EmissionMap_ST; 152 | uniform float4 _EmissionColor; 153 | uniform sampler2D _EmissiveScrollTex; 154 | uniform float2 _EmissiveScrollTiling; 155 | uniform float2 _EmissiveScrollSpeed; 156 | uniform sampler2D _EmissiveScrollMask; 157 | uniform float4 _EmissiveScrollColor; 158 | uniform float _EmissiveScrollStrength; 159 | uniform float _EmissiveScrollContrast; 160 | uniform float _EmissiveScrollGradient; 161 | uniform float _EmissiveScrollToggle; 162 | uniform sampler2D _ParallaxEmission; 163 | uniform float2 _ParallaxTiling; 164 | uniform float _ParallaxHight; 165 | uniform float _ParallaxScale; 166 | uniform sampler2D _ParallaxMask; 167 | uniform float4 _ParallaxMask_ST; 168 | uniform sampler2D _MainTex; 169 | uniform float4 _MainTex_ST; 170 | uniform float4 _DiffuseColor; 171 | uniform float _RimLightNormal; 172 | uniform sampler2D _BumpMap; 173 | uniform float4 _BumpMap_ST; 174 | uniform float _RimLightPower; 175 | uniform float _RimLightContrast; 176 | uniform float4 _RimLightColor; 177 | uniform sampler2D _RimLightMask; 178 | uniform float _RimLightToggle; 179 | uniform sampler2D _Matcap; 180 | uniform float _MatcapCameraFix; 181 | uniform float4 _MatcapColor; 182 | uniform sampler2D _MatcapMask; 183 | uniform float _MatcapToggle; 184 | uniform float _GrayscaleColor; 185 | uniform float _H; 186 | uniform float _S; 187 | uniform float _V; 188 | uniform float _ColorShift; 189 | uniform float _ForceMatcap; 190 | uniform float _Smoothness; 191 | uniform float4 _ReflectionColor; 192 | uniform float _ReflectionIntensity; 193 | uniform float _FresnelScale; 194 | uniform float _FresnelPower; 195 | uniform float _FresnelToggle; 196 | uniform sampler2D _MatcapShadow; 197 | uniform float _MatcapShadowToggle; 198 | uniform float4 _MatcapShadowColor; 199 | uniform float _AmbientMinimum; 200 | uniform float _Unlit; 201 | uniform float4 _Shadow2Color; 202 | uniform float4 _Shadow1Color; 203 | uniform float _ShadowColorDarken; 204 | uniform float _Shadow1Place; 205 | uniform float _NormalIntensity; 206 | uniform float _ObjectShadow; 207 | uniform float _LightIntensityShadowPos; 208 | uniform float3 _VDirLight; 209 | uniform float _Shadow1Contrast; 210 | uniform float _PosterizeToggle; 211 | uniform float _Shadow2Place; 212 | uniform float _Shadow2Contrast; 213 | uniform float _Shadow2ContrastToggle; 214 | uniform sampler2D _ShadowMask; 215 | uniform float _HalfLambertToggle; 216 | uniform float _ForceEmissiveToggle; 217 | 218 | 219 | float3 HSVToRGB( float3 c ) 220 | { 221 | float4 K = float4( 1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0 ); 222 | float3 p = abs( frac( c.xxx + K.xyz ) * 6.0 - K.www ); 223 | return c.z * lerp( K.xxx, saturate( p - K.xxx ), c.y ); 224 | } 225 | 226 | 227 | float3 RGBToHSV(float3 c) 228 | { 229 | float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 230 | float4 p = lerp( float4( c.bg, K.wz ), float4( c.gb, K.xy ), step( c.b, c.g ) ); 231 | float4 q = lerp( float4( p.xyw, c.r ), float4( c.r, p.yzx ), step( p.x, c.r ) ); 232 | float d = q.x - min( q.w, q.y ); 233 | float e = 1.0e-10; 234 | return float3( abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); 235 | } 236 | 237 | float3 Function_ShadeSH9( ) 238 | { 239 | return ShadeSH9(half4(0,0,0,1)); 240 | } 241 | 242 | 243 | float3 BakedDirectionalLight746_g1( ) 244 | { 245 | return normalize(unity_SHAr.rgb *0.3+unity_SHAg.rgb*0.6+unity_SHAb.rgb*0.1); 246 | } 247 | 248 | 249 | inline half4 LightingStandardCustomLighting( inout SurfaceOutputCustomLightingCustom s, half3 viewDir, UnityGI gi ) 250 | { 251 | UnityGIInput data = s.GIData; 252 | Input i = s.SurfInput; 253 | half4 c = 0; 254 | #ifdef UNITY_PASS_FORWARDBASE 255 | float ase_lightAtten = data.atten; 256 | if( _LightColor0.a == 0) 257 | ase_lightAtten = 0; 258 | #else 259 | float3 ase_lightAttenRGB = gi.light.color / ( ( _LightColor0.rgb ) + 0.000001 ); 260 | float ase_lightAtten = max( max( ase_lightAttenRGB.r, ase_lightAttenRGB.g ), ase_lightAttenRGB.b ); 261 | #endif 262 | #if defined(HANDLE_SHADOWS_BLENDING_IN_GI) 263 | half bakedAtten = UnitySampleBakedOcclusion(data.lightmapUV.xy, data.worldPos); 264 | float zDist = dot(_WorldSpaceCameraPos - data.worldPos, UNITY_MATRIX_V[2].xyz); 265 | float fadeDist = UnityComputeShadowFadeDistance(data.worldPos, zDist); 266 | ase_lightAtten = UnityMixRealtimeAndBakedShadows(data.atten, bakedAtten, UnityComputeShadowFade(fadeDist)); 267 | #endif 268 | float2 uv_MainTex = i.uv_texcoord * _MainTex_ST.xy + _MainTex_ST.zw; 269 | float4 temp_output_84_0_g1 = ( tex2D( _MainTex, uv_MainTex ) * _DiffuseColor ); 270 | float2 uv_ScanLineTex526_g1 = i.uv_texcoord; 271 | float3 ase_worldPos = i.worldPos; 272 | float3 worldToObj529_g1 = mul( unity_WorldToObject, float4( ase_worldPos, 1 ) ).xyz; 273 | float4 lerpResult513_g1 = lerp( float4( 0,0,0,0 ) , tex2D( _ScanLineTex, uv_ScanLineTex526_g1 ) , ( ( worldToObj529_g1.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) > ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 0.0 : ( worldToObj529_g1.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) <= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) && ( worldToObj529_g1.y + _ScanLinePosition ) + (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) >= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 1.0 : 0.0 ) ); 274 | float mulTime583_g1 = _Time.y * _Color2ChangeSpeed; 275 | float4 lerpResult578_g1 = lerp( _ScanLineColor , _ScanLineColor2 , sin( mulTime583_g1 )); 276 | float4 lerpResult704_g1 = lerp( _ScanLineColor , lerpResult578_g1 , _ScanLineColor2Toggle); 277 | float4 lerpResult702_g1 = lerp( float4( 0,0,0,0 ) , ( lerpResult513_g1 * lerpResult704_g1 ) , _ScanLineToggle); 278 | float4 ScanLineEmission534_g1 = lerpResult702_g1; 279 | float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw; 280 | float2 uv_TexCoord485_g1 = i.uv_texcoord * _EmissiveScrollTiling + ( _Time.x * _EmissiveScrollSpeed ); 281 | float2 uv_EmissiveScrollMask466_g1 = i.uv_texcoord; 282 | float4 tex2DNode466_g1 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g1 ); 283 | float4 lerpResult468_g1 = lerp( float4( 0,0,0,0 ) , tex2D( _EmissiveScrollTex, uv_TexCoord485_g1 ) , tex2DNode466_g1); 284 | float2 ScrollDir469_g1 = _EmissiveScrollSpeed; 285 | float dotResult461_g1 = dot( i.uv_texcoord , ScrollDir469_g1 ); 286 | float4 lerpResult504_g1 = lerp( float4( 0,0,0,0 ) , ( _EmissiveScrollColor * ( 1.0 - saturate( ( ( ( ( ( cos( ( UNITY_PI * ( ( dotResult461_g1 + _Time.y ) * ScrollDir469_g1 ) ) ).x + 0.0 ) + _EmissiveScrollStrength ) - 0.5 ) * _EmissiveScrollContrast ) + 0.5 ) ) ) ) , tex2DNode466_g1); 287 | float4 lerpResult700_g1 = lerp( ( lerpResult468_g1 * _EmissiveScrollColor ) , lerpResult504_g1 , _EmissiveScrollGradient); 288 | float4 EmissiveScroll507_g1 = saturate( lerpResult700_g1 ); 289 | float4 lerpResult706_g1 = lerp( float4( 0,0,0,0 ) , EmissiveScroll507_g1 , _EmissiveScrollToggle); 290 | float2 uv_TexCoord574_g1 = i.uv_texcoord * _ParallaxTiling; 291 | float2 Offset573_g1 = ( ( _ParallaxHight - 1 ) * i.viewDir.xy * _ParallaxScale ) + uv_TexCoord574_g1; 292 | float2 uv_ParallaxMask = i.uv_texcoord * _ParallaxMask_ST.xy + _ParallaxMask_ST.zw; 293 | float4 lerpResult588_g1 = lerp( float4( 0,0,0,0 ) , tex2D( _ParallaxEmission, Offset573_g1 ) , tex2D( _ParallaxMask, uv_ParallaxMask )); 294 | float4 temp_output_452_0_g1 = ( ScanLineEmission534_g1 + ( tex2D( _EmissionMap, uv_EmissionMap ) * _EmissionColor ) + lerpResult706_g1 + lerpResult588_g1 ); 295 | float4 Emission679_g1 = temp_output_452_0_g1; 296 | float Opacity674_g1 = saturate( max( temp_output_84_0_g1.a , Emission679_g1.a ) ); 297 | float2 uv_BumpMap = i.uv_texcoord * _BumpMap_ST.xy + _BumpMap_ST.zw; 298 | float3 tex2DNode207_g1 = UnpackNormal( tex2D( _BumpMap, uv_BumpMap ) ); 299 | float3 ase_worldViewDir = normalize( UnityWorldSpaceViewDir( ase_worldPos ) ); 300 | float dotResult214_g1 = dot( (WorldNormalVector( i , lerp(float3( 0,0,1 ),tex2DNode207_g1,_RimLightNormal) )) , ase_worldViewDir ); 301 | float2 uv_RimLightMask225_g1 = i.uv_texcoord; 302 | float4 lerpResult230_g1 = lerp( ( ( ( ( ( abs( ( 1.0 - dotResult214_g1 ) ) * _RimLightPower ) - 0.5 ) * _RimLightContrast ) + 0.5 ) * _RimLightColor ) , float4( 0,0,0,0 ) , ( 1.0 - tex2D( _RimLightMask, uv_RimLightMask225_g1 ) )); 303 | float4 lerpResult708_g1 = lerp( float4( 0,0,0,0 ) , lerpResult230_g1 , _RimLightToggle); 304 | float4 RimLight233_g1 = saturate( lerpResult708_g1 ); 305 | float3 NormalMap208_g1 = tex2DNode207_g1; 306 | float3 temp_output_240_0_g1 = mul( UNITY_MATRIX_V, float4( (WorldNormalVector( i , NormalMap208_g1 )) , 0.0 ) ).xyz; 307 | float3 worldToViewDir556_g1 = mul( UNITY_MATRIX_V, float4( ase_worldViewDir, 0 ) ).xyz; 308 | float2 lerpResult737_g1 = lerp( (temp_output_240_0_g1).xy , (BlendNormals( ( worldToViewDir556_g1 * float3(-1,-1,1) ) , temp_output_240_0_g1 )).xy , _MatcapCameraFix); 309 | float2 temp_output_244_0_g1 = ( 0.5 + ( 0.5 * lerpResult737_g1 ) ); 310 | float4 blendOpSrc251_g1 = tex2D( _Matcap, temp_output_244_0_g1 ); 311 | float4 blendOpDest251_g1 = _MatcapColor; 312 | float2 uv_MatcapMask246_g1 = i.uv_texcoord; 313 | float4 tex2DNode246_g1 = tex2D( _MatcapMask, uv_MatcapMask246_g1 ); 314 | float4 lerpResult254_g1 = lerp( float4( 0,0,0,0 ) , ( saturate( ( blendOpSrc251_g1 * blendOpDest251_g1 ) )) , tex2DNode246_g1); 315 | float4 lerpResult709_g1 = lerp( float4( 0,0,0,0 ) , lerpResult254_g1 , _MatcapToggle); 316 | float4 DiffuseBase606_g1 = temp_output_84_0_g1; 317 | float grayscale611_g1 = dot(DiffuseBase606_g1.rgb, float3(0.299,0.587,0.114)); 318 | float4 temp_cast_6 = (grayscale611_g1).xxxx; 319 | float4 lerpResult745_g1 = lerp( DiffuseBase606_g1 , temp_cast_6 , _GrayscaleColor); 320 | float3 hsvTorgb595_g1 = RGBToHSV( lerpResult745_g1.rgb ); 321 | float3 hsvTorgb603_g1 = HSVToRGB( float3(( hsvTorgb595_g1.x + _H ),( hsvTorgb595_g1.y + _S ),( hsvTorgb595_g1.z + _V )) ); 322 | float4 lerpResult742_g1 = lerp( DiffuseBase606_g1 , float4( hsvTorgb603_g1 , 0.0 ) , _ColorShift); 323 | float4 Diffuse105_g1 = lerpResult742_g1; 324 | float4 lerpResult252_g1 = lerp( Diffuse105_g1 , float4( 0,0,0,0 ) , tex2DNode246_g1); 325 | float4 lerpResult713_g1 = lerp( Diffuse105_g1 , lerpResult252_g1 , _ForceMatcap); 326 | float4 Matcap260_g1 = ( lerpResult709_g1 + lerpResult713_g1 ); 327 | float3 indirectNormal281_g1 = WorldNormalVector( i , NormalMap208_g1 ); 328 | Unity_GlossyEnvironmentData g281_g1 = UnityGlossyEnvironmentSetup( _Smoothness, data.worldViewDir, indirectNormal281_g1, float3(0,0,0)); 329 | float3 indirectSpecular281_g1 = UnityGI_IndirectSpecular( data, 1.0, indirectNormal281_g1, g281_g1 ); 330 | float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) ); 331 | float3 ase_worldTangent = WorldNormalVector( i, float3( 1, 0, 0 ) ); 332 | float3 ase_worldBitangent = WorldNormalVector( i, float3( 0, 1, 0 ) ); 333 | float3x3 ase_tangentToWorldFast = float3x3(ase_worldTangent.x,ase_worldBitangent.x,ase_worldNormal.x,ase_worldTangent.y,ase_worldBitangent.y,ase_worldNormal.y,ase_worldTangent.z,ase_worldBitangent.z,ase_worldNormal.z); 334 | float fresnelNdotV275_g1 = dot( mul(ase_tangentToWorldFast,NormalMap208_g1), ase_worldViewDir ); 335 | float fresnelNode275_g1 = ( 0.0 + _FresnelScale * pow( 1.0 - fresnelNdotV275_g1, _FresnelPower ) ); 336 | float lerpResult699_g1 = lerp( 1.0 , fresnelNode275_g1 , _FresnelToggle); 337 | float4 lerpResult278_g1 = lerp( float4( 0,0,0,0 ) , ( ( float4( indirectSpecular281_g1 , 0.0 ) * _ReflectionColor ) * _ReflectionIntensity ) , saturate( lerpResult699_g1 )); 338 | #ifdef _REFLECTIONTOGGLE_ON 339 | float4 staticSwitch549_g1 = lerpResult278_g1; 340 | #else 341 | float4 staticSwitch549_g1 = float4( 0,0,0,0 ); 342 | #endif 343 | float4 Reflection280_g1 = saturate( staticSwitch549_g1 ); 344 | float4 lerpResult740_g1 = lerp( float4( 1,1,1,1 ) , tex2D( _MatcapShadow, temp_output_244_0_g1 ) , _MatcapShadowToggle); 345 | float4 blendOpSrc259_g1 = lerpResult740_g1; 346 | float4 blendOpDest259_g1 = _MatcapShadowColor; 347 | float4 MatcapShadow261_g1 = ( saturate( ( blendOpSrc259_g1 + blendOpDest259_g1 ) )); 348 | float3 localFunction_ShadeSH9411_g1 = Function_ShadeSH9(); 349 | #if defined(LIGHTMAP_ON) && ( UNITY_VERSION < 560 || ( defined(LIGHTMAP_SHADOW_MIXING) && !defined(SHADOWS_SHADOWMASK) && defined(SHADOWS_SCREEN) ) )//aselc 350 | float4 ase_lightColor = 0; 351 | #else //aselc 352 | float4 ase_lightColor = _LightColor0; 353 | #endif //aselc 354 | float4 ifLocalVar196_g1 = 0; 355 | if( _WorldSpaceLightPos0.w <= 0.0 ) 356 | ifLocalVar196_g1 = ase_lightColor; 357 | else 358 | ifLocalVar196_g1 = ( ase_lightAtten * ase_lightColor ); 359 | float4 temp_cast_11 = (_AmbientMinimum).xxxx; 360 | float4 clampResult650_g1 = clamp( ( float4( localFunction_ShadeSH9411_g1 , 0.0 ) + ifLocalVar196_g1 ) , temp_cast_11 , float4( 1,1,1,1 ) ); 361 | float4 temp_cast_12 = (1.0).xxxx; 362 | float4 lerpResult723_g1 = lerp( saturate( clampResult650_g1 ) , temp_cast_12 , _Unlit); 363 | float4 Lighting201_g1 = lerpResult723_g1; 364 | float4 temp_cast_13 = (1.0).xxxx; 365 | float4 blendOpSrc365_g1 = _Shadow1Color; 366 | float4 blendOpDest365_g1 = _Shadow2Color; 367 | float4 lerpResult733_g1 = lerp( _Shadow2Color , ( saturate( min( blendOpSrc365_g1 , blendOpDest365_g1 ) )) , _ShadowColorDarken); 368 | float3 lerpResult333_g1 = lerp( float3( 0,0,1 ) , NormalMap208_g1 , _NormalIntensity); 369 | float3 newWorldNormal334_g1 = (WorldNormalVector( i , lerpResult333_g1 )); 370 | #if defined(LIGHTMAP_ON) && UNITY_VERSION < 560 //aseld 371 | float3 ase_worldlightDir = 0; 372 | #else //aseld 373 | float3 ase_worldlightDir = normalize( UnityWorldSpaceLightDir( ase_worldPos ) ); 374 | #endif //aseld 375 | float dotResult5_g68 = dot( newWorldNormal334_g1 , ase_worldlightDir ); 376 | float temp_output_335_0_g1 = (dotResult5_g68*0.5 + 0.5); 377 | float lerpResult726_g1 = lerp( temp_output_335_0_g1 , saturate( ( temp_output_335_0_g1 * ase_lightAtten ) ) , _ObjectShadow); 378 | float grayscale544_g1 = (ase_lightColor.rgb.r + ase_lightColor.rgb.g + ase_lightColor.rgb.b) / 3; 379 | float3 localFunction_ShadeSH9567_g1 = Function_ShadeSH9(); 380 | float grayscale568_g1 = (localFunction_ShadeSH9567_g1.r + localFunction_ShadeSH9567_g1.g + localFunction_ShadeSH9567_g1.b) / 3; 381 | float blendOpSrc566_g1 = grayscale544_g1; 382 | float blendOpDest566_g1 = grayscale568_g1; 383 | float lerpResult729_g1 = lerp( lerpResult726_g1 , ( ( saturate( max( blendOpSrc566_g1, blendOpDest566_g1 ) )) * lerpResult726_g1 ) , _LightIntensityShadowPos); 384 | float3 localBakedDirectionalLight746_g1 = BakedDirectionalLight746_g1(); 385 | float dotResult441_g1 = dot( localBakedDirectionalLight746_g1 , newWorldNormal334_g1 ); 386 | float temp_output_538_0_g1 = ( ( dotResult441_g1 * 0.5 ) + 0.5 ); 387 | float ifLocalVar431_g1 = 0; 388 | if( ase_lightColor.a <= 0.0 ) 389 | ifLocalVar431_g1 = temp_output_538_0_g1; 390 | else 391 | ifLocalVar431_g1 = lerpResult729_g1; 392 | float3 VDirLight648_g1 = _VDirLight; 393 | float4 transform617_g1 = mul(unity_ObjectToWorld,float4( VDirLight648_g1 , 0.0 )); 394 | float3 lerpResult624_g1 = lerp( float3( 0,0,1 ) , NormalMap208_g1 , _NormalIntensity); 395 | float dotResult613_g1 = dot( transform617_g1 , float4( (WorldNormalVector( i , lerpResult624_g1 )) , 0.0 ) ); 396 | float FixedShadow627_g1 = ( ( dotResult613_g1 * 0.5 ) + 0.5 ); 397 | float lerpResult724_g1 = lerp( ifLocalVar431_g1 , FixedShadow627_g1 , _Unlit); 398 | float temp_output_351_0_g1 = ( ( ( ( _Shadow1Place + lerpResult724_g1 ) - 0.5 ) * _Shadow1Contrast ) + 0.5 ); 399 | float4 temp_cast_17 = (temp_output_351_0_g1).xxxx; 400 | float4 temp_cast_19 = (temp_output_351_0_g1).xxxx; 401 | float div354_g1=256.0/float((int)255.0); 402 | float4 posterize354_g1 = ( floor( temp_cast_19 * div354_g1 ) / div354_g1 ); 403 | float4 lerpResult720_g1 = lerp( temp_cast_17 , posterize354_g1 , _PosterizeToggle); 404 | float4 temp_cast_20 = (0.0).xxxx; 405 | float4 temp_cast_21 = (1.0).xxxx; 406 | float4 clampResult364_g1 = clamp( lerpResult720_g1 , temp_cast_20 , temp_cast_21 ); 407 | float4 lerpResult366_g1 = lerp( _Shadow1Color , float4( 1,1,1,0 ) , clampResult364_g1); 408 | float lerpResult732_g1 = lerp( _Shadow1Contrast , _Shadow2Contrast , _Shadow2ContrastToggle); 409 | float temp_output_353_0_g1 = ( ( ( ( _Shadow2Place + lerpResult724_g1 ) - 0.5 ) * lerpResult732_g1 ) + 0.5 ); 410 | float4 temp_cast_22 = (temp_output_353_0_g1).xxxx; 411 | float4 temp_cast_24 = (temp_output_353_0_g1).xxxx; 412 | float div356_g1=256.0/float((int)255.0); 413 | float4 posterize356_g1 = ( floor( temp_cast_24 * div356_g1 ) / div356_g1 ); 414 | float4 lerpResult721_g1 = lerp( temp_cast_22 , posterize356_g1 , _PosterizeToggle); 415 | float4 temp_cast_25 = (0.0).xxxx; 416 | float4 temp_cast_26 = (1.0).xxxx; 417 | float4 clampResult363_g1 = clamp( lerpResult721_g1 , temp_cast_25 , temp_cast_26 ); 418 | float4 lerpResult368_g1 = lerp( lerpResult733_g1 , lerpResult366_g1 , clampResult363_g1); 419 | float2 uv_ShadowMask369_g1 = i.uv_texcoord; 420 | float4 lerpResult372_g1 = lerp( float4( 1,1,1,1 ) , lerpResult368_g1 , tex2D( _ShadowMask, uv_ShadowMask369_g1 )); 421 | float4 lerpResult735_g1 = lerp( temp_cast_13 , lerpResult372_g1 , _HalfLambertToggle); 422 | float4 Shadow375_g1 = lerpResult735_g1; 423 | float4 EmissiveScrollMask508_g1 = tex2DNode466_g1; 424 | float4 lerpResult715_g1 = lerp( float4( 0,0,0,0 ) , EmissiveScrollMask508_g1 , _ForceEmissiveToggle); 425 | float4 lerpResult451_g1 = lerp( saturate( ( ( RimLight233_g1 + Matcap260_g1 + Reflection280_g1 ) * MatcapShadow261_g1 * Lighting201_g1 * Shadow375_g1 ) ) , float4( 0,0,0,0 ) , lerpResult715_g1); 426 | c.rgb = lerpResult451_g1.rgb; 427 | c.a = Opacity674_g1; 428 | return c; 429 | } 430 | 431 | inline void LightingStandardCustomLighting_GI( inout SurfaceOutputCustomLightingCustom s, UnityGIInput data, inout UnityGI gi ) 432 | { 433 | s.GIData = data; 434 | } 435 | 436 | void surf( Input i , inout SurfaceOutputCustomLightingCustom o ) 437 | { 438 | o.SurfInput = i; 439 | o.Normal = float3(0,0,1); 440 | float2 uv_ScanLineTex526_g1 = i.uv_texcoord; 441 | float3 ase_worldPos = i.worldPos; 442 | float3 worldToObj529_g1 = mul( unity_WorldToObject, float4( ase_worldPos, 1 ) ).xyz; 443 | float4 lerpResult513_g1 = lerp( float4( 0,0,0,0 ) , tex2D( _ScanLineTex, uv_ScanLineTex526_g1 ) , ( ( worldToObj529_g1.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) > ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 0.0 : ( worldToObj529_g1.y + _ScanLinePosition ) - (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) <= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) && ( worldToObj529_g1.y + _ScanLinePosition ) + (0.0 + (_ScanLineWidth - 0.0) * (0.1 - 0.0) / (1.0 - 0.0)) >= ( (0.0 + (frac( ( ( _Time.y / 3.0 ) * _ScanLineSpeed ) ) - 0.0) * (2.0 - 0.0) / (1.0 - 0.0)) - 1.0 ) ? 1.0 : 0.0 ) ); 444 | float mulTime583_g1 = _Time.y * _Color2ChangeSpeed; 445 | float4 lerpResult578_g1 = lerp( _ScanLineColor , _ScanLineColor2 , sin( mulTime583_g1 )); 446 | float4 lerpResult704_g1 = lerp( _ScanLineColor , lerpResult578_g1 , _ScanLineColor2Toggle); 447 | float4 lerpResult702_g1 = lerp( float4( 0,0,0,0 ) , ( lerpResult513_g1 * lerpResult704_g1 ) , _ScanLineToggle); 448 | float4 ScanLineEmission534_g1 = lerpResult702_g1; 449 | float2 uv_EmissionMap = i.uv_texcoord * _EmissionMap_ST.xy + _EmissionMap_ST.zw; 450 | float2 uv_TexCoord485_g1 = i.uv_texcoord * _EmissiveScrollTiling + ( _Time.x * _EmissiveScrollSpeed ); 451 | float2 uv_EmissiveScrollMask466_g1 = i.uv_texcoord; 452 | float4 tex2DNode466_g1 = tex2D( _EmissiveScrollMask, uv_EmissiveScrollMask466_g1 ); 453 | float4 lerpResult468_g1 = lerp( float4( 0,0,0,0 ) , tex2D( _EmissiveScrollTex, uv_TexCoord485_g1 ) , tex2DNode466_g1); 454 | float2 ScrollDir469_g1 = _EmissiveScrollSpeed; 455 | float dotResult461_g1 = dot( i.uv_texcoord , ScrollDir469_g1 ); 456 | float4 lerpResult504_g1 = lerp( float4( 0,0,0,0 ) , ( _EmissiveScrollColor * ( 1.0 - saturate( ( ( ( ( ( cos( ( UNITY_PI * ( ( dotResult461_g1 + _Time.y ) * ScrollDir469_g1 ) ) ).x + 0.0 ) + _EmissiveScrollStrength ) - 0.5 ) * _EmissiveScrollContrast ) + 0.5 ) ) ) ) , tex2DNode466_g1); 457 | float4 lerpResult700_g1 = lerp( ( lerpResult468_g1 * _EmissiveScrollColor ) , lerpResult504_g1 , _EmissiveScrollGradient); 458 | float4 EmissiveScroll507_g1 = saturate( lerpResult700_g1 ); 459 | float4 lerpResult706_g1 = lerp( float4( 0,0,0,0 ) , EmissiveScroll507_g1 , _EmissiveScrollToggle); 460 | float2 uv_TexCoord574_g1 = i.uv_texcoord * _ParallaxTiling; 461 | float2 Offset573_g1 = ( ( _ParallaxHight - 1 ) * i.viewDir.xy * _ParallaxScale ) + uv_TexCoord574_g1; 462 | float2 uv_ParallaxMask = i.uv_texcoord * _ParallaxMask_ST.xy + _ParallaxMask_ST.zw; 463 | float4 lerpResult588_g1 = lerp( float4( 0,0,0,0 ) , tex2D( _ParallaxEmission, Offset573_g1 ) , tex2D( _ParallaxMask, uv_ParallaxMask )); 464 | float4 temp_output_452_0_g1 = ( ScanLineEmission534_g1 + ( tex2D( _EmissionMap, uv_EmissionMap ) * _EmissionColor ) + lerpResult706_g1 + lerpResult588_g1 ); 465 | o.Emission = temp_output_452_0_g1.rgb; 466 | } 467 | 468 | ENDCG 469 | CGPROGRAM 470 | #pragma surface surf StandardCustomLighting keepalpha fullforwardshadows exclude_path:deferred alpha:fade 471 | 472 | ENDCG 473 | Pass 474 | { 475 | Name "ShadowCaster" 476 | Tags{ "LightMode" = "ShadowCaster" } 477 | ZWrite [_ZWriteMode] 478 | CGPROGRAM 479 | #pragma vertex vert 480 | #pragma fragment frag 481 | #pragma target 3.0 482 | #pragma multi_compile_shadowcaster 483 | #pragma multi_compile UNITY_PASS_SHADOWCASTER 484 | #pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2 485 | #include "HLSLSupport.cginc" 486 | #if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN ) 487 | #define CAN_SKIP_VPOS 488 | #endif 489 | #include "UnityCG.cginc" 490 | #include "Lighting.cginc" 491 | #include "UnityPBSLighting.cginc" 492 | sampler3D _DitherMaskLOD; 493 | struct v2f 494 | { 495 | V2F_SHADOW_CASTER; 496 | float2 customPack1 : TEXCOORD1; 497 | float4 tSpace0 : TEXCOORD2; 498 | float4 tSpace1 : TEXCOORD3; 499 | float4 tSpace2 : TEXCOORD4; 500 | UNITY_VERTEX_INPUT_INSTANCE_ID 501 | UNITY_VERTEX_OUTPUT_STEREO 502 | }; 503 | v2f vert( appdata_full v ) 504 | { 505 | v2f o; 506 | UNITY_SETUP_INSTANCE_ID( v ); 507 | UNITY_INITIALIZE_OUTPUT( v2f, o ); 508 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o ); 509 | UNITY_TRANSFER_INSTANCE_ID( v, o ); 510 | Input customInputData; 511 | float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz; 512 | half3 worldNormal = UnityObjectToWorldNormal( v.normal ); 513 | half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz ); 514 | half tangentSign = v.tangent.w * unity_WorldTransformParams.w; 515 | half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign; 516 | o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x ); 517 | o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y ); 518 | o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z ); 519 | o.customPack1.xy = customInputData.uv_texcoord; 520 | o.customPack1.xy = v.texcoord; 521 | TRANSFER_SHADOW_CASTER_NORMALOFFSET( o ) 522 | return o; 523 | } 524 | half4 frag( v2f IN 525 | #if !defined( CAN_SKIP_VPOS ) 526 | , UNITY_VPOS_TYPE vpos : VPOS 527 | #endif 528 | ) : SV_Target 529 | { 530 | UNITY_SETUP_INSTANCE_ID( IN ); 531 | Input surfIN; 532 | UNITY_INITIALIZE_OUTPUT( Input, surfIN ); 533 | surfIN.uv_texcoord = IN.customPack1.xy; 534 | float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w ); 535 | half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) ); 536 | surfIN.viewDir = IN.tSpace0.xyz * worldViewDir.x + IN.tSpace1.xyz * worldViewDir.y + IN.tSpace2.xyz * worldViewDir.z; 537 | surfIN.worldPos = worldPos; 538 | surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z ); 539 | surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz; 540 | surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz; 541 | surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz; 542 | SurfaceOutputCustomLightingCustom o; 543 | UNITY_INITIALIZE_OUTPUT( SurfaceOutputCustomLightingCustom, o ) 544 | surf( surfIN, o ); 545 | UnityGI gi; 546 | UNITY_INITIALIZE_OUTPUT( UnityGI, gi ); 547 | o.Alpha = LightingStandardCustomLighting( o, worldViewDir, gi ).a; 548 | #if defined( CAN_SKIP_VPOS ) 549 | float2 vpos = IN.pos; 550 | #endif 551 | half alphaRef = tex3D( _DitherMaskLOD, float3( vpos.xy * 0.25, o.Alpha * 0.9375 ) ).a; 552 | clip( alphaRef - 0.01 ); 553 | SHADOW_CASTER_FRAGMENT( IN ) 554 | } 555 | ENDCG 556 | } 557 | } 558 | Fallback "Diffuse" 559 | CustomEditor "RSInspector" 560 | } 561 | /*ASEBEGIN 562 | Version=17000 563 | 1927;12;1906;1020;1234.985;513.3445;1;True;False 564 | Node;AmplifyShaderEditor.CommentaryNode;46;-715.2408,-352.8545;Float;False;591.991;343.938;Properties;3;48;136;190;Miscellaneous;0.5514706,0.5514706,0.5514706,1;0;0 565 | Node;AmplifyShaderEditor.RangedFloatNode;48;-677.2408,-280.8546;Float;False;Property;_CullMode;Cull Mode;80;1;[Enum];Create;True;0;1;UnityEngine.Rendering.CullMode;True;0;2;0;0;0;0;1;FLOAT;0 566 | Node;AmplifyShaderEditor.RangedFloatNode;190;-406.2384,-282.7252;Float;False;Property;_OutlineToggleTest;Outline Toggle Test;79;1;[Enum];Create;True;3;Both;0;Back;1;Front;2;0;True;0;2;0;0;0;0;1;FLOAT;0 567 | Node;AmplifyShaderEditor.RangedFloatNode;136;-668.3272,-103.0733;Float;False;Property;_ZWriteMode;Z Write Mode;81;1;[Enum];Create;True;2;On;1;Off;0;0;True;0;1;0;0;0;0;1;FLOAT;0 568 | Node;AmplifyShaderEditor.FunctionNode;191;-512.7683,91.73801;Float;False;Reflex Shader Function;0;;1;f5d8f584674c8984ab029c8868eb5bf3;0;0;6;COLOR;186;FLOAT;265;COLOR;0;COLOR;402;FLOAT;403;COLOR;404 569 | Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;33.6957,-26.60386;Float;False;True;2;Float;RSInspector;0;0;CustomLighting;Reflex Shader 2/No Outline/Transparent;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;False;False;False;False;False;False;Back;0;True;136;0;False;-1;False;0;False;-1;0;False;-1;True;0;Custom;0.5;True;True;0;True;Custom;Transparent;Transparent;ForwardOnly;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;True;0;False;-1;False;0;False;-1;255;False;-1;255;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;0;False;-1;False;2;15;10;25;False;0.5;True;2;5;False;-1;10;False;-1;1;5;False;-1;7;False;-1;0;False;-1;0;False;-1;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;Relative;0;;-1;-1;-1;-1;0;False;0;0;True;48;-1;0;True;47;0;1;alpha:fade;0;False;0.1;False;-1;0;False;-1;15;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0 570 | WireConnection;0;2;191;186 571 | WireConnection;0;9;191;265 572 | WireConnection;0;13;191;0 573 | ASEEND*/ 574 | //CHKSM=417FADCCA3DA7407DE8DA7A4551EF0B9708173BF -------------------------------------------------------------------------------- /no_outline/Transparent no_outline.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7c2607431430f400f86b6fb4a454bede 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | --------------------------------------------------------------------------------