Unity3D 3.x рд╕рд░реНрдлреЗрд╕ рд╢реЗрдбреНрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп

рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдорд╛рдирдХ рд╢реЗрдб рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рдЫреВрдЯ рдЬрд╛рдПрдВрдЧреА, рдФрд░ рдлрд┐рд░ рд╕рд░реНрдлреЗрд╕ рд╢реЗрдбрд░реНрд╕ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖ рдЬрд╛рдПрдВрдЧреЗред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдирд┐рдпрдорд┐рдд рд╢реЗрдбреНрд╕ рдкрд░ рдПрдХ рдРрдб-рдСрди рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕рд░реНрдлреЗрд╕ рд╢реЗрдбрд░ рдореЗрдВ рдЖрдк рд╕рдорд╛рди Cg / HLSL рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛, рдЫрд╛рдпрд╛, рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрдереЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЦрд░реЛрдВрдЪ рд╕реЗ рдПрдХ shader рдмрдирд╛рдирд╛


рдпрд╣рд╛рдВ shader рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬрд╣рд╛рдВ рд╕реЗ рдореИрдВ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЯреБрдХрдбрд╝реЗ рд▓реЗ рдЬрд╛рдКрдВрдЧрд╛

рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ shader рдкрде рд╣реИ
Shader "AgasperShaders/TestShader" { 

рдЗрд╕ рд░рд╛рд╕реНрддреЗ рдкрд░, рд╡рд╣ рдирд┐рд░реАрдХреНрд╖рдХ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред

рдЧреБрдг

рдЕрдЧрд▓рд╛ рдЧреБрдг рд╣реИрдВ , рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рдЬреЛ рдЖрдк рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдПрдХ рдЪрд░ рдирд╛рдо, рд╡рд┐рд╡рд░рдг, рдкреНрд░рдХрд╛рд░ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реЛрддрд╛ рд╣реИред

 Properties { _Color ("Main Color", Color) = (1,1,1,1) _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1) _Shininess ("Shininess", Range (0.03, 1)) = 0.078125 _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {} _BumpMap ("Normalmap", 2D) = "bump" {} _Amount ("Extrusion Amount", Range(-1,1)) = 0.5 } 

рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░:

рдирд╛рдо ("рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо", рд╢реНрд░реЗрдгреА (рдиреНрдпреВрдирддрдо, рдЕрдзрд┐рдХрддрдо) = рд╕рдВрдЦреНрдпрд╛
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рдиреНрдпреВрдирддрдо рдлреНрд▓реЛрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд░реЗрдВрдЬ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рдпрд╣ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреА

рдирд╛рдо ("рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо", рд░рдВрдЧ) = (рд╕рдВрдЦреНрдпрд╛, рд╕рдВрдЦреНрдпрд╛, рд╕рдВрдЦреНрдпрд╛, рд╕рдВрдЦреНрдпрд╛)
рдорд╛рди рдкреНрд░рдХрд╛рд░ рд░рдВрдЧ рдХрд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 0 рд╕реЗ 1 рддрдХ RGBA рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд┐рд░реАрдХреНрд╖рдХ рд░рдВрдЧ рдмреАрдирдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛

рдирд╛рдо ("рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо", 2D) = "def_col" {рд╡рд┐рдХрд▓реНрдк}
рдмрдирд╛рд╡рдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдирд┐рд░реАрдХреНрд╖рдХ рдмрдирд╛рд╡рдЯ рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛

рдирд╛рдо ("рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо", Rect) = "def_col" {рд╡рд┐рдХрд▓реНрдк}
2 рдПрди рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдирд╛рд╡рдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдирд┐рд░реАрдХреНрд╖рдХ рдмрдирд╛рд╡рдЯ рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛

рдирд╛рдо ("рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо", рдШрди) = "def_col" {рд╡рд┐рдХрд▓реНрдк}
рдХреНрдпреВрдмреИрдк рдмрдирд╛рд╡рдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдирд┐рд░реАрдХреНрд╖рдХ рдмрдирд╛рд╡рдЯ рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛

рдирд╛рдо ("рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо", рдлреНрд▓реЛрдЯ) = рд╕рдВрдЦреНрдпрд╛
рдмрд╕ рдПрдХ рдлреНрд▓реЛрдЯ, рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рдпрд╣ рдПрдХ рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛

рдирд╛рдо ("рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо", рд╡реЗрдХреНрдЯрд░) = (рд╕рдВрдЦреНрдпрд╛, рд╕рдВрдЦреНрдпрд╛, рд╕рдВрдЦреНрдпрд╛, рд╕рдВрдЦреНрдпрд╛)
рд╕рджрд┐рд╢ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ

Rect, 2D рдФрд░ Cubemap рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди (def_col) рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛: "рд╕рдлреЗрдж", "рдХрд╛рд▓рд╛", "рдЧреНрд░реЗ", "рдЯрдХреНрдХрд░"ред рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрдирд╛рд╡рдЯ рдХреЗ рдЕрдВрджрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рд╕ рд░рдВрдЧ рдХрд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдБ рд╣рдо рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ:



Subshaders

рдЗрд╕рдХреЗ рдмрд╛рдж рд╕рдмрд╢рдбрд░ рд╣реИред рдЬрдм рдХреЛрдИ рдЗрдХрд╛рдИ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕ рд╢реИрдбрд░ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓реЗ рдЙрдкрдпреБрдХреНрдд SubShader рдХреА рдЦреЛрдЬ рдХрд░рддреА рд╣реИред рдпрджрд┐ рдХреЛрдИ SubShader рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рд╢реЗрдбрд░ рдореЙрдбрд▓ 3.0 рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдЫреЛрдбрд╝ рджреЗрдВред
рд╕рд░реНрдлреЗрд╕ рд╕рдмрд╢реИрдбрд░ рдХреЗ рдЕрдВрджрд░, рд╕рдмрд╢реИрдбрд░ рдЯреИрдЧ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рд╣реА рд╣реЛрддреЗ рд╣реИрдВред
RenderType = "Opaque" рдЯреИрдЧ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╡рд╕реНрддреБ рдЦреАрдВрдЪрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рдЯреИрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ ред

 SubShader { Tags { "RenderType" = "Opaque" } //code } 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рд╣реА

рднреВрддрд▓ рдХреЛрдб рдореЗрдВ, рдЖрдк рддреАрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЕрдзрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛ)

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдореЙрд░реНрдлрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдбрд┐рдлреНрдпреВрдЬрд╝ рдмрдореНрдкреНрдб рд╕реНрдкреЗрдХреНрдпреБрд▓рд░ рд╢реЗрдЕрд░ рд▓рд┐рдЦреЗрдВред рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдЧрдгрдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛; рд╣рдо рдорд╛рдирдХ BlinnPhong рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗред

 CGPROGRAM #pragma surface surf BlinnPhong vertex:vert 

CGPROGRAM рдПрдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ рд╣рдо Cg рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ ( ENDCG рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ)ред

рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдЬрд┐рд╕реЗ рд╣рдо рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

рдЕрдм рд╣рдо рдЙрди рдЪрд░реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

 sampler2D _MainTex; sampler2D _BumpMap; fixed4 _Color; half _Shininess; float _Amount; 

рдПрдХрддрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧреА рдХрд┐ рд╢реАрд░реНрд╖ рдкрд░ рдШреЛрд╖рд┐рдд shader рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдбреЗрдЯрд╛ рдЗрди рдЪрд░реЛрдВ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдирд╛рдо рджреЗрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╢реЗрдбрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВред

 void vert (inout appdata_full v) { v.vertex.xyz += v.normal * v.vertex.xyz * _Amount ; } 

рдФрд░ рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ shader рдХреЗ рд╢реАрд░реНрд╖ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдЯреЗрдХреНрд╕ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд▓реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдгрд╛ рдФрд░ shader рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдЧреБрдгрд╛рдВрдХ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдмреЗрд╢рдХ, рдХреБрдЫ рдмрдХрд╡рд╛рд╕ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд░рд╛рд╢рд┐ рд╕реНрд▓рд╛рдЗрдбрд░ рдХреЗ рд╕рд╛рде рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд┐рд░реВрдкрдг рдХреА рдбрд┐рдЧреНрд░реА рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:


рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдПрдХ рд╕реВрдЬрди рд╕реИрдирд┐рдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ ред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рднреА рд▓рдВрдмреЛрдВ рдХреЛ рдЙрдард╛рдпрд╛:

 v.vertex.xyz += v.normal * _Amount ; 


рдЫрд╡рд┐

рдФрд░ рдХреНрдпрд╛ рд╣реИ рдЕрдВрджрд░:

рдпрд╣рд╛рдБ рдЖрдк рд╢реАрд░реНрд╖ рдЖрд▓реЗрдЦреЛрдВ рдкрд░ рдкреВрд░рд╛ рд▓реЗрдЦ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

 struct Input { float2 uv_MainTex; float2 uv_BumpMap; }; 

рдЗрдирдкреБрдЯ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ, рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░ рдХреЗ рд▓рд┐рдП рд╢реЗрдбрд░ рд╕реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рд╕рддрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣рдордиреЗ рджреЛрдиреЛрдВ рдмрдирд╛рд╡рдЯреЛрдВ рдХреЗ рдпреВрд╡реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред рдЪрд░ рдХреЛ рдкрд╣рд▓реЗ рдпреВрд╡реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд▓рд┐рдП uv_TextureName рдФрд░ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП uv2_TextureName рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдк рдпрд╣рд╛рдВ рдмрддрд╛рдИ рдЧрдИ рдмрд╛рддреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рд╕рддрд╣ рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реА рд╣реИ:

 void surf (Input IN, inout SurfaceOutput o) { //     UV . fixed4 tex = tex2D(_MainTex, IN.uv_MainTex); //     o.Albedo = tex.rgb * _Color.rgb; //       o.Gloss = tex.rgb; //      o.Specular = _Shininess; //     o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap)); } 

рдЗрдирдкреБрдЯ рд╕рдВрд░рдЪрдирд╛ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдЖрдкрдХреЛ рд╕рд░рдлреЗрд╕рдСрдЙрдЯрдкреБрдЯ рд╕рдВрд░рдЪрдирд╛ рднрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрди рд░реВрдк рд╣реИрдВ:

 struct SurfaceOutput { half3 Albedo; //  () half3 Normal; //  half3 Emission; // (   ) half Specular; //""     (    (dot(viewDir, Normal)) half Gloss; //     half Alpha; //    (    "RenderType" = "Opaque") }; 


рд╣рдо рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде shader рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
 FallBack "Specular" 

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╢реЗрдбрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдорд╢реАрди рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕реНрдкреЗрдХреНрдпреБрд▓рд░ рд╢реЗрдбрд░ рдореЗрдВ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рд╕реЗ shader рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг

рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░реА:
http://unity3d.com/support/documentation/Components/SL-SurfaceShaders
http://unity3d.com/support/documentation/Components/SL-SurfaceShaderExamples.html
http://unity3d.com/support/documentation/Components/SL-SubShader
http://unity3d.com/support/documentation/Components/SL-SubshaderTags
http://unity3d.com/support/documentation/Components/SL-ShaderReplacement.html

Source: https://habr.com/ru/post/In144622/


All Articles