Advertisement
SiroKuro

Untitled

Oct 21st, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.47 KB | None | 0 0
  1. /*
  2. * The MIT License
  3. *
  4. * Copyright 2018 whiteflare.
  5. *
  6. * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
  7. * to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8. * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
  9. *
  10. * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
  11. *
  12. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  13. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  14. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  15. * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  16. */
  17. Shader "UnlitWF/WF_MatcapShadows_Transparent3Pass" {
  18.  
  19. /*
  20. * authors:
  21. * ver:2018/09/25 whiteflare,
  22. */
  23.  
  24. Properties {
  25. // 基本
  26. [Header(Base)]
  27. _MainTex ("Main Texture", 2D) = "white" {}
  28. _SolidColor ("Solid Color", Color) = (0, 0, 0, 0)
  29. [Toggle(_GL_ENABLE)]
  30. _GL_Enable ("Anti-Glare", Float) = 0
  31.  
  32. // Alpha
  33. [Header(Transparent Alpha)]
  34. [KeywordEnum(MAIN_TEX_ALPHA,MASK_TEX_RED,MASK_TEX_ALPHA)]
  35. _AL_SOURCE ("[AL] Alpha Source", Float) = 0
  36. [NoScaleOffset]
  37. _AL_MaskTex ("[AL] Alpha Mask Texture", 2D) = "white" {}
  38. _AL_Power ("[AL] Power", Range(0, 2)) = 1.0
  39. _AL_CutOff ("[AL] Cutoff Threshold", Range(0, 1)) = 0.9
  40. [Enum(OFF,0,ON,1)]
  41. _AL_ZWrite ("[AL] ZWrite", int) = 0
  42.  
  43. // 法線マップ
  44. [Header(NormalMap)]
  45. [Toggle(_NM_ENABLE)]
  46. _NM_Enable ("[NM] Enable", Float) = 0
  47. [NoScaleOffset]
  48. _BumpMap ("[NM] NormalMap Texture", 2D) = "bump" {}
  49. _NM_Power ("[NM] Shadow Power", Range(0, 1)) = 0.25
  50.  
  51. // Matcapハイライト
  52. [Header(HighLight and Shadow Matcap)]
  53. [Toggle(_HL_ENABLE)]
  54. _HL_Enable ("[HL] Enable", Float) = 0
  55. [NoScaleOffset]
  56. _HL_MatcapTex ("[HL] Matcap Sampler", 2D) = "black" {}
  57. _HL_MedianColor ("[HL] Median Color", Color) = (0.5, 0.5, 0.5, 1)
  58. _HL_Range ("[HL] Matcap Range (Tweak)", Range(0, 2)) = 1
  59. _HL_Power ("[HL] Power", Range(0, 2)) = 1
  60. [NoScaleOffset]
  61. _HL_MaskTex ("[HL] Mask Texture", 2D) = "white" {}
  62.  
  63. // Overlay Texture
  64. [Header(Overlay Texture)]
  65. [Toggle(_OL_ENABLE)]
  66. _OL_Enable ("[OL] Enable", Float) = 0
  67. _OL_OverlayTex ("[OL] Texture", 2D) = "white" {}
  68. [KeywordEnum(ALPHA,ADD,MUL)]
  69. _OL_BLENDTYPE ("[OL] Blend Type", Float) = 0
  70. _OL_Power ("[OL] Blend Power", Range(0, 1)) = 1
  71. _OL_Scroll_U ("[OL] U Scroll", Float) = 0
  72. _OL_Scroll_V ("[OL] V Scroll", Float) = 0
  73.  
  74. // EmissiveScroll
  75. [Header(Emissive Scroll)]
  76. [Toggle(_ES_ENABLE)]
  77. _ES_Enable ("[ES] Enable", Float) = 0
  78. [HDR]
  79. _ES_Color ("[ES] Emissive Color", Color) = (1, 1, 1, 1)
  80. [NoScaleOffset]
  81. _ES_MaskTex ("[ES] Mask Texture", 2D) = "white" {}
  82. _ES_Direction ("[ES] Direction", Vector) = (0, -2, 0, 0)
  83. _ES_LevelOffset ("[ES] LevelOffset", Range(-1, 1)) = 0
  84. _ES_Sharpness ("[ES] Sharpness", Range(0, 4)) = 2
  85. _ES_Speed ("[ES] ScrollSpeed", Range(0, 8)) = 1
  86. }
  87.  
  88. SubShader {
  89. Tags {
  90. "RenderType" = "Transparent"
  91. "Queue" = "AlphaTest"
  92. "LightMode" = "ForwardBase"
  93. "IgnoreProjector" = "True"
  94. "DisableBatching" = "True"
  95. }
  96. LOD 100
  97.  
  98. Pass {
  99. Cull OFF
  100. Blend Off
  101.  
  102. CGPROGRAM
  103.  
  104. #pragma vertex vert
  105. #pragma fragment frag_cutoff
  106.  
  107. #pragma target 3.0
  108. #pragma shader_feature _GL_ENABLE
  109. #pragma shader_feature _AL_SOURCE_MAIN_TEX_ALPHA _AL_SOURCE_MASK_TEX_RED _AL_SOURCE_MASK_TEX_ALPHA
  110. #pragma shader_feature _NM_ENABLE
  111. #pragma shader_feature _HL_ENABLE
  112. #pragma shader_feature _OL_ENABLE
  113. #pragma shader_feature _OL_BLENDTYPE_ALPHA _OL_BLENDTYPE_ADD _OL_BLENDTYPE_MUL
  114. #pragma shader_feature _ES_ENABLE
  115. #pragma multi_compile_fwdbase
  116. #pragma multi_compile_fog
  117.  
  118. #include "UnityCG.cginc"
  119. #include "Lighting.cginc"
  120. #include "WF_MatcapShadows.cginc"
  121.  
  122. ENDCG
  123. }
  124.  
  125. Tags {
  126. "RenderType" = "Transparent"
  127. "Queue" = "Transparent"
  128. "LightMode" = "ForwardBase"
  129. "IgnoreProjector" = "True"
  130. "DisableBatching" = "True"
  131. }
  132.  
  133. Pass {
  134. Cull FRONT
  135. Blend SrcAlpha OneMinusSrcAlpha
  136.  
  137. CGPROGRAM
  138.  
  139. #pragma vertex vert
  140. #pragma fragment frag_clip
  141.  
  142. #pragma target 3.0
  143. #pragma shader_feature _GL_ENABLE
  144. #pragma shader_feature _AL_SOURCE_MAIN_TEX_ALPHA _AL_SOURCE_MASK_TEX_RED _AL_SOURCE_MASK_TEX_ALPHA
  145. #pragma shader_feature _NM_ENABLE
  146. #pragma shader_feature _HL_ENABLE
  147. #pragma shader_feature _OL_ENABLE
  148. #pragma shader_feature _OL_BLENDTYPE_ALPHA _OL_BLENDTYPE_ADD _OL_BLENDTYPE_MUL
  149. #pragma shader_feature _ES_ENABLE
  150. #pragma multi_compile_fwdbase
  151. #pragma multi_compile_fog
  152.  
  153. #include "UnityCG.cginc"
  154. #include "Lighting.cginc"
  155. #include "WF_MatcapShadows.cginc"
  156.  
  157. fixed4 frag_clip(v2f i, float facing : VFACE) : SV_Target {
  158. float4 color = frag_baseonly(i);
  159. clip(_AL_CutOff - color.a);
  160. return color;
  161. }
  162.  
  163. ENDCG
  164. }
  165.  
  166. Pass {
  167. Cull BACK
  168. Blend SrcAlpha OneMinusSrcAlpha
  169.  
  170. CGPROGRAM
  171.  
  172. #pragma vertex vert
  173. #pragma fragment frag_clip
  174.  
  175. #pragma target 3.0
  176. #pragma shader_feature _GL_ENABLE
  177. #pragma shader_feature _AL_SOURCE_MAIN_TEX_ALPHA _AL_SOURCE_MASK_TEX_RED _AL_SOURCE_MASK_TEX_ALPHA
  178. #pragma shader_feature _NM_ENABLE
  179. #pragma shader_feature _HL_ENABLE
  180. #pragma shader_feature _OL_ENABLE
  181. #pragma shader_feature _OL_BLENDTYPE_ALPHA _OL_BLENDTYPE_ADD _OL_BLENDTYPE_MUL
  182. #pragma shader_feature _ES_ENABLE
  183. #pragma multi_compile_fwdbase
  184. #pragma multi_compile_fog
  185.  
  186. #include "UnityCG.cginc"
  187. #include "Lighting.cginc"
  188. #include "WF_MatcapShadows.cginc"
  189.  
  190. fixed4 frag_clip(v2f i, float facing : VFACE) : SV_Target {
  191. float4 color = frag(i, facing);
  192. clip(_AL_CutOff - color.a);
  193. return color;
  194. }
  195.  
  196. ENDCG
  197. }
  198. }
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement