рдкрд┐рдЫрд▓реЗ 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) {
рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рднрд╛рд╡ рд╕реНрд╡рдпрдВ-рдирд┐рд╣рд┐рдд рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рд╣рдорд╛рд░рд╛ рдХреЛрдб рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓рд░ рдФрд░ рд╕реНрд╡рдЪреНрдЫ рд╣реЛрдЧрд╛ред
рд▓реИрдВрдмрд░реНрдЯ рд░рд┐рдлреНрд▓реЗрдХреНрд╢рди
"рд▓рд╛рдЗрдлрд╝ рдЗрди рдЬрд░реНрдиреА" рдЬреИрд╕реА рд╡рд┐рд╕рд░рд┐рдд рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ "рдмреЗрд╕рд┐рдХ" рдбрд┐рдлреНрдпреВрдЬрд╝реНрдб рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдлрдВрдХреНрд╢рди рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдореИрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЫрд╛рдпрд╛рдВрдХрди рддрдХрдиреАрдХ рдХреЛ
рд▓реИрдореНрдмрд░реНрдЯрд┐рдпрди рдкрд░рд╛рд╡рд░реНрддрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдореЙрдбрд▓ рд╕рдмрд╕реЗ рдЧреИрд░-рдЪрдордХрджрд╛рд░ рдФрд░ рдЧреИрд░-рдзрд╛рддреБ рд╕рддрд╣реЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдирд╛рдо рд╕реНрд╡рд┐рд╕ рд╡рд┐рд╢реНрд╡рдХреЛрд╢ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ
рдЬреЛрд╣рд╛рди рд╣реЗрдирд░рд┐рдХ рд▓реИрдВрдмрд░реНрдЯ рдХреЗ рдирд╛рдо рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ 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;
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпреВрдирд┐рдЯ рд╡реИрдХреНрдЯрд░ рдХреЛ рдореЗрд╖ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм
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 = ...
рд╢реЗрд╖ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдиреНрдирд┐рдХрдЯрди рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕реЗ рд╣рдо рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЫрдареЗ рднрд╛рдЧ рдореЗрдВ рдЬрдЯрд┐рд▓ рдХрд░реЗрдВрдЧреЗред
рд░реЗрдд рд╕рд╛рдорд╛рдиреНрдп
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рднрд╛рдЧ рдпрд╣ рд╕рдордЭ рд░рд╣рд╛ рд╣реИ
рдХрд┐ рд░реЗрдд
рдХреЗ рджрд╛рдиреЗ
рдХреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рддрд╣ рдкрд░ рдмрджрд▓рддреЗ рд╣реИрдВред рдпрджреНрдпрдкрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд░реЗрдд рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рджрд╛рдирд╛ рдХрд┐рд╕реА рднреА рджрд┐рд╢рд╛ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдХреЛ рдмрд┐рдЦреЗрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдХреБрдЫ рдФрд░ рд╣реЛрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдЯреАрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд░реЗрдд рдХреА рд╕рддрд╣ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рд╡реИрдХреНрдЯрд░ рдХреЗ рд╡рд┐рддрд░рдг рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдореЙрдбрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕реЗ рдореЙрдбрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рд╣реИред
рдореЙрдбрд▓ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдкрд░, рдПрдХ
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЗрдХрд╛рдИ рд╡реЗрдХреНрдЯрд░ рдмрдирд╛рд╡рдЯ рд╕реЗ рдирдореВрдирд╛ рд▓рд┐рдпрд╛
рдЬрд╛рддрд╛ рд╣реИ ред рдлрд┐рд░, рд╕рддрд╣ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЗрд╕ рд╡реЗрдХреНрдЯрд░ рдХреА рдУрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╢рд┐ рд╕реЗ рдЭреБрдХрддрд╛ рд╣реИред рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛рд╡рдЯ рдХреА рд╕рд╣реА рд░рдЪрдирд╛ рдФрд░ рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдорд┐рд╢реНрд░рдг рдХреЗ рдЪрдпрди рдХреЗ рд╕рд╛рде, рд╣рдо рдЯрд┐рдмреНрдмреЗ рдХреА рд╕рдордЧреНрд░ рд╡рдХреНрд░рддрд╛ рдХреЛ рдЦреЛрдП рдмрд┐рдирд╛, рд╕рд╛рдорд╛рдиреНрдп рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рддрд╣ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рджрд╛рдиреЗ рдХреА рднрд╛рд╡рдирд╛ рдкреИрджрд╛ рдХрд░рдирд╛ред
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдирдореВрдирд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░рдВрдЧреЛрдВ рд╕реЗ рднрд░реА рдмрдирд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдШрдЯрдХ 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);
(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) {
?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) {
, . : , . , , , тАФ .
. , , . , - .
. . , ,
, :
slerp ,
spherical linear interpolation ( ).
Slerp , lerp, тАФ , .
, slerp . , , .
slerp,
p0 рдФрд░
p1 , . рддреЛ
slerp :
(1)
╬й тАФ
p0 рдФрд░
p1 , :
(2)
,
, :
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) {
:
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ
, .
рдзрдиреНрдпрд╡рд╛рдж
Journey Thatgamecompany Sony Computer Entertainment . PC (
Epic Store ) PS4 (
PS Store ).
3D-
Jiadi Deng .
3D- Journey ( ) FacePunch.
Unity
, Unity
Patreon . , 3D-.