
рд╣рдл рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рдЫрд╡рд┐ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд▓рд╛рдЗрдиреЗрдВ, рдордВрдбрд▓рд┐рдпрд╛рдВ, рдФрд░ рдХреЛрдИ рднреА рдЕрдиреНрдп рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдк рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдореАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╣реБрдд рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд▓реЗрдЦ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реВрдВрдЧрд╛, "рдорд╛рдереЗ рдореЗрдВ" рдЬреАрдкреАрдпреВ рдкрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдЖрд╡рд╛рд╕ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдкреЗрд╢ рдХрд░реВрдВрдЧрд╛ред рдЬреЛ рд▓реЛрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреЛ рддреБрд░рдВрдд рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡реЗ рдХреБрдЫ рдЦрдВрдбреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реАрдкреАрдпреВ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рдореАрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдВрдЫрд┐рдд рдЖрдВрдХрдбрд╝рд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдпрд╣ y = Ax + B рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдлрд┐рд░ рд╣рдо рддрдерд╛рдХрдерд┐рдд рд╕рдВрдЪрд╛рдпрдХ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ: рд╕рдореАрдХрд░рдг рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдорд╛рдк рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреАред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рджреЛ рдЖрдпрд╛рдореАред рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рд╣рд╛рдл рд╕реНрдкреЗрд╕ (рдЗрд╕рдХрд╛ рдХрдо рд╕реЗ рдХрдо рд╣рд┐рд╕реНрд╕рд╛) рд╣реЛрдЧрд╛ - рдЗрд╕рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЙрдирдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, A рдХреНрд╖реИрддрд┐рдЬ рд╣реИ рдФрд░ B рд▓рдВрдмрд╡рдд рд╣реИред рд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рд╕реАрдзреА рд░реЗрдЦрд╛ = рд╣рд╛рдл рд╕реНрдкреЗрд╕ рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБред
рд╣рдо рдореВрд▓ рдЫрд╡рд┐ рдХреЛ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЧреИрд░-рдЦрд╛рд▓реА рдмрд┐рдВрджреБ (x
0 , y
0 ) рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрди рд░реЗрдЦрд╛рдУрдВ рдХреЗ рд╕рдореВрд╣ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдмрд┐рдВрджреБ рд╕реЗ рдЧреБрдЬрд░ рд╕рдХрддреА рд╣реИрдВ: y
0 = Ax
0 + B. рдпрд╣рд╛рдБ x
0 рдФрд░ y
0 рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИрдВ, A рдФрд░ B рдЪрд░ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдореАрдХрд░рдг Hough рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рд░реЗрдЦрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдЕрдкрдиреА рдмреИрдЯрд░реА рдореЗрдВ рдЗрд╕ рд░реЗрдЦрд╛ рдХреЛ "рдЖрдХрд░реНрд╖рд┐рдд" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ 1 рдЬреЛрдбрд╝ рджреЗрдВ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорддрджрд╛рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЙрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдЯ рд╡реЛрдЯ рдЬреЛ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░ рд╕рдХрддреА рд╣реИред
рдирддреАрдЬрддрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рд╕рднреА рд╡реЛрдЯ рдмреИрдЯрд░реА рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдпрд╣ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рд╡реЛрдЯ рдХреЗ рд╡рд┐рдЬреЗрддрд╛" рдореВрд▓ рдЫрд╡рд┐ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВред рдпрд╣рд╛рдБ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдереНрд░реЗрд╢реЛрд▓реНрдб рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣рд╛рдлрд╝ рд╕реНрдкреЗрд╕ рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рдмреИрдЯрд░реА рдХреЛ рднрд░рдирд╛ рд╣реИред
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдЪрд┐рддреНрд░рдг:

GPU рдореБрджреНрджреЛрдВ
рдЬреАрдкреАрдпреВ рдХреЛ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдЫреЛрдЯреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдХрдИ (рд╣рдЬрд╛рд░реЛрдВ рддрдХ) рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░, рдЖрдорддреМрд░ рдкрд░, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдмрд╕ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ: рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдХрд╛рдо рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдореВрд▓ рдЫрд╡рд┐ рдХреЛ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдЕрдкрдирд╛ рдЯреБрдХрдбрд╝рд╛ рджреЗрддреЗ рд╣реИрдВ - рдФрд░ рдЖрдкрдХрд╛ рдХрд╛рдо рд╣реЛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рд╣рдо рдмреИрдЯрд░реА рдХреЛ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ, рд╣реЛрдл рд╕реНрдкреЗрд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕реНрдерд╛рди рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯрд┐рдВрдЧ рдмрд┐рдВрджреБ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ, рдмрд╕ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ - рдЕрдиреНрдпрдерд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдЕрдкрдиреА рдмреИрдЯрд░реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж, рдмреИрдЯрд░реА рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди, рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рд╣рдЬрд╛рд░реЛрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдмрд╣реБрдд рд╕реНрдореГрддрд┐ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░реЗрдЧрд╛ред
рдПрдХ рдФрд░, рдЫреЛрдЯреА, рд╕рдорд╕реНрдпрд╛ рд╣реИ рд╣рд╛рдлрд╝ рд╕реНрдкреЗрд╕ рдореЗрдВ "рдбреНрд░рд╛рдЗрдВрдЧ" рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдоред рд╡реЗ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд▓реЛрдЧреЛрдВ рдореЗрдВ рд▓реВрдк рдФрд░ рд╢рд╛рдЦрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред рд▓реЗрдХрд┐рди рдЬреАрдкреАрдпреВ рдХреЛ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ: рдЫреЛрдЯреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЕрдкрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╡реЗ рд╕рднреА рдПрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд╕рднреА рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рд╕рдореВрд╣реЛрдВ рдореЗрдВ)ред рдмрд╕ рд╣рд░ рдХреЛрдИ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рд╢рд╛рдЦрд╛ рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдлрд┐рд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдФрд░ рд▓реВрдк рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдХрдИ рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдХрдореА рдЖрддреА рд╣реИред
GPU рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рдВрд╢реЛрдзрди
рдореЗрд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдерд╛: рдХреНрдпреЛрдВ рди "рдкреНрд░рднрд╛рд╡ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ" рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдмрд▓реНрдХрд┐ рдореВрд▓ рдЫрд╡рд┐ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╣рд╛рдлрд╝ рд╕реНрдкреЗрд╕? рдпрд╣реА рд╣реИ, рдЖрдЗрдП рдЕрд▓рдЧ-рдЕрд▓рдЧ Hough рд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИ: рд╕реНрд░реЛрдд рдЫрд╡рд┐ рдХрд╛ рдХреЛрдИ рднреА рдмрд┐рдВрджреБ "рдЖрд╡рд╛рдЬрд╝" рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЙрди рд╕рднреА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред рдХреБрд▓, рдкрдврд╝рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди
рдХреА рд╕рдВрдЦреНрдпрд╛ =
[рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛] x
[рдмреИрдЯрд░реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛] , рдЬрдмрдХрд┐ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓
[рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛] рд╣реИ ред
рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рдУрд░, рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ -
[рдмреИрдЯрд░реА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛] рдмрдирд╛рдо
[рдЧреИрд░-рдЦрд╛рд▓реА рдмрд┐рдВрджреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ ] x
[рд╣реВрдк рд╕реНрдерд╛рди рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рдХреА рдЫрд╡рд┐ рдХреА рдФрд╕рдд рд▓рдВрдмрд╛рдИ] ред рдпрджрд┐ рдХрдИ рдЧреИрд░-рдЦрд╛рд▓реА рдмрд┐рдВрджреБ рд╣реИрдВ, рддреЛ рдЕрдВрддрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдХреБрд▓ рдореЗрдВ, рдЕрдзрд┐рдХ рд░реАрдб, рдХрдо рд░рд┐рдХреЙрд░реНрдб рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ GPU рдХреА рд╢рдХреНрддрд┐ рдФрд░ рдХреНрдпрд╛ рд╣реИред рдкрдврд╝рдиреЗ рдХреА рдЧрддрд┐ рдореЗрдВ! рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рддреЗрдЬ рдореЗрдореЛрд░реА рд╕реЗ рд▓реИрд╕ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдорд╛ рддрдХ "рд╕реАрдзрд╛" рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдпрд╣ рд╕рдм рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рд╣реИред рд╕рдЪ рд╣реИ, рдпрд╣ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЗ рдЕрд╡рд░реЛрдз рдХреЗ рд▓рд┐рдП рд╣реИ - рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдкрдврд╝рд╛ рдЕрдиреБрд░реЛрдз рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рджреВрд╕рд░рд╛ рд╡рд┐рдЪрд╛рд░ред рдпрджрд┐ рд╣рд╛рдлрд╝ рд╕реНрдкреЗрд╕ рдореЗрдВ "рдбреНрд░рд╛" рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рддреЛ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреА "рдбреНрд░рд╛рдЗрдВрдЧ" рдкреНрд░рддрд┐рднрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ? рдЪрд▓реЛ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдзреЗ рд╕реНрдерд╛рди рдкрд░ рдореВрд▓ рдЫрд╡рд┐ рдХреЛ рдУрд╡рд░рд▓реЗ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рдкрджреНрдзрддрд┐ рдореЗрдВ рди рддреЛ OpenCL рдпрд╛ CUDA рдХреЛрдб рдФрд░ рди рд╣реА shaders рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Hough рд╕реНрдкреЗрд╕ рдХреА рдЫрд╡рд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдХреЛ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдЧреИрд░-рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХрддрд╛ рд╣реИ: рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпреЗ рджреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВ: рдПрдХ рд╕рд░реНрдХрд▓ рдХреЗ рд▓рд┐рдП рдФрд░ рджреВрд╕рд░рд╛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рд╕рд░реНрдХрд▓" рдХреА рд╡рд┐рдзрд┐ рдХрд┐рд╕реА рднреА рдмрдВрдж рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рд╕рдореАрдХрд░рдг рдореЗрдВ рддреАрди рдпрд╛ рдЕрдзрд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЖрдВрдХрдбрд╝реЗ рдкрд░ рд▓рд╛рдЧреВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рджрдХреНрд╖рддрд╛ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред
"рдордВрдбрд▓рд┐рдпреЛрдВ" рдХреА рд╡рд┐рдзрд┐
рд╕рд░реНрдХрд▓ рдХреЛ рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдореАрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - (xx
0 )
2 + (yy
0 )
2 = R
2 ред рдпрд╣рд╛рдБ (x
0 , y
0 ) рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВ, рдФрд░ R рддреНрд░рд┐рдЬреНрдпрд╛ рд╣реИред рд╣рдлрд╝ рд╕реНрдкреЗрд╕ рдореЗрдВ рддреАрди рдЖрдпрд╛рдо рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдЖрдк рдХреЛ рджреЛ рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЖрд░ рдХреЛ рдареАрдХ рдХрд░реЗрдВрдЧреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ)ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╕рднреА рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрдВрджреНрд░ (рдПрд╕) рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВред
рдРрд╕реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЫрд╡рд┐ рд▓реЗрдВ (рд╕рднреА рдПрдХ рд╣реА рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЗ рд╡реГрддреНрдд)

рдФрд░, рдЗрд╕реЗ рд▓рдЧрднрдЧ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рддреЗ рд╣реБрдП, рд╣рдо рдЦреБрдж рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рдЧрд╛рддреЗ рд╣реИрдВ:

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

рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрдХрд▓ рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рд░реНрдХрд▓ рдХреЗ рдХреЗрдВрджреНрд░ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдЗрди рдмрд┐рдВрджреБрдУрдВ рдкрд░, рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЕрдзрд┐рдХрддрдо рдЪрдордХ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред
рдпрджрд┐ рдЖрдк рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ 32 рдмрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:

рдФрд░ рджрд╣рд▓реАрдЬ рдЫрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж:

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ Hough рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рджреЛ рдЖрдпрд╛рдо рднрд░реЗред рдЕрдм, рддреНрд░рд┐рдЬреНрдпрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдХреЗ, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рддреАрд╕рд░реЗ рдХреЛ рднрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЖрдк рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рднреА 3 рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЬрдорд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХреЗрдВрджреНрд░ рдФрд░ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдореГрддрд┐ рдХреЛ рдореБрдХреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдХреЛрдб (рдкреНрд░рдмрдВрдзрд┐рдд DirectX, рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг - рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рд╕реЗ) рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд┐рдд рдЖрдпрддреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг:
float r = (float)rAbs / targetSize; for (int i = 0; i < n; i++) { double angle = 2 * Math.PI / n * i; rectangles.Add(new TexturedRect(new Vector2(1f, 1f), new Vector2((float)(Math.Cos(angle) * r), (float)(Math.Sin(angle) * r)), new Vector2(1f, 1f), new Vector2(0f, 0f), 0)); }
рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЕрд▓реНрдлрд╛ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб:
device.RenderState.AlphaBlendEnable = true, device.RenderState.BlendFactor = (byte)(256.0 * brightness / n) device.RenderState.BlendOperation = BlendOperation.Add; device.RenderState.SourceBlend = Blend.BlendFactor; device.RenderState.DestinationBlend = Blend.One;
рдпрд╣рд╛рдБ
rAbs
рд╡рд╛рдВрдЫрд┐рдд рддреНрд░рд┐рдЬреНрдпрд╛,
brightness
- рдЪрдордХ,
n
- рдкрд░рддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛
rAbs
рдХрд░рддрд╛ рд╣реИред
рдЖрдк рдмрдирд╛рд╡рдЯ рдореЗрдВ рд╕рдм рдХреБрдЫ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
new Microsoft.DirectX.Direct3D.Texture(device, targetSize, targetSize, 1, Usage.RenderTarget, cbGray.Checked ? Format.L8 : Format.X8R8G8B8, Pool.Default); dxPanel.RenderToTexture(new Options() { AlphaBlendEnable = true, BlendFactor = (byte)(256.0 * (tbBrightness.Value / 100.0) / n) }, rectangles);
рдФрд░ рдЖрдк рдПрдХ 3 рдбреА рдмрдирд╛рд╡рдЯ рдФрд░ рдкрд░рддреЛрдВ рдХреЗ рдХрдИ рд╕реЗрдЯреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдмреНрдпрд╛рдЬ рдХреА рд╕рднреА рд░рд╛рдбрд┐рдпреЛрдВ рдХреЛ рд░реЗрдВрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдПрдХ рд╕рдордп рдореЗрдВ рддреАрди рдЖрдпрд╛рдореА рд╣реЛрдл рд╕реНрдкреЗрд╕ рдорд┐рд▓ рд╕рдХреЗ (рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА)ред
рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рд╕рд╛рде рдРрд╕реА рдмрд╛рд░реАрдХрд┐рдпрд╛рдВ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдЖрдк 8-рдмрд┐рдЯ рд░рдВрдЧ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд▓реЗрдВрдбрдлреИрдХреНрдЯрд░ 10 рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛, 1 рддрдХред рдпрд╣ рдмрдбрд╝реА рдЧреЛрд▓рд╛рдХрд╛рд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдмреНрд▓реЗрдВрдбрдлрд╝реИрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдордЧреНрд░ рдЪрдордХ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЪрдордХ рдореЗрдВ рдПрдХ рд╕реМрддреЗрд▓рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рдЪрдордХ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдорд╛рди рдЧреЛрд▓рд╛рдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╕рднреА рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрд╢реЛрд▓реНрдб рдорд╛рди рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдПрдХ рдЫрд╡рд┐ рдХреЛ рдЧреНрд░реЗ рдХреЗ рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд░рдВрдЧреЛрдВ рдХреЛ рдиреБрдХрд╕рд╛рди рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмреНрд▓реЗрдВрдбрдлреИрдХреНрдЯрд░ = 1 рдХреЗ рд╕рд╛рде рдЦреЛ рдЬрд╛рдПрдЧрд╛ред
рд░реЗрдВрдбрд░ рдЯрд╛рд░рдЧреЗрдЯ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 16 рдпрд╛ 32 рдмрд┐рдЯреНрд╕) рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рд░рдВрдЧ рдХреА рдЧрд╣рд░рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рд╢реЛрд░ рдЫрд╡рд┐ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ:

рдкрд░рд┐рдгрд╛рдо (64 рдкрд░рддреЗрдВ):

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

рдФрд░ рдпрд╣рд╛рдВ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдИрдорд╛рдирджрд╛рд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдЯреЗрдХреНрд╕рд▓реНрд╕ рдХреЛ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╕реЗ рдмрдирд╛рд╡рдЯ рдкрд░ рд▓реЗ рдЬрд╛рдПрдВ рдФрд░ рдЙрдирдХреЗ рдФрд╕рдд рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред рдЗрд╕реЗ рдЕрдирд┐рд╕реЛрдЯреНрд░реЛрдкрд┐рдХ (рджрд┐рд╢рд╛-рдирд┐рд░реНрднрд░) рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдирд┐рд╕реЛрдЯреНрд░реЛрдкрд┐рдХ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рд╕реНрддрд░ 16 (рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдЯреЗрдХреНрд╕рд▓реНрд╕) рд╣реИред
рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реА
рд╣рдорд╛рд░реА рдЫрд╡рд┐ рдФрд░ рдЗрд╕реЗ "рд╕рдорддрд▓" рд▓реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рдВрдмрд╡рддред рдпрд╛рдиреА рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдЖрдпрдд 1 рдкрд┐рдХреНрд╕реЗрд▓ рдЙрдЪреНрдЪ рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд░реЗрдЦрд╛рдПрдВ рдмрд┐рдВрджреБрдУрдВ (рдореИрдХреНрд╕рд┐рдорд╛) рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреАред рдмрд╛рдХреА рд╕рдмрдХреБрдЫ рдзреВрдорд┐рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдореВрд▓реНрдп рдорд┐рд▓рд╛ рд╣реИ - рдпрд╣ рдЫрд╡рд┐ рдХреЗ рдмрд╛рдПрдВ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдмрд┐рдВрджреБ (рдореВрд▓ рдЫрд╡рд┐ рдореЗрдВ рд▓рд╛рдЗрди рддрдХ) рд╕реЗ рджреВрд░реА рд╣реИред
рдЕрдм рдЪрд▓реЛ рдЫрд╡рд┐ рдХреА рдПрдХ рдирдИ рдкреНрд░рддрд┐ рд▓реЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪрдкрдЯреЗ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЫреЛрдЯреЗ рдХреЛрдг рдкрд░ рдШреБрдорд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЪрд┐рддреНрд░ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рдЪрдкрдЯрд╛ рд╣реЛ рдЧрдпрд╛ред рдХреБрдЫ рд▓рд╛рдЗрдиреЗрдВ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЬрд╛рддреА рд╣реИрдВред рдпреЗ рд╡реЛ рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрдВрдЧреА рдЬреЛ рдЫрд╡рд┐ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдПрдХ рд╣реА рдХреЛрдг рдкрд░ рдЭреБрдХреА рд╣реЛрддреА рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, 0 рд╕реЗ рдкрд╛рдИ рддрдХ рд╕рднреА рдХреЛрдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рди рдорд┐рд▓рддреЗ рд╣реИрдВ - рдЪрд┐рддреНрд░ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХрд╛ рдХреЛрдгред рдЗрди рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХрд┐рд╕реА рднреА рдореВрд▓ рд╕реАрдзреА рд░реЗрдЦрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╕рдм рдмрдиреА рд╣реБрдИ рдЫрд╡рд┐ рдХрд╛ рдареАрдХ рд╕реЗ рд╕рдорддрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╢реНрди рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕рд┐рд░ рдкрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рд╢реЛрд░ рд░рд╣рддрд╛ рд╣реИ - рдЕрдирд┐рд╕реЛрдЯреНрд░реЛрдкрд┐рдХ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ 16 рдЯреЗрдХреНрд╕рд▓реНрд╕ (рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рдкрд┐рдХреНрд╕реЗрд▓) рд╣реЛрдВрдЧреЗред рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдЖрдк рдЫрд╡рд┐ рдХреЛ 16 рдкрд┐рдХреНрд╕реЗрд▓ рдЪреМрдбрд╝рд╛, рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ рд╕реЗ рд╕рдорддрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ,

рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдКрдкрд░ рдЦреАрдВрдЪреЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд╕рд░реНрдХрд▓ рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

(рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЪрд┐рддреНрд░ 4 рдмрд╛рд░ рдмрдврд╝реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡рд┐рд╡рд░рдг рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХреЗ)
рдпрджрд┐ рдЫрд╡рд┐ 16 * 256 = 4096 рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрдзрд┐рдХ рдКрдВрдЪрд╛рдИ рдХреЗ рдЖрдпрддреЛрдВ рдореЗрдВ рдХрд╛рдЯ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЕрдзрд┐рдХ рд░рдВрдЧ рдХреА рдЧрд╣рд░рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдРрд╕реА рдЫрд╡рд┐ рдмрд╕ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдХреЛрдиреЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЦреЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдпрд╛ рдПрдХ рдЧреИрд░-рд╡рд░реНрдЧ рдЫрд╡рд┐ рдХреЗ рдЫреЛрдЯреЗ рдкрдХреНрд╖реЛрдВ рдХреЗ рдкрд╛рд╕, рдЖрдкрдХреЛ рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рд╡рд┐рдХрд░реНрдг рдХреЗ рдмрд░рд╛рдмрд░ рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде рд░реЗрдВрдбрд░ рдЯрд╛рд░рдЧреЗрдЯ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╡рд╣ рдХреЛрдб рдЬреЛ рдЯреЗрдХреНрд╕рдЪрд░ рд╕реИрдВрдкрд▓рд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдореИрдВ рдЯреЗрдХреНрд╕рдЪрд░ рдХреЛрдСрд░реНрдбрд┐рдиреЗрдЯреНрд╕ рдХреЛ рд░реЛрдЯреЗрдЯ рдХрд░рдХреЗ рд░реЛрдЯреЗрд╢рди рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕реИрдВрдкрд▓рд░ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдмреНрд▓реИрдХ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд░ рд░реЛрдЯреЗрд╢рди рдХреА рд╡рдЬрд╣ рд╕реЗ рдХрд╣реАрдВ рдХреЛрдИ рдЯреЗрдХреНрд╕рдЪрд░ рдирд╣реАрдВ рд╣реИ)ред
device.SamplerState[0].MinFilter = TextureFilter.Anisotropic; device.SamplerState[0].MaxAnisotropy = 16; device.SamplerState[0].AddressU = TextureAddress.Border; device.SamplerState[0].AddressV = TextureAddress.Border; device.SamplerState[0].AddressW = TextureAddress.Border; device.SamplerState[0].BorderColor = Color.Black;
рдЖрдпрддреЗрдВ рдмрдирд╛рдирд╛
double sourceRectPixelWidth = sourceSize / n; double targetRectPixelWidth = Math.Ceiling(sourceRectPixelWidth / anizotropy); int angleValues = (int)Math.Floor(targetSize / targetRectPixelWidth); float sourceRectWidth = (float)(sourceRectPixelWidth / sourceSize); float tarectRectWidth = (float)(targetRectPixelWidth / targetSize); for (int angleNumber = 0; angleNumber < angleValues; angleNumber++) { double angle = Math.PI / angleValues * angleNumber; float targetShift = tarectRectWidth * angleNumber; for (int sliceNumber = 0; sliceNumber < n; sliceNumber++) { float sourceShift = sourceRectWidth * sliceNumber; rectangles.Add(new TexturedRect( new Vector2(tarectRectWidth, 1f), new Vector2(targetShift, 0f), new Vector2(sourceRectWidth, 1f), new Vector2(sourceShift, 0f), (float)angle)); } }
рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдХреА рддрд░рд╣ рд╣реА рд╢реЛрд░ рд╡рд╛рд▓реА рдЫрд╡рд┐, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рд▓рд╛рдЗрдиреЛрдВ (32 рдкрд░рддреЛрдВ, рд░реЛрдЯреЗрд╢рди рдХреЛрдг рдХреЗ 512 рдЪрд░рдгреЛрдВ) рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

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

рдлрд┐рд░, рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЕрдВрдХ 1, рдП 2 рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП, рд╕рдореЛрдЪреНрдЪ рдкрд░ рд╣рдо рд╡реИрдХреНрдЯрд░ рдПрдУ рджреНрд╡рд╛рд░рд╛ рдЫрд╡рд┐ рдкрд░рддреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдХреЛрдг рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдЖрдХреГрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

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

рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкрджреНрдзрддрд┐ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн
- рдореЗрдореЛрд░реА рд╕рд╣реЗрдЬреЗрдВ (рдЖрдк рдореЗрдореЛрд░реА рдореЗрдВ рд╕рднреА рдорд╛рдк рдирд╣реАрдВ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ)
- рдЖрдк рдмрд┐рдирд╛рд░рд╛рдЗрдЬреЗрд╢рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢реЗрдбреНрд╕ рдСрдл рдЧреНрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЧрддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рдЯреАрдХрддрд╛ рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред
- рдЖрдк рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЧрддрд┐ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХреЗ рд╕реЗ, рдЖрдк рдпрд╣ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдПрдХрд░реВрдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рд╖реНрдХрд╛рд░ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рди рд╣реА рдХрд┐рд╕реА рдХреЛрдг рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛)
- рдЖрдк рдмрд╣реБрдд рд╢реЛрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдЧрддрд┐ рдХрдо рдирд╣реАрдВ рд╣реЛрдЧреА
- рдмреЛрдирд╕ред рдЖрдк рдХреЗрдкреАрдбреАрд╡реА рдкрд░ рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдВрдЧреАрди рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЙрддреНрдкрд╛рджрдХрддрд╛
рд╕реАрдкреАрдпреВ рдФрд░ рдЬреАрдкреАрдпреВ рдХреЗ рдмреАрдЪ рд╢реБрджреНрдз рдЧрд┐рдирддреА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬреАрдкреАрдпреВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣рд╛рд░реНрдб рдкрд╛рд░реНрдЯреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдбреЗрдЯрд╛ рд▓реЛрдб рдФрд░ рдЕрдирд▓реЛрдбрд┐рдВрдЧ рд╣реИред рдпрд╣ рд╢рд╛рдпрдж рд╣реА рд╕реАрдкреАрдпреВ рдореЗрдВ рдХрдЪреНрдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдХреЙрдореНрдкреИрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдкрд╛рдП рдЧрдП рдЖрдХрд╛рд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЙрддрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдВрдХ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдбреЗрдЯрд╛ рд╕рдВрдХрд▓рди рднреА рдмрд╣реБрдд рд╣реА рдЪрд╛рд▓рд╛рдХреА рд╕реЗ GPU рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЕрднреА рддрдХ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛ рд╣реВрдВред
рд╢реБрджреНрдз рдХрдард┐рди рд░реВрдкрд╛рдВрддрд░рдг рдкреНрд░рджрд░реНрд╢рдиред рдкреНрд░рд╡реЗрд╢ рдФрд░ рдирд┐рдХрд╛рд╕ - 2048 * 2048, GPU - GeForce GTS250:

рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, OpenCV рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЗрди рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдоред рдЗрдирдкреБрдЯ - 2048 * 2048, рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмреАрдЪ 2048 рдЪрд░рдгреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди, рд╕реАрдкреАрдпреВ - рдХреЛрд░ i5 750 @ 3700Mhzред

рдЗрд╕ рд╕рдордп рд╕реЗ, 50-80 рдПрдордПрд╕ рдХреИрдиреА рд╕реАрдорд╛ рдбрд┐рдЯреЗрдХреНрдЯрд░ (рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рджреЛ-рд░рдВрдЧ рдХреА рдЫрд╡рд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реИ) рдкрд░ рдЬрд╛рддреА рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖: рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ, GPU 5-20 рдЧреБрдирд╛ рддреЗрдЬ рд╣реИред рд╢реЛрд░ / рд╡рд┐рд╕реНрддреГрдд рдЫрд╡рд┐рдпреЛрдВ рдкрд░, рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ 100 - 300 рдмрд╛рд░ рд╣реЛ рд╕рдХрддреА рд╣реИред
рд╕рд░реНрдХрд┐рд▓реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреА рдЧрддрд┐ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдУрдкрдирд╕реАрд╡реА рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд
рдврд╛рд▓ рд╡рд┐рдзрд┐ ред
рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рдордЧреНрд░реА
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕реНрд░реЛрдд (DirectX SDK рдЬреВрди 2010 рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)
рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рд╡рд░реНрддрдирдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдордирдорд╛рдиреА рдШрдЯрддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдоGPU рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдкрд╛рдВрддрд░рдгOpenCV рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдирд╛рддрдХ рд╡рд┐рдзрд┐UPD: рд╣рд╛рдВ, рд╕рдВрд▓рдЧреНрди рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ .NET рдФрд░ DirectX рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реНрд╡рдпрдВ рдЙрдирд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИред рдЙрд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде, рдЖрдк рдЗрд╕реЗ c ++ рдФрд░ OpenGL рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред CUDA рдФрд░ OpenCL рдХреА рдЕрднреА рднреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред