рдпрд╣ рдкреНрд░рднрд╛рд╡
рдкрд╛рд╡рд░рдкрдл рдЧрд░реНрд▓реНрд╕ рдХреЗ
рдПрдкрд┐рд╕реЛрдб рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛ред рдореИрдВ рдПрдХ рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рд░рдВрдЧ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд░рдВрдЧ рдХреЗ рдкреНрд░рд╕рд╛рд░ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди
рдЗрд╕реЗ рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреИрд╕реЗ
рд░рдВрдЧ рдкреЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ , рдФрд░ рди рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реАрди рдкрд░ рдлреНрд▓реИрдЯ рдмрд╛рд╣рд░ рдлреИрд▓рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдХрд╛рд░реНрдЯреВрди рдореЗрдВред
рдореИрдВрдиреЗ рдПрдХрддрд╛ рдЗрдВрдЬрди рдХреА рдирдИ
рд▓рд╛рдЗрдЯрд╡реЗрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдкреНрд░рднрд╛рд╡ рдкреИрджрд╛ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╕рднреА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдЕрдиреНрдп рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рдореИрдЯреНрд░рд┐рд╕ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдирдП рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕реНрдЯреИрдХ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдореИрдВ рдЗрд╕рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдиреНрдп рдореИрдиреБрдЕрд▓ рдореЗрдВ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ ред
рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдореЗрдВ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рдкреНрд░рднрд╛рд╡
рдмрд╕ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдПрдХ рджреГрд╢реНрдп рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдирдП рдпреВрдирд┐рдЯреА 2018 рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдореИрдВ
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдореИрдВрдиреЗ C # рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП PostProcessingEffectSettings рдФрд░ PostProcessEffectRenderer рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ рдмрдврд╝рд╛рдХрд░ рдЕрдкрдирд╛ рдкреНрд░рднрд╛рд╡ рд▓рд┐рдЦрд╛, рдЬрд┐рд╕рдХрд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб
рдпрд╣рд╛рдБ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рд╕реАрдкреАрдпреВ рдХреА рддрд░рдл (рд╕реА # рдХреЛрдб рдореЗрдВ) рдЗрди рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореИрдВрдиреЗ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдгреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдЬреЛрдбрд╝рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрд╛ рдХрд┐ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдХреЛрдб рдЕрдкрдиреЗ рд▓рд┐рдП рдмреЛрд▓рддрд╛ рд╣реИред
рдЖрдЗрдП shader рдХреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо shaderlab рдлрд╝рд╛рдЗрд▓, рдЗрдирдкреБрдЯ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕ рдФрд░ рд╡рд░реНрдЯреЗрдХреНрд╕ shader рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЖрдк
рдпрд╣рд╛рдВ рдЙрдирдХреЗ рд╕реЛрд░реНрд╕ рдХреЛрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреА рджреЗрдЦрднрд╛рд▓ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рд░рдВрдЧ рдХреЛ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдПрдХ рдЪрдордХ рдореВрд▓реНрдп рдореЗрдВ рдШрдЯрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХреА
рдЪрдордХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛
рд╣реИ ред рдпрд╣
рдХреИрдорд░рд╛ рдмрдирд╛рд╡рдЯ рдФрд░
рднрд╛рд░рд┐рдд рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж рдХреЛ рд▓реЗ рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рдордЧреНрд░ рд░рдВрдЧ рдЪрдордХ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдЪреИрдирд▓ рдХреЗ рдпреЛрдЧрджрд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
рд╣рдо рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рддреЗ рд╣реИрдВ? рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЕрджрд┐рд╢ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ:
dot(a, b) = a x * b x + a y * b y + a z * b z
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо
рд╡рдЬрди рджреНрд╡рд╛рд░рд╛
рд░рдВрдЧ рдореВрд▓реНрдп рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪреИрдирд▓ рдХреЛ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХрд▓ рдЕрджрд┐рд╢ рдорд╛рди рдореЗрдВ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЬрдм рдЖрд░рдЬреАрдмреА рд░рдВрдЧ рдХрд╛ рдЖрд░, рдЬреА рдФрд░ рдмреА рдЪреИрдирд▓реЛрдВ рдореЗрдВ рд╕рдорд╛рди рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд░рдВрдЧ рдЧреНрд░реЗ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ shader рдХреЛрдб рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
float4 fullColor = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.screenPos); float3 weight = float3(0.299, 0.587, 0.114); float luminance = dot(fullColor.rgb, weight); float3 greyscale = luminance.xxx; return float4(greyscale, 1.0);
рдпрджрд┐ рдмреЗрд╕ рд╢реЗрдбрд░ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреВрд░реА рд╕реНрдХреНрд░реАрди рдХреЛ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдореЗрдВ рд░рдВрдЧрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд░рдВрдЧ рдкреНрд░рднрд╛рд╡ рдкреНрд░рджрд╛рди рдХрд░рдирд╛
рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреНрд░рднрд╛рд╡ рд╣реИ,
рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╢реАрд░реНрд╖ рдЫрд╛рдпрд╛ рдореЗрдВ рджреГрд╢реНрдп
рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ ред рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рдХреЗ рдЪрд░рдг рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХрдорд╛рддреНрд░ рдЬрд╛рдирдХрд╛рд░реА
рд╣реИ рдЬреЛ рдХреИрдорд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЫрд╡рд┐ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирдореВрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЫрдВрдЯреЗ рд╣реБрдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рд╕реНрдерд╛рди рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд░рдВрдЧ рдкреНрд░рднрд╛рд╡ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдлреИрд▓реЗ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдлреНрд▓реИрдЯ рд╕реНрдХреНрд░реАрди рдкрд░ред
рджреГрд╢реНрдп рдХреЗ рдЬреНрдпрд╛рдорд┐рддрд┐ рдореЗрдВ рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓
рдХреЗ рд╡рд┐рд╢реНрд╡ рд╕реНрдерд╛рди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рджреБрдирд┐рдпрд╛ рдХреЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ
рд╕рдордиреНрд╡рд┐рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ
рдХреЗ рд▓рд┐рдП , рд╣рдореЗрдВ
рд╕рдордиреНрд╡рдп рд╕реНрдерд╛рди рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
рд╣реИ ред
рдЖрдорддреМрд░ рдкрд░, рдПрдХ рд╕рдордиреНрд╡рд┐рдд рд╕реНрдерд╛рди рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╕рдордиреНрд╡рдп рдЕрдВрддрд░рд┐рдХреНрд╖ A рд╕реЗ рдЕрдВрддрд░рд┐рдХреНрд╖ B. рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред A рд╕реЗ B рддрдХ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд░реВрдкрд╛рдВрддрд░рдг рдореИрдЯреНрд░рд┐рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реНрдерд╛рди A рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдХреНрд░рдордг рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗ:
рдХрд╛рдЯреЗ рдЧрдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (рдХреНрд▓рд┐рдк рд╕реНрдкреЗрд╕) рдХрд╛ рд╕реНрдерд╛рди ->
рджреГрд╢реНрдп рд╕реНрдерд╛рди (рджреГрд╢реНрдп рд╕реНрдерд╛рди) ->
рд╡рд┐рд╢реНрд╡ рд╕реНрдерд╛рди (рд╡рд┐рд╢реНрд╡ рд╕реНрдерд╛рди) ред рдпрд╣реА рд╣реИ, рд╣рдореЗрдВ рдХреНрд▓рд┐рдк-рдЯреВ-рд╡реНрдпреВ-рд╕реНрдкреЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рд╡реНрдпреВ-рдЯреВ-рд╡рд░реНрд▓реНрдб-рд╕реНрдкреЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐,
рдХрд╛рдЯреЗ рдЧрдП рд╕рдордиреНрд╡рд┐рдд рд╕реНрдерд╛рди рдХреЗ
рдПрдХрддрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ z рдорд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдЧрд╣рд░рд╛рдИ, рдпрд╛ рдХреИрдорд░реЗ рдХреА рджреВрд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдЗрд╕ рдорд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЯреНрд░рдВрдХрд┐рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕реНрдерд╛рди рд╕реЗ рдкреНрд░рдЬрд╛рддрд┐ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЬрд╛рдирд╛ рд╣реИред рдЗрд╕ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ!
рдЧрд╣рд░рд╛рдИ рдмрдлрд░ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдпрджрд┐ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдпрд╣
рд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ рдПрдХ рдмрдирд╛рд╡рдЯ рдЦреАрдВрдЪрддреА рд╣реИ
рдЬреЛ z рдорд╛рдиреЛрдВ рдХреЛ
рдПрдХ рдЧрд╣рд░рд╛рдИ рдмрдлрд░ рдирд╛рдордХ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд
рдХрд░рддреА рд╣реИ ред рд╣рдо рдЗрд╕ рдмрдлрд░ рдХреЛ рд╣рдорд╛рд░реЗ рд╕рдордиреНрд╡рд┐рдд рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рд▓рд╛рдкрддрд╛
рдЬрд╝ рдорд╛рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдореВрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐
рдЧрд╣рд░рд╛рдИ рдмрдлрд╝рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдВрд╕реНрдкреЗрдХреНрдЯрд░ рдореЗрдВ рдХреИрдорд░реЗ рдХреЗ "рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдЬреЛрдбрд╝реЗрдВ" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ "рдЧрд╣рд░рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ" рдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЧрдИ рд╣реИред рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреИрдорд░рд╛ рдХреЗ рд▓рд┐рдП Allow MSAA рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд╖рдо рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреЛ рдЬрд╛рдБрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИ рдпрджрд┐ рдЧрд╣рд░рд╛рдИ рдмрдлрд╝рд░ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ
рдлрд╝реНрд░реЗрдо рдбреАрдмрдЧрд░ рдореЗрдВ рдЖрдкрдХреЛ
"рдЧрд╣рд░рд╛рдИ рдкреНрд░реАрдкрд╛рд╕" рдЪрд░рдг рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
Hlsl рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ _CameraDepthTexture рдирдореВрдирд╛ рдмрдирд╛рдПрдБ
TEXTURE2D_SAMPLER2D(_CameraDepthTexture, sampler_CameraDepthTexture);
рдЕрдм GetWorldFromViewPosition рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЕрдм рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ
рдЧрд╣рд░рд╛рдИ рдмрдлрд╝рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред (рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕реЗ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕реНрдерд╛рди рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗред)
float3 GetWorldFromViewPosition (VertexOutput i) { float z = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, sampler_CameraDepthTexture, i.screenPos).r; return z.xxx; }
рдЯреБрдХрдбрд╝рд╛ shader рдореЗрдВ, рдЧрд╣рд░рд╛рдИ рдмрдирд╛рд╡рдЯ рдирдореВрдиреЗ рдХреЗ рдореВрд▓реНрдп рдЖрдХрд░реНрд╖рд┐рддред
float3 depth = GetWorldFromViewPosition(i); return float4(depth, 1.0);
рдпрд╣ рдореЗрд░рд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдЬрдм рджреГрд╢реНрдп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкрд╣рд╛рдбрд╝реА рдореИрджрд╛рди рд╣реИ (рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдФрд░ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреЗрдбрд╝реЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛)ред рдЖрдкрдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рди рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмреНрд▓реИрдХ рдПрдВрдб рд╡реНрд╣рд╛рдЗрдЯ рдорд╛рди рдЬреНрдпрд╛рдорд┐рддрд┐ рд╕реЗ рдХреИрдорд░реЗ рдХреА рджреВрд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдХреБрдЫ рдХрджрдо рдЙрдард╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреИрдорд░реЗ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реИред
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреИрдорд░реЗ рдореЗрдВ MSAA рд╕рдХреНрд╖рдо рд╣реИред
- рдХреИрдорд░реЗ рдХреЗ рдкрд╛рд╕ рдФрд░ рджреВрд░ рд╡рд┐рдорд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЬрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдмрдлрд░ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдПрдХ рдЧрд╣рд░рд╛рдИ рдкрд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╢реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдЧрд╣рд░рд╛рдИ рдмрдлрд╝рд░ рдкрд░ рдЖ рдЬрд╛рддрд╛ рд╣реИред LWRP рдореЗрдВ рд╕рднреА рдорд╛рдирдХ рд╢реЗрдбреНрд╕ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЕрдм рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рдлрдВрд╕реЗ рд╣реБрдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ
рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдЪрд▓реЛ
рдкреНрд░рдЬрд╛рддрд┐рдпреЛрдВ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдФрд░ рдлрд┐рд░
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрди рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрд╕рдЖрд░рдкреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡реЗ рдпреВрдирд┐рдЯреА рдЗрдВрдЬрди рдХреЗ C # рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ
ColorSpreadRenderer рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реЗрдВрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╢реЗрдбрд░ рдореЗрдВ рдбрд╛рд▓рд╛:
sheet.properties.SetMatrix("unity_ViewToWorldMatrix", context.camera.cameraToWorldMatrix); sheet.properties.SetMatrix("unity_InverseProjectionMatrix", projectionMatrix.inverse);
рдЕрдм рдЕрдкрдиреЗ GetWorldFromViewPosition рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ
InverseProjectionMatrix рджреНрд╡рд╛рд░рд╛ рдЫрдВрдЯрдиреА рд╕рдордиреНрд╡рд┐рдд рд╕реНрдерд╛рди рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЧреБрдгрд╛ рдХрд░рдХреЗ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдореЗрдВ рд╕реНрдХреНрд░реАрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдФрд░ рдЬрд╛рджреВ-рдЯреЛрдиреЗ рд╡рд╛рд▓реЗ рдЬрд╛рджреВ рдХрд░рдиреЗ рдХреА рднреА рдЬрд░реВрд░рдд рд╣реИ, рдЬреЛ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдХрд┐ рдПрдХрддрд╛ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдЫрдВрдЯреЗ рд╣реБрдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред
рдЕрдВрдд рдореЗрдВ, рд╣рдо
ViewToWorldMatrix рджреНрд╡рд╛рд░рд╛ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЛ
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЧреБрдгрд╛ рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ред
float3 GetWorldFromViewPosition (VertexOutput i) {
рдЪрд▓рд┐рдП рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╕рд╣реА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ
рд╢реЗрдбрд░ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрддрд╛
рд╣реИ ; рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдЧрдгрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдЧрдгрдирд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╢реБрджреНрдзрддрд╛ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреЛрд╕реНрдЯ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ рдФрд░
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░реАрдХреНрд╖рдг shader рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдВред рджреГрд╢реНрдп рдореЗрдВ рдкреГрдереНрд╡реА рдХреА рд╕рддрд╣ рдкрд░ рд╢реИрдбрд░ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░рд╛ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд┐рд╢реНрд╡ рд╕реНрдерд╛рди рдореЗрдВ рдорд╛рди 1.0 рд╕реЗ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ рдХрд┐ рдпреЗ рд░рдВрдЧ рдХрд┐рд╕реА рднреА рдЕрд░реНрде рдореЗрдВ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо "рд╕рд╣реА" рдФрд░ "рдЧрдгрдирд╛" рдЙрддреНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИрдВред) рдЕрдЧрд▓рд╛, рдЪрд▓реЛ рдкрд░реАрдХреНрд╖рдг рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд╛рдзрд╛рд░рдг рд╕рд╛рдордЧреНрд░реА рд╣реИ (рдФрд░ рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреА рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рд╣реИ), рдФрд░ рдлрд┐рд░ рдмрд╛рдж рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рднрд╛рд╡ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВред рдореЗрд░реЗ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдЯреЗрд╕реНрдЯ рд╢реИрдбрд░ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЕрд░реНрдерд╛рддреН, рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреА рдЧрдгрдирд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИ!
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдПрдХ рд╡реГрддреНрдд рдЦреАрдВрдЪрдирд╛
рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рд╡рд┐рд╢реНрд╡ рд╕реНрдерд╛рди рд╣реИ , рддреЛ рд╣рдо рджреГрд╢реНрдп рдореЗрдВ рд░рдВрдЧ рдХрд╛ рдПрдХ рд╡реГрддреНрдд рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ! рд╣рдореЗрдВ
рддреНрд░рд┐рдЬреНрдпрд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рдкреНрд░рднрд╛рд╡ рд░рдВрдЧ рдЦреАрдВрдЪреЗрдЧрд╛ред рдмрд╛рд╣рд░, рдкреНрд░рднрд╛рд╡ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдореЗрдВ рдЪрд┐рддреНрд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ред рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рднрд╛рд╡
рддреНрд░рд┐рдЬреНрдпрд╛ (
_MaxSize ) рдФрд░ рд╕рд░реНрдХрд▓ рдХреЗ рдХреЗрдВрджреНрд░ (
_enter ) рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрди рдорд╛рдиреЛрдВ рдХреЛ C #
ColorSpread рд╡рд░реНрдЧ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рд╡реЗ рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВред рдЪрд▓рд┐рдП рдпрд╣
рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреЗ рд╣реИрдВ
рдХрд┐ рд╡рд░реНрддрдорд╛рди рдкрд┐рдХреНрд╕реЗрд▓ рд╕рд░реНрдХрд▓ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ
float4 Frag(VertexOutput i) : SV_Target { float3 worldPos = GetWorldFromViewPosition(i);
рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рд░рдВрдЧ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдПрдХ
рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рдЕрдВрджрд░
рд╣реИ ред рдпрд╣ рдЖрдзрд╛рд░ рдкреНрд░рднрд╛рд╡ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ!
рд╡рд┐рд╢реЗрд╖ рдкреНрд░рднрд╛рд╡ рдЬреЛрдбрд╝рдирд╛
рдореИрдВ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рддрдХрдиреАрдХреЛрдВ рдХреЛ рджреЗрдЦреВрдВрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реЗ рдореИрджрд╛рди рдореЗрдВ рд░рдВрдЧ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрд╣рд▓реЗ рд╣реА рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЦреБрдж рдХреЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд▓реЗрдВрдЧреЗред
рд╕рд░реНрдХрд▓ рдЗрдЬрд╝рд╛рдлрд╝рд╛ рдПрдиреАрдореЗрд╢рди
рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рднрд╛рд╡ рдкреВрд░реЗ рд╡рд┐рд╢реНрд╡ рдореЗрдВ рдлреИрд▓реЗ, рдЬреИрд╕реЗ рдХрд┐ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдордп рдХреЗ рдЖрдзрд╛рд░ рдкрд░
рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
_StartTime рдЙрд╕ рд╕рдордп рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╕рд░реНрдХрд▓ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬреЛ рдЖрдкрдХреЛ рд╕рд░реНрдХрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдкрд░ рдХрд╣реАрдВ рднреА рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рд╛рд░рдВрдн рд╕рдордп рдЙрд╕ рд╕рдордп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬрдм рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
_GrowthSpeed тАЛтАЛрд╕рд░реНрдХрд▓ рдмрдврд╝рд╛рдиреЗ рдХреА рдЧрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рдореЗрдВ
рдкреНрд░рднрд╛рд╡ рдХреА рдмрдврд╝рддреА
рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рджреВрд░реА рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд░реА рдХреА рдЬрд╛рдВрдЪ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рди рдХрд┐ _MaxSize рдХреЗ рд╕рд╛рдеред
рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╢реЛрд░ рдХреА рддреНрд░рд┐рдЬреНрдпрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛
рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдкреНрд░рднрд╛рд╡ рд░рдВрдЧ рдХреЗ рдзрдмреНрдмреЗ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╣реЛ, рди рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдмрдврд╝рддреЗ рд╣реБрдП рдЪрдХреНрд░ рдХреЗ рд░реВрдк рдореЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓реЛ
рдкреНрд░рднрд╛рд╡ рдХреЗ рддреНрд░рд┐рдЬреНрдпрд╛ рдкрд░ рд╢реЛрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡рд┐рддрд░рдг рдЕрд╕рдорд╛рди рд╣реЛред
рдкрд╣рд▓реЗ рд╣рдореЗрдВ
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдмрдирд╛рд╡рдЯ рдХрд╛ рдирдореВрдирд╛ рд▓реЗрдирд╛ рд╣реЛрдЧрд╛ред I.screenPos рдХреЗ рдпреВрд╡реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ
рд╕реНрдХреНрд░реАрди рд╕реНрдкреЗрд╕ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рд╣рдо рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирдореВрдирд╛ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдЖрдХрд╛рд░ рдХреИрдорд░рд╛ рдХреЗ рд╕рд╛рде рдЪрд▓реЗрдЧрд╛; рддреЛ рдЪрд▓реЛ
рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдореИрдВрдиреЗ
рд╢реЛрд░ рдмрдирд╛рд╡рдЯ рдХреЗ рдирдореВрдиреЗ рдХреЗ
рдкреИрдорд╛рдиреЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
_NoiseTexScale рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╢реНрд╡ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИред
рдЕрдм рдЪрд▓реЛ рд╢реЛрд░ рдмрдирд╛рд╡рдЯ рдХрд╛ рдирдореВрдирд╛ рд▓реЗрдВ рдФрд░ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рднрд╛рд╡ рдХреА рддреНрд░рд┐рдЬреНрдпрд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдореИрдВрдиреЗ рд╢реЛрд░ рдЖрдХрд╛рд░ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП _NoiseSize рд╕реНрдХреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдпрд╣рд╛рдБ рдХреБрдЫ рдЯреНрд╡реАрдХрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдХреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрддреЗ рд╣реИрдВ:
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ
рдЖрдк рдореЗрд░реЗ
рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдкрдбреЗрдЯ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░
рдЯреНрд╡рд┐рдЪ рдкрд░ рдореИрдВ рдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯреНрд░реАрдо рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реВрдВ! (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд╕рдордп-рд╕рдордп рдкрд░ рдЦреЗрд▓реЛрдВ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдЖрдк рдореБрдЭреЗ рдореЗрд░реЗ рдкрдЬрд╛рдореЗ рдореЗрдВ рдмреИрдарддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рдВрдЧрдбрдо рд╕реАрдЯ 3 рдЦреЗрд▓рддреЗ рд╣реИрдВ рддреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рди рд╣реЛрдВред)
рдзрдиреНрдпрд╡рд╛рдж: