рд╢реЗрдбрд░ рдЬрд╛рджреВ рдирд╣реАрдВ рд╣реИред рдПрдХрддрд╛ рдореЗрдВ рд▓реЗрдЦрдиред рдкрд░рд┐рдЪрдп

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдореЗрд░рд╛ рдирд╛рдо рдЧреНрд░рд┐рдЧрд░реА рдбрд┐рдпрд╛рдбрд┐рдЪреЗрдВрдХреЛ рд╣реИ, рдФрд░ рдореИрдВ рдлреЙрдХреНрд╕рд╕рд╛рдЗ рд╕реНрдЯреВрдбрд┐рдпреЛрдЬ рдХрд╛ рд╕рдВрд╕реНрдерд╛рдкрдХ рдФрд░ рд╕реАрдЯреАрдУ рд╣реВрдВред рдЖрдЬ рдореИрдВ shaders рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдпрджрд┐ рдЖрдк рд╢рд╛рдВрдд рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдпрд╛ рдПрдЖрд░ / рд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╢реЗрдбрд░реНрд╕ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛) рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╢реЗрдбреНрд╕ рдЬрд╛рджреВ рд╣реИрдВред рдХрд┐ рдЙрди рдкрд░ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдиреНрдпреВрдирддрдо, рд╡рд┐рдЬреНрдЮрд╛рди рдХреЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рдВ, рдЙрдирдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╢реЗрдбреНрд╕ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЧреНрд░рд╛рд╣рдХ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЫрд╛рдпрд╛ рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдордЭрдирд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреЗ рд╕рд╛рд░ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реИ, рддрд╛рдХрд┐ рдХреБрдЫ рднреА рдЬрд╛рджреБрдИ рди рд╣реЛ рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЦреЛрдЬ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдерд╛ред рд▓реЗрдЦреЛрдВ рдХреА рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реЗрдбреНрд╕ рдореЗрдВ рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реЛрдЧреАред рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ - рдХрдЯ рдХреЗ рддрд╣рдд рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реИ!



рдпрд╣ рдПрдХ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рд▓реЗрдЦ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рд▓реЗрдЦрди рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рд╡рд┐рд╖рдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ: рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбреНрд╕, рдЬрд┐рдпреЛрдореЗрдЯреНрд░рд┐рдХ рд╢реЗрдбреНрд╕, рдЯреБрдХрдбрд╝рд╛ / рдкрд┐рдХреНрд╕реЗрд▓ рд╢реЗрдбреНрд╕, рдЯреНрд░рд┐рдкреНрд▓рд╛рдиреЗрд░ рд╢реЗрдбреНрд╕, рд╕реНрдХреНрд░реАрдирд╕реНрдкреЗрд╕ рдкреНрд░рднрд╛рд╡ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рд╢реЗрдбреНрд╕ (рдУрдкрдирд╕реАрдПрд▓, рд╕реАрдпреВрдбреАрдП, рдЖрджрд┐)ред рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рднреА рдЬрд╛рджреВ рдЬреЛ рдЬреАрдкреАрдпреВ рдкрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдПрдХрддрд╛ рдорд╛рдирдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП LWRP рдФрд░ HDRP рдЕрдм рддрдХ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдирдо рд▓рдЧрддреЗ рд╣реИрдВред

рдПрдХ shader рдХреНрдпрд╛ рд╣реИ?



рд╕реНрд░реЛрдд: www.shadertoy.com/view/MsGSRd

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

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



рдпрджрд┐ рдЖрдк рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдЖрджрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рднрд╛рдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, Hlsl рдкрд░ рд╕рдорд╛рди рдЕрдирд▓рд┐рдЯреЗрдб рд╢реЗрдбреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд┐рдВрджреБ рд╕реЗ, рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ shader рд╣реИ

#pragma vertex vert #pragma fragment frag 

рдЬрд╣рд╛рдБ рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЫрд╛рдпрд╛рдХрд╛рд░ рдХрд╛ рд╢реАрд░реНрд╖ рднрд╛рдЧ рд▓рдВрдмрд╡рдд рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдлрд╝реНрд░реЗрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЯреБрдХрдбрд╝рд╛ рднрд╛рдЧред

рд╣рдо рдЬрд┐рд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╢реЗрдбрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рд╣рдо рдореЗрд╖ рд╕реЗ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рд▓реЗрдВрдЧреЗ рдФрд░ рд╡рд░реНрдЯрд┐рд╢рд░ рд╢реЗрдбрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рдЬреЛ рд╣рдорд╛рд░реЗ рдореЗрд╢рд░реЗрдВрдбрд░ рдФрд░ рдореЗрд╢рдлрд┐рд▓реНрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рд▓рдЯрдХрд╛ рд╣реБрдЖ рд╣реИред

  struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; UNITY_FOG_COORDS(1) float4 vertex : SV_POSITION; }; 

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

рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ, рд╕рднреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ, рд╕рд╛рде рд╣реА рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдПрдХрддрд╛ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ dun.unity3d.com/Manual/SL-Reference.html

Shader рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдБ



рд╕реНрд░реЛрдд: www.shadertoy.com/view/WsS3Dc

рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рддрдереНрдп рдХрд┐ рдЕрдм рд╢реЗрдбреНрд╕ рддреАрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдПрдХрддрд╛ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред CG, GLSL рдФрд░ HLSLред рдПрдХ рдпреВрдирд┐рдЯ рдореЗрдВ рд╢реЗрдбреНрд╕ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдПрдЪрдПрд▓рдПрд╕рдПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБред Shader рдЕрдиреБрдорддрд┐ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдХрд┐рд╕реА рдЗрдХрд╛рдИ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рддреБрд▓рдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рддреЛ рдПрдЪрдПрд▓рдПрд╕рдПрд▓, рдЬреАрдПрд▓рдПрд╕рдПрд▓ рдФрд░ рд╕реАрдЬреА рдкрд░ рдЕрд▓рдЧ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рд╕рд┐рд░реНрдл рдЯрди рд╣реИред рд╢реЗрдбрд░реНрд╕ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдЪреАрдЬрд╝реЛрдВ рдХреЛ рдПрдХрддрд╛ рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд▓рдЧрднрдЧ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдорд╛рдиреНрдп рд╣реИред рд╕рднреА рддреАрди рднрд╛рд╖рд╛рдПрдВ рд╕реА рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЬрдм рдпреЗ рднрд╛рд╖рд╛рдПрдВ рдЕрдм рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдЙрдард╛рддреА рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рдпреВрдирд┐рдЯреАрд╕реАрдЬреА.рдЧрд┐рдиреАрдХ" рдФрд░ рдПрдХрддрд╛ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпреЛрдВ рдЕрдЧрд░ shaders рдореЗрдВ рдмреБрд░рд╛ рд╣реИ?



рд╕реНрд░реЛрдд: www.shadertoy.com/view/Md3cWr

рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд▓реЛрд╣реЗ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╢реЗрдб рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рдЗрддрдиреЗ рддреЗрдЬрд╝ рдХреНрдпреЛрдВ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рджрдмрд╛рд╡ рдХреЗ рд▓рд╛рдЦреЛрдВ рдСрдкрд░реЗрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

GPU рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдЧрдгрдирд╛ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдорд╛рдирддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ "рд▓рд╣рд░ рд╕рд╛рдордиреЗ" рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд╡реЗрд╡рдлреНрд░рдВрдЯ рд╢реЗрдбреНрд╕ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИ рдЬреЛ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рдорд╛рди рдЕрдиреБрдХреНрд░рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, GPU рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрдм рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдЗрдирдкреБрдЯ рд╣реИред рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрдм рдХрд┐рд╕реА рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рд╢реЗрдбрд░реНрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рдирдпрд╛ рддрд░рдВрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдЖрджрд┐ред рдФрд░ рдпрд╣ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред

рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдФрд░ рдЕрдкрд╡рд╛рдж рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрджрд┐, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдЧреНрд░рд╛рдлрд┐рдХ рдПрдиреА рдХреЗ рд▓рдХреНрд╖реНрдп рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рд╣реА OpenGL ES 2 рдпрд╛ DX11 рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИрдВред

рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдиреЛрдб рд╕рдВрдкрд╛рджрдХ рд╣реИрдВ?




рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдиреЛрдб рд╕рдВрдкрд╛рджрдХ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рддрдХрдиреАрдХреА рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИрдВред рдпреЗ рдРрд╕реЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реИрдВ рдЬреЛ рдЧрдгрд┐рдд рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдбрд┐рдЬрд╛рдЗрдирд░ рд╣реИрдВред рд╡рд╛рдпрд░рдлреНрд░реЗрдо рдкреНрд░рдХрд╛рд░ (рдЬрд╣рд╛рдВ рдмрд╛рдпрд░реЗрдВрдЯреНрд░рд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рд╕рдордЭ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рдХреЗ рд╢реЗрдбреНрд╕ рдпрд╛ рдХрд╛рд░реНрддреАрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди, рдЬреЛ рдЯреНрд░рд┐рдХ рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЬреИрд╕реЗ рднреМрддрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдХрдИ рдЧрдгрд┐рддреАрдп рдореЙрдбрд▓ред рдЙрд╕реА рд╕рдордп, рдПрдХ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрд╛рджреВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрдХрдиреАрдХреА рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрд╕реНрдЯрдо рдиреЛрдбреНрд╕ рдФрд░ рдЙрдкрдХрд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред рдиреЛрдб рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕реАрдорд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, hlsl рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ shaders рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╕рдордЭреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред

рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╕рдВрд╕рд╛рдзрди



рд╕реНрд░реЛрдд: www.shadertoy.com/view/4tlcWj

рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реАрдЦрдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡реНрдпрд╛рдпрд╛рдо www.shadertoy.com рдпрд╛ glslsandbox.com рд╕реЗ рд╢реЗрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХрддрд╛ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреА рдПрдХ рд╢рд╛рдВрдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рджрд┐рд▓рдЪрд╕реНрдк github.com/keijiro рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ

рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЧрдгрд┐рдд рдФрд░ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреА рднреМрддрд┐рдХреА рдХреА рд╕рдордЭ рд╣реИред рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдорд┐рд╢реНрд░рдг рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЕрдЧрд░ рднреМрддрд┐рдХ рдореЙрдбрд▓рд┐рдВрдЧ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рд╢реЛрд░, рдЕрдкрд╡рд░реНрддрди, рдкреНрд░рдХрд╛рд╢ рдХреЗ рдЙрдк-рдкреНрд░рдХреАрд░реНрдгрди, рдХрд╛рд╕реНрдЯрд┐рдХ, рдлреНрд░реЗрд╕реНрдиреЗрд▓ рдкреНрд░рднрд╛рд╡, рдкреНрд░рд╕рд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЕрдиреНрдп рднреМрддрд┐рдХ рдЧреБрдгреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдердорд┐рдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЬрд╣рд╛рдВ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдирд╛ рд╣реИред

рдпрджрд┐ рд╢реЗрдбреНрд╕ рдХрд╛ рд╡рд┐рд╖рдп рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реБрдЭрд╛рд╡ рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдФрд░ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рд╡рд┐рд╖рдпред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд▓реЗрдЦ рдХреЗ рд╕рднреА рдкреНрд░рднрд╛рд╡ shadertoy рдХреЗ рд╕рд╛рде shader рдкреНрд░рднрд╛рд╡реЛрдВ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╣реИрдВред

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


All Articles