рдпрд╛рддреНрд░рд╛ рд░реЗрдд shader рдЕрдиреНрд╡реЗрд╖рдг

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

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


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

рдпрд╛рддреНрд░рд╛ рдореЗрдВ рд░реЗрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг


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


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

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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдм рдпрдерд╛рд░реНрдерд╡рд╛рдж рдХрд╛ рднреНрд░рдо рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░реЗрдд рдХреЛ рд╕рдкрд╛рдЯ рд╕рддрд╣реЛрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд░реЗрдд рдХреЗ рджрд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рднрд╛рд╡ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рд╕рддрд╣ рддрдХ рд╕реАрдзреЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЗрдд рдХреЗ рдЫреЛрдЯреЗ рдХрдгреЛрдВ рдХреЛ рдЯрд┐рдмреНрдмрд╛ рдХреА рд╕рддрд╣ рдкрд░ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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


рд╡рд┐рд╕рд░рд┐рдд рд░рдВрдЧ

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



рд╕рдореАрдХрд░рдг рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ

рд░реЗрдд рд╕рд╛рдорд╛рдиреНрдп

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



рдПрдЬ рд▓рд╛рдЗрдЯрд┐рдВрдЧ

рдкреНрд░рддреНрдпреЗрдХ рдпрд╛рддреНрд░рд╛ рд╕реНрддрд░ рдПрдХ рд╕реАрдорд┐рдд рд░рдВрдЧ рдкреИрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдпрд╣ рд╕рдордЭрдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдПрдХ рдЯрд┐рдмреНрдмрд╛ рдХрд╣рд╛рдБ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдкрдардиреАрдпрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдбреНрдпреВрди рдХреЗ рдХрд┐рдирд╛рд░реЗ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рдЫреЛрдЯреА рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рд░рд┐рдо рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ Fresnel рдкреНрд░рддрд┐рдмрд┐рдВрдмреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдЪреБрдирд╛, рдЬреЛ рддрдерд╛рдХрдерд┐рдд рдШрдЯрдирд╛ рдХреЛрдгреЛрдВ рдкрд░ рдкреЙрд▓рд┐рд╢ рд╕рддрд╣реЛрдВ рдкрд░ рдореЙрдбрд▓ рдкрд░рд╛рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ ред



рд╕рд╛рдЧрд░ рдХрд╛ рджрд░реНрдкрдг рдкреНрд░рддрд┐рдмрд┐рдВрдм

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



рдЪрдордХ рдкреНрд░рддрд┐рдмрд┐рдВрдм

рд░реЗрдд рд╢реИрдбрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рд╕рд╛рдЧрд░ рд╕реНрдкреЗрдХреНрдпреБрд▓рд░ рдШрдЯрдХ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рдЕрдзрд┐рдХ рддрд░рд▓ рд░реВрдк рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЕрднреА рднреА рд░реЗрдд рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджреГрд╢реНрдп рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ: рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯрд┐рдмреНрдмрд╛ рдореЗрдВ, рдпрд╣ рдкреНрд░рднрд╛рд╡ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдд рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рджрд╛рдирд╛ рдЗрд╕рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдмрд╛рд░ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдкрд░рд╛рд╡рд░реНрддрд┐рдд рдХрд┐рд░рдг рд╣рдорд╛рд░реА рдЖрдВрдЦ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреА рд╣реИред рдРрд╕реА рдЪрдордХ рдкреНрд░рддрд┐рдмрд┐рдВрдм (рдкреНрд░рддрд┐рдмрд┐рдВрдмреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдм) рдЙрди рдЬрдЧрд╣реЛрдВ рдкрд░ рднреА рд╣реЛрддреА рд╣реИ рдЬрд╣рд╛рдВ рд╕реАрдзреА рдзреВрдк рдирд╣реАрдВ рдкрдбрд╝рддреА; рдпрд╣ рдорд╣рд╛рд╕рд╛рдЧрд░ рдХреЗ рд╕реНрдкреЗрдХреНрдпреБрд▓рд░ рдХреЛ рдкреВрд░рдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреА рднрд╛рд╡рдирд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред



рд░реЗрдд рдХреА рд▓рд╣рд░реЗрдВ

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



рдЬрд░реНрдиреА рд╕реИрдВрдб рд╢реИрдбрд░ рдПрдирд╛рдЯреЙрдореА


рдПрдХрддрд╛ рдореЗрдВ рдЖрдкрдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ shader рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╣рдо рдЙрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдФрд░ рдХрд╛рд╕реНрдЯ рд╢реИрдбреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╕рддрд╣ shader (рд╕рддрд╣ shader) рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рд╕рддрд╣ рд╕рдорд╛рд░реЛрд╣


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

 void surf (Input IN, inout SurfaceOutput o) { o.Albedo = _SandColor; o.Alpha = 1; float3 N = float3(0, 0, 1); N = RipplesNormal(N); N = SandNormal (N); o.Normal = N; } 

рдЬрдм o.Normal рдХреЛ o.Normal рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ рд╕реНрдерд╛рди рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡реЗрдХреНрдЯрд░ рдХреЛ 3 рдбреА рдореЙрдбрд▓ рдХреА рд╕рддрд╣ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣реА рд╣реИ, float3(0, 0, 1) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп 3 рдбреА рдореЙрдбрд▓ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рджреЛрдиреЛрдВ рдХрд╛рд░реНрдп, RipplesNormal , рдФрд░ SandNormal рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдХреНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рдж рдореЗрдВ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░рдХрд╛рд╢ рд╕рдорд╛рд░реЛрд╣


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

 #pragma surface surf Journey fullforwardshadows float4 LightingJourney (SurfaceOutput s, fixed3 viewDir, UnityGI gi) { float3 diffuseColor = DiffuseColor (); float3 rimColor = RimLighting (); float3 oceanColor = OceanSpecular (); float3 glitterColor = GlitterSpecular (); float3 specularColor = saturate(max(rimColor, oceanColor)); float3 color = diffuseColor + specularColor + glitterColor; return float4(color * s.Albedo, 1); } 

рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рд╡рд┐рдзрд┐ рдХрд╛рдлреА рдордирдорд╛рдиреА рд╣реИ рдФрд░ рд╣рдореЗрдВ рдХрд▓рд╛рддреНрдордХ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

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

рднрд╛рдЧ 2. рдбрд┐рдлреНрдпреВрдЬрд╝ рд░рдВрдЧ


рдкреЛрд╕реНрдЯ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдЧреЗрдо рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдкреНрд░рдХрд╛рд╢ рдореЙрдбрд▓ рдФрд░ рдЙрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рдХреИрд╕реЗ рдПрдХрддрд╛ рдореЗрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдкрд┐рдЫрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ, рд╣рдордиреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдиреАрдВрд╡ рд░рдЦреА рдХрд┐ рдзреАрд░реЗ-рдзреАрд░реЗ рдЬрд░реНрдиреА рд╕реИрдВрдб рд╢реИрдбрд░ рдХреЗ рд╣рдорд╛рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧреАред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рддрд╣ рдХреЗ рд░рдВрдЧреЛрдВ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕рддрд╣ рдкрд░ рдЫрд╛рдпрд╛ рдФрд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдВред рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЬрд░реНрдиреА рдХреЗ рдХрдИ рдкреНрд░рднрд╛рд╡ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╢реНрд░реЗрдгреА рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ shader рдХреЗ рдореВрд▓ рдореЗрдВ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА (рдФрд░ рд╕рд░рд▓рддрдо) рдкреНрд░рднрд╛рд╡ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ: рдЗрд╕рдХреА рдкреНрд░рд╕рд╛рд░ рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ (diffuse / diffuse Lighting)ред


рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдиреНрдп рд╕рднреА рдкреНрд░рднрд╛рд╡реЛрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рд░реЗрдд рдХреЛ рдЬрд▓рд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ ред

LightingJourney DiffuseColor рдирд╛рдордХ рдкреЛрд╕реНрдЯ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╣рдордиреЗ рдЬреЛ рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдлрдВрдХреНрд╢рди DiffuseColor , рд╡рд╣ DiffuseColor рдирд╛рдордХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд░реЗрдд рдХреЗ рдлреИрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд░рдВрдЧ рдХреА рдЧрдгрдирд╛ рдХреЛ DiffuseColor ред

 float4 LightingJourney (SurfaceOutput s, fixed3 viewDir, UnityGI gi) { // Lighting properties float3 L = gi.light.dir; float3 N = s.Normal; // Lighting calculation float3 diffuseColor = DiffuseColor(N, L); // Final color return float4(diffuseColor, 1); } 

рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рднрд╛рд╡ рд╕реНрд╡рдпрдВ-рдирд┐рд╣рд┐рдд рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рд╣рдорд╛рд░рд╛ рдХреЛрдб рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓рд░ рдФрд░ рд╕реНрд╡рдЪреНрдЫ рд╣реЛрдЧрд╛ред

рд▓реИрдВрдмрд░реНрдЯ рд░рд┐рдлреНрд▓реЗрдХреНрд╢рди


"рд▓рд╛рдЗрдлрд╝ рдЗрди рдЬрд░реНрдиреА" рдЬреИрд╕реА рд╡рд┐рд╕рд░рд┐рдд рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ "рдмреЗрд╕рд┐рдХ" рдбрд┐рдлреНрдпреВрдЬрд╝реНрдб рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдлрдВрдХреНрд╢рди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдореИрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЫрд╛рдпрд╛рдВрдХрди рддрдХрдиреАрдХ рдХреЛ рд▓реИрдореНрдмрд░реНрдЯрд┐рдпрди рдкрд░рд╛рд╡рд░реНрддрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдореЙрдбрд▓ рд╕рдмрд╕реЗ рдЧреИрд░-рдЪрдордХрджрд╛рд░ рдФрд░ рдЧреИрд░-рдзрд╛рддреБ рд╕рддрд╣реЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдирд╛рдо рд╕реНрд╡рд┐рд╕ рд╡рд┐рд╢реНрд╡рдХреЛрд╢ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЬреЛрд╣рд╛рди рд╣реЗрдирд░рд┐рдХ рд▓реИрдВрдмрд░реНрдЯ рдХреЗ рдирд╛рдо рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ 1760 рдореЗрдВ рдЗрд╕рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрд╛ рдерд╛ред

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


рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рд▓реИрдореНрдмрд░реНрдЯ рдкреНрд░рддрд┐рдмрд┐рдВрдм рд╕рддрд╣ рдФрд░ рдШрдЯрдирд╛ рдкреНрд░рдХрд╛рд╢ рдХреЗ рдмреАрдЪ рд╕рд╛рдкреЗрдХреНрд╖ рдХреЛрдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЧрдгрд┐рддреАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рд╕рддрд╣ рддрдХ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИ рдФрд░ рд░реЛрд╢рдиреА рдХреА рджрд┐рд╢рд╛ рд╣реИ ред рдЗрди рдорд╛рддреНрд░рд╛рдУрдВ рдХреЛ рджреЛ рдЗрдХрд╛рдИ рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓реЗ рд╡реИрдХреНрдЯрд░ ( рдЗрдХрд╛рдИ рд╡реИрдХреНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдПрдирдПрди рдФрд░ рдПрд▓рдПрд▓ ред рдПрдХрд▓ рд╡реИрдХреНрдЯрд░ рд╢реИрдбрд░ рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдорд╛рдирдХ рддрд░реАрдХрд╛ рд╣реИред

N рдФрд░ L рдХрд╛ рдорд╛рди
рд╕рддрд╣ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдПрдирдПрди рдПрдХ рдЗрдХрд╛рдИ рд╡реЗрдХреНрдЯрд░ рд╕рддрд╣ рд╕реЗ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реИ ред

рд╕рд╛рджреГрд╢реНрдп рд╕реЗ, рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдХрд╛рд╢ рдХреА рджрд┐рд╢рд╛ рдПрд▓рдПрд▓ рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ: рд░реЛрд╢рдиреА рдХреА рджрд┐рд╢рд╛ рдПрдХ рдПрдХрд▓ рд╡реЗрдХреНрдЯрд░ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реЗ рдкреНрд░рдХрд╛рд╢ рдЙрд╕ рджрд┐рд╢рд╛ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ ред

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

рдПрдХрддрд╛ рдореЗрдВ рд▓реИрдореНрдмрд░реНрдЯ рдкреНрд░рддрд┐рдмрд┐рдВрдм
рдпреВрдирд┐рдЯреА 5 рд╕реНрдЯреИрдВрдбрд░реНрдб рд╢реЗрдбрд░ рд╕реЗ рдкрд╣рд▓реЗ, рд▓реИрдореНрдмрд░реНрдЯ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдкреНрд░рдмреБрджреНрдз рд╕рддрд╣реЛрдВ рдХреЛ рдЪрдордХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдореЙрдбрд▓ рдерд╛ред

рдЖрдк рдЗрд╕реЗ рдЕрднреА рднреА рд╕рд╛рдордЧреНрд░реА рдирд┐рд░реАрдХреНрд╖рдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд▓рд┐рдЧреЗрд╕реА рд╢реИрдбрд░ рдореЗрдВ, рдЗрд╕реЗ рдбрд┐рдлреНрдпреВрдЬ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рддрд╣ рд╢реЗрдбрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд▓реИрдореНрдмрд░реНрдЯ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдПрдХ рдкреНрд░рдХрд╛рд╢ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрд┐рд╕реЗ Lambert рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

 #pragma surface surf Lambert fullforwardshadows 

рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╝рд╛рдЗрд▓ CGIncludes\Lighting.cginc рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд CGIncludes\Lighting.cginc рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реИрдореНрдмрд░реНрдЯ рдкрд░рд╛рд╡рд░реНрддрди рдФрд░ рдЬрд▓рд╡рд╛рдпреБ
рд▓реИрдореНрдмрд░реНрдЯ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдПрдХ рдХрд╛рдлреА рдкреБрд░рд╛рдирд╛ рдореЙрдбрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рддрд╣ рдХреА рдЫрд╛рдпрд╛рдВрдХрди рдЬреИрд╕реА рдЬрдЯрд┐рд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреА рд╕рдордЭ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рдЖрд░реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднреВрдордзреНрдп рд░реЗрдЦрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧреНрд░рд╣ рдХреЗ рдзреНрд░реБрд╡реЛрдВ рдкрд░ рдардВрдбрд╛ рдХреНрдпреЛрдВ рд╣реИред

рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрдиреЗ рдкрд░, рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рддрд╣ рдХреЛ рд░реЛрд╢рдиреА рдХреА рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ рдЬрдм рдЗрд╕рдХреА рд╕рд╛рдорд╛рдиреНрдп рд░реЛрд╢рдиреА рдХреА рджрд┐рд╢рд╛ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реЛрддреА рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд: рдХреЛрдИ рдкреНрд░рдХрд╛рд╢ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рджреЛ рдЗрдХрд╛рдИ рд╡реИрдХреНрдЯрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд▓рдВрдмрд╡рдд рд╣реИрдВред


рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХреЗ рдмреАрдЪ рдХрд╛ рдХреЛрдг рдПрдирдПрди рдФрд░ рдПрд▓рдПрд▓ рд▓реИрдореНрдмрд░реНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдгред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪрдордХ рдЕрдзрд┐рдХрддрдо рдФрд░ рдмрд░рд╛рдмрд░ рд╣реИ 100% рдЬрдм рдХреЛрдг рд╣реИ 0 рдФрд░ рдиреНрдпреВрдирддрдо ( 0% ) рдЬрдм рдХреЛрдг рдХреЛ рдЬрд╛рддрд╛ рд╣реИ 90 circ ред рдпрджрд┐ рдЖрдк рд╡реЗрдХреНрдЯрд░ рдмреАрдЬрдЧрдгрд┐рдд рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓реИрдореНрдмрд░реНрдЯ рдХреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдорд╛рддреНрд░рд╛ рдореИрдВ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ N cdotL рдСрдкрд░реЗрдЯрд░ рдХрд╣рд╛рдВ рд╣реИ  рдХрд╛рдб рдПрдХ рдЕрджрд┐рд╢ рдЙрддреНрдкрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

(1)

$ $ рдкреНрд░рджрд░реНрд╢рди $ $ \ рд╢реБрд░реВ {рд╕рдореАрдХрд░рдг *} I = N \ cdot L \ end {рд╕рдореАрдХрд░рдг *} $ $ рдкреНрд░рджрд░реНрд╢рди $ $


рдЕрджрд┐рд╢ рдЙрддреНрдкрд╛рдж рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджреЛ рд╡реИрдХреНрдЯрд░реЛрдВ рдХреЗ "рд╕рдВрдпреЛрдЧ" рдХрд╛ рдПрдХ рдорд╛рдк рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ +1 (рджреЛ рд╕рдорд╛рди рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП) тИТ1 (рджреЛ рд╡рд┐рдкрд░реАрдд рд╡реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП)ред рдПрдХ рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж рдЫрд╛рдпрд╛рдВрдХрди рдХреА рдиреАрдВрд╡ рд╣реИ, рдЬрд┐рд╕рдХреА рдореИрдВрдиреЗ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рдкреНрд░рдХрд╛рд╢ рдореЙрдбрд▓ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХреАред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдФрд░ рдХреЛ рдПрди рдФрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓ рдЖрдк s.Normal рдФрд░ gi.light.dirin рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рддрд╣ shader рдкреНрд░рдХрд╛рд╢ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рддрдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдиреНрд╣реЗрдВ shader рдХреЛрдб рдореЗрдВ N рдФрд░ L рдирд╛рдо рджреЗрдВрдЧреЗ L

 float3 DiffuseColor(float3 N, float3 L) { float NdotL = saturate( dot(N, L) ); return NdotL; } 

saturate рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдорд╛рди рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ 0 рдХреЛ 1 ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреВрдВрдХрд┐ рд╕реНрдХреЗрд▓рд░ рдЙрддреНрдкрд╛рдж рд╕реЗ рд░реЗрдВрдЬ рдореЗрдВ рд╣реИ тИТ1 рдХреЛ +1 , рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд▓реИрдВрдмрд░реНрдЯ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдЕрдХреНрд╕рд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 float NdotL = max(0, dot(N, L) ); 

рдкрд░рд┐рд╡реЗрд╢ рдкреНрд░рдХрд╛рд╢ рдХрд╛ рд╡рд┐рдкрд░реАрдд рдкреНрд░рддрд┐рдмрд┐рдВрдм


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

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

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

рдЙрдирдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЫрд╛рдпрд╛рдВрдХрди рдореЙрдбрд▓ рдЗрд╕ рд╕рдореАрдХрд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ:

(2)

$ $ рдкреНрд░рджрд░реНрд╢рди $ $ \ рд╢реБрд░реВ {рд╕рдореАрдХрд░рдг *} рдореИрдВ = 4 * \ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ (\ рдмрд╛рдПрдВ (N \ odot \ рдмрд╛рдПрдБ [1, 0.3, 1 \ рд╕рд╣реА] \ рд╕рд╣реА) \ cdot L \ рджрд╛рдПрдБ) \ рдЕрдВрдд {рд╕рдореАрдХрд░рдг *} $ $ рдкреНрд░рджрд░реНрд╢рди $ $


рдЬрд╣рд╛рдБ  odot - рддрддреНрд╡ - рджреЛ рд╡реИрдХреНрдЯрд░ рдХреЗ рдмреБрджреНрдзрд┐рдорд╛рди рдЙрддреНрдкрд╛рдж ред

 float3 DiffuseColor(float3 N, float3 L) { Ny *= 0.3; float NdotL = saturate(4 * dot(N, L)); return NdotL; } 

рдкреНрд░рддрд┐рдмрд┐рдВрдм рдореЙрдбрд▓ (2) рдЬреЙрди рдПрдбрд╡рд░реНрдбреНрд╕ рдХреЙрд▓ рд╡рд┐рдкрд░рд┐рдд рд╡рд┐рдкрд░реАрдд рд╣реИ , рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдХрд░реЗрдВрдЧреЗред

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдПрдиреАрдореЗрд╢рди рдореЗрдВ рд▓реИрдореНрдмрд░реНрдЯ рд╢реЗрдбрд┐рдВрдЧ (рдмрд╛рдПрдВ) рдореЗрдВ рдЕрдВрддрд░ рдФрд░ рдЬрд░реНрдиреА (рджрд╛рдПрдВ) рдХреЗ рд╡рд┐рдкрд░реАрдд рдЕрдВрддрд░ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред



4 рдФрд░ 0.3 рдХрд╛ рдЕрд░реНрде рдХреНрдпрд╛ рд╣реИ?
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлреИрд▓рд╛рдирд╛ рд╡рд┐рдкрд░реАрдд рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдлрд┐рд░ рднреА рд╣рдо рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдореВрд▓ рдореЗрдВ, рдпрд╣ рдЕрднреА рднреА рд▓реИрдореНрдмрд░реНрдЯ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╕реНрдкрд╖реНрдЯ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдордЧреНрд░ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ 4 ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА рдкрд┐рдХреНрд╕реЗрд▓ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗ 25% рдкреНрд░рдХрд╛рд╢ рдЕрдм рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рдЪрдордХ рд░рд╣рд╛ рд╣реИ 100% рдкреНрд░рдХрд╛рд╢ред рд╕рдм рдХреБрдЫ рдЧреБрдгрд╛ рдХрд░рдХреЗ 4 рд▓реИрдореНрдмрд░реНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрдордЬреЛрд░ рдЫрд╛рдпрд╛рдВрдХрди рдмрд╣реБрдд рдордЬрдмреВрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдВрдзреЗрд░реЗ рдФрд░ рдкреНрд░рдХрд╛рд╢ рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдХреНрд╖реЗрддреНрд░ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЫрд╛рдпрд╛ рддреЗрдЬ рд╣реЛ рдЬрд╛рддреА рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рджрд┐рд╢рд╛ рдкрд░ y рдШрдЯрдХ рдХреЗ рдЧреБрдгрди рдХрд╛ рдкреНрд░рднрд╛рд╡ 0.3 рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рд╡реЗрдХреНрдЯрд░ рдХреЗ рдШрдЯрдХ рдмрджрд▓рддреЗ рд╣реИрдВ, рд╕рд╛рдорд╛рдиреНрдп рджрд┐рд╢рд╛ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП y рдШрдЯрдХ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдХрдо рдХрд░рдирд╛ 30% рдЕрдкрдиреЗ рдореВрд▓ рдореВрд▓реНрдп рд╕реЗ, рдлреИрд▓рд╛рдирд╛ рд╡рд┐рдкрд░реАрдд рдХрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдЫрд╛рдпрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд▓рдВрдмрд╡рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдиреЛрдЯ: рдПрдХ рдЕрджрд┐рд╢ рдЙрддреНрдкрд╛рдж рд╕реАрдзреЗ рджреЛ рд╡реИрдХреНрдЯрд░реЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдХреЛрдг рдХреЛ рдорд╛рдкрддрд╛ рд╣реИ, рдпрджрд┐ рджреЛрдиреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рд╣реЛ 1 ред рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╛рдорд╛рдиреНрдп рд▓рдВрдмрд╛рдИ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдПрди рдЬреЛ рдЕрдм рдПрдХ рдЗрдХрд╛рдИ рд╡реЗрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИред

рдЧреНрд░реЗ рдХреЗ рд░рдВрдЧреЛрдВ рд╕реЗ


рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рд╕рднреА рдПрдирд┐рдореЗрд╢рди рдореЗрдВ рднреВрд░реЗ рд░рдВрдЧ рдХреЗ рд╢реЗрдб рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдореЙрдбрд▓ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рдЕрд▓рдЧ рд╣реИ 0 рдХреЛ 1 "ред рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рджреЛ рд░рдВрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░рдХреНрд╖реЗрдк рдЧреБрдгрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ NdotL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рдВрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫрд╛рдпрд╛рдВрдХрд┐рдд рдХреЗ рд▓рд┐рдП рдФрд░ рджреВрд╕рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд▓рд╛рдП рдЧрдП рд░реЗрдд рдХреЗ рд▓рд┐рдПред

 float3 _TerrainColor; float3 _ShadowColor; float3 DiffuseColor(float3 N, float3 L) { Ny *= 0.3; float NdotL = saturate(4 * dot(N, L)); float3 color = lerp(_ShadowColor, _TerrainColor, NdotL); return color; } 

рднрд╛рдЧ 3. рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рд▓реВ


рддреАрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдирдХреНрд╢реЗ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд░реЗрдд рдХреЗ рдЯреАрд▓реЛрдВ рдореЗрдВ рдЪрд┐рдХрдиреА 3 рдбреА рдореЙрдбрд▓ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВред

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ, рд╣рдордиреЗ рдЬрд░реНрдиреА рд╕реИрдВрдб рдХреА рдбрд┐рдлреНрдпреВрдЬрд╝ рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдХреЗрд╡рд▓ рдЗрд╕ рдЖрд╢рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рд░реЗрдЧрд┐рд╕реНрддрд╛рди рдЯрд┐рдмреНрдмрд╛ рд╕рдкрд╛рдЯ рдФрд░ рдЙрдмрд╛рдК рд▓рдЧреЗрдВрдЧреЗред


рдпрд╛рддреНрд░рд╛ рдХреЗ рд╕рдмрд╕реЗ рдкреЗрдЪреАрджрд╛ рдкреНрд░рднрд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд░реЗрдд рдХрд╛ рджрд╛рдирд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЛ рджреЗрдЦрдХрд░, рдпрд╣ рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд┐рдмреНрдмрд╛ рдЪрд┐рдХрдиреА рдФрд░ рд╕рдЬрд╛рддреАрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд░реЗрдд рдХреЗ рд▓рд╛рдЦреЛрдВ рд╕реВрдХреНрд╖реНрдо рдЕрдирд╛рдЬ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдпрд╣ рдкреНрд░рднрд╛рд╡ рдПрдХ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдмрдВрдк рдореИрдкрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рдХрд╛рд╢ рдХреЛ рдПрдХ рд╕рдкрд╛рдЯ рд╕рддрд╣ рд╕реЗ рдЙрдЫрд╛рд▓ рджреЗрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдерд╛ред рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдкреНрд░рднрд╛рд╡ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕реНрд╡рд░реВрдк рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ:



рдЫреЛрдЯреЗ рдЕрдВрддрд░ рдХреЛ рдмрдврд╝рддреЗ рд╣реБрдП рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдирдХреНрд╢реЗ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ


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

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


рдпрд╣ рдЕрдирдЧрд┐рдирдд рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдПрдХ рдмрдирд╛рд╡рдЯ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рдЯрд┐рдмреНрдмрд╛ рдореЙрдбрд▓ рдХреЗ рдореВрд▓ рдорд╛рдирджрдВрдбреЛрдВ рдХреА рджрд┐рд╢рд╛ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред

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

рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕реЗ рд╕рддрд╣ рдХреЗ рд╢реЗрдбрд░ рдХреЗ surf рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ SurfaceOutput рдирд╛рдордХ рдПрдХ struct ред рдЗрд╕рдореЗрдВ рдПрдХ 3D рдореЙрдбрд▓ рдХрд╛ рдПрдХ рднрд╛рдЧ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЧреБрдг рд╣реИрдВ, рдЗрд╕рдХреЗ рд░рдВрдЧ ( o.Albedo ) рд╕реЗ рд▓реЗрдХрд░ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ ( o.Alpha ) рддрдХред рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ рд╕рд╛рдорд╛рдиреНрдп рджрд┐рд╢рд╛ ( o.Normal ) рд╣реИ, рдЬрд┐рд╕реЗ рдореЙрдбрд▓ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

o.Normal рдкрд░ рдпреВрдирд┐рдЯреА рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░, o.Normal рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд▓рд┐рдЦреЗ рдЧрдП рд╕рднреА o.Normal рд╕реНрдкрд░реНрд╢рд░реЗрдЦрд╛ рд╕реНрдерд╛рди рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП:

 struct SurfaceOutput { fixed3 Albedo; // diffuse color fixed3 Normal; // tangent space normal, if written fixed3 Emission; half Specular; // specular power in 0..1 range fixed Gloss; // specular intensity fixed Alpha; // alpha for transparencies }; 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпреВрдирд┐рдЯ рд╡реИрдХреНрдЯрд░ рдХреЛ рдореЗрд╖ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм o.Normal рдХреЛ o.Normal float3(0, 0, 1) o.Normal рдорд╛рди рд╕рд╛рдорд╛рдиреНрдп рд░рд╣реЗрдВрдЧреЗред

 void surf (Input IN, inout SurfaceOutput o) { o.Albedo = _SandColor; o.Alpha = 1; o.Normal = float3(0, 0, 1); } 

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдХреНрдЯрд░ float3(0, 0, 1) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 3 рдбреА рдореЙрдбрд▓ рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдХреНрдЯрд░ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╕рддрд╣ рдХреА рд╕рддрд╣ рдореЗрдВ рд╕рддрд╣ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдмрд╕ o.Normal рдореЗрдВ рд╕рддрд╣ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡реЗрдХреНрдЯрд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред

 void surf (Input IN, inout SurfaceOutput o) { o.Albedo = _SandColor; o.Alpha = 1; o.Normal = ... // change the normal here } 

рд╢реЗрд╖ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдиреНрдирд┐рдХрдЯрди рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕реЗ рд╣рдо рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЫрдареЗ рднрд╛рдЧ рдореЗрдВ рдЬрдЯрд┐рд▓ рдХрд░реЗрдВрдЧреЗред

рд░реЗрдд рд╕рд╛рдорд╛рдиреНрдп


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

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

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдирдореВрдирд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░рдВрдЧреЛрдВ рд╕реЗ рднрд░реА рдмрдирд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдШрдЯрдХ R, G, рдФрд░ B рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдХреНрдЯрд░ рдХреЗ рдШрдЯрдХ X, Y рдФрд░ Z рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░рдВрдЧ рдШрдЯрдХ рд╕реАрдорд╛ рдореЗрдВ рд╣реИрдВ  рдЫреЛрдбрд╝рджрд┐рдпрд╛[0,1 рд╕рд╣реА] , рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ  рдмрд╛рдПрдБ[тИТ1,+1 рджрд╛рдПрдБ] ред рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдореА рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд╕рдХреА рд▓рдВрдмрд╛рдИ рдмрд░рд╛рдмрд░ рд╣реЛ 1 ред


рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛рд╡рдЯ рдмрдирд╛рдПрдБ
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛рд╡рдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡реИрдХреНрдЯрд░ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рддрд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдмрдирд╛рд╡рдЯ рд╕реЗ рдирдореВрдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдКрдкрд░ рдХреА рдЫрд╡рд┐ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИред рдХреЛрдИ рднреА рд╕рд╛рдорд╛рдиреНрдп рджрд┐рд╢рд╛ (рд░рдВрдЧ) рдирд╣реАрдВ рд╣реИ рдЬреЛ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдкреНрд░рдмрд▓ рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓реНрдп рдореЗрдВ рдЕрдиреНрдп рд╕рднреА рдХреЗ рд╕рдорд╛рди рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдпрд╣ рдмрдирд╛рд╡рдЯ рд╣рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд░реЗрдд рджреЗрддреА рд╣реИ рдЬреЛ рд╕рднреА рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдмрд┐рдЦреЗрд░рддреА рд╣реИред

рдЬреАрдбреАрд╕реА рдХреА рдПрдХ рдмрд╛рддрдЪреАрдд рдХреЗ рджреМрд░рд╛рди, рдЬреЙрди рдПрдбрд╡рд░реНрдбреНрд╕ рдиреЗ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдХрд┐ рдЬрд░реНрдиреА рдореЗрдВ рд░реЗрдд рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛рд╡рдЯ рдЧреЙрд╕рд┐рдпрди рд╡рд┐рддрд░рдг рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдИ рдереАред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдЪрд▓рд┐рдд рджрд┐рд╢рд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рд╕рддрд╣ рдкрд░ рдорд┐рд▓рддреА рд╣реИред

рдХреНрдпрд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡реИрдХреНрдЯрд░ рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡реИрдХреНрдЯрд░ рдХреЗ рдирдореВрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЬрд┐рд╕ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рд╡рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рд╣реБрдИ рдереАред рди рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ: рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдШрдЯрдХ R, G рдФрд░ B рднреА рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕ рдмрдирд╛рд╡рдЯ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╡реИрдХреНрдЯрд░ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рд▓рдВрдмрд╛рдИ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реЛрдЧреА 1 ред

рдмреЗрд╢рдХ, рдЖрдк рдПрдХ рдмрдирд╛рд╡рдЯ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╣рд░ рдкрд┐рдХреНрд╕реЗрд▓  рдЫреЛрдбрд╝рджрд┐рдпрд╛[0,1 рд╕рд╣реА] рдореЗрдВ  рдмрд╛рдПрдБ[тИТ1,+1 рджрд╛рдПрдБ] рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд▓рдВрдмрд╛рдИ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП 1 ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рдпрд╣рд╛рдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред

, . -, mip-, .

, .

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


┬л ┬╗, surf . , , , Journey . ( ) , ( ) .

 void surf (Input IN, inout SurfaceOutput o) { o.Albedo = _SandColor; o.Alpha = 1; float3 N = float3(0, 0, 1); N = RipplesNormal(N); // Covered in Journey Sand Shader #6 N = SandNormal (N); // Covered in this article o.Normal = N; } 

(bump mapping), , ( uv_SandTex ).

, , . , UV- , , . 3D- UV-, UV .

 N = WavesNormal(IN.uv_SandTex.xy, N); N = SandNormal (IN.uv_SandTex.xy, N); 

( IN.worldPos ) .

- SandNormal . , ( ) .

 sampler2D_float _SandTex; float3 SandNormal (float2 uv, float3 N) { // Random vector float3 random = tex2D(_SandTex, uv).rgb; // Random direction // [0,1]->[-1,+1] float3 S = normalize(random * 2 - 1); return S; } 

?
UV- 3D- , . , .

, Unity . , _SandText_ST . Unity ( ) _SandTex .

_SandText_ST : . , Tiling Offset :


, TRANSFORM_TEX :

 sampler2D_float _SandTex; float4 _SandTex_ST; float3 SandNormal (float2 uv, float3 N) { // Random vector float3 random = tex2D(_SandTex, TRANSFORM_TEX(uv, _SandTex)).rgb; // Random direction // [0,1]->[-1,+1] float3 S = normalize(random * 2 - 1); return S; } 


, . : , . , , , тАФ .

. , , . , - .



. . , , , :


slerp , spherical linear interpolation ( ). Slerp , lerp, тАФ , .

, slerp . , , .

slerp
, p0 рдФрд░ p1 , . рддреЛ slerp :

(1)

slerp(p0,p1,t)=sin[(1тИТt)╬й]sin(╬й)p0+sin(t╬й)sin(╬й)p1


╬й тАФ p0 рдФрд░ p1 , :

(2)

╬й=cosтИТ1(p0тЛЕp1)



, , :


Lerp . , , , 1 0 ред

, lerp , , slerp:

 float3 nlerp(float3 n1, float3 n2, float t) { return normalize(lerp(n1, n2, t)); } 

, nlerp , slerp. , The Witness . , Understanding Slerp. Then Not Using It Math Magician тАУ Lerp, Slerp, and Nlerp .

nlerp , _SandTex :

 sampler2D_float _SandTex; float _SandStrength; float3 SandNormal (float2 uv, float3 N) { // Random vector float3 random = tex2D(_SandTex, uv).rgb; // Random direction // [0,1]->[-1,+1] float3 S = normalize(random * 2 - 1); // Rotates N towards Ns based on _SandStrength float3 Ns = nlerp(N, S, _SandStrength); return Ns; } 

:



рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ


, .

рдзрдиреНрдпрд╡рд╛рдж


Journey Thatgamecompany Sony Computer Entertainment . PC ( Epic Store ) PS4 ( PS Store ).

3D- Jiadi Deng .

3D- Journey ( ) FacePunch.

Unity


, Unity Patreon . , 3D-.

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


All Articles