рдЧрд╣рд░рд╛рдИ рд╕рдЯреАрдХрддрд╛

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

GPU рдкрд░ рдЧрд╣рд░рд╛рдИ рд░реВрдкрд╛рдВрддрд░рдг рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдореАрдХрд░рдгреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреБрдЫ рдЪрд┐рддреНрд░ рдмрдирд╛рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред

рдЫрд╡рд┐

рдпрд╣ рд▓реЗрдЦ 3 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:

  1. рдореИрдВ рдЕрд░реЗрдЦреАрдп рдЧрд╣рд░рд╛рдИ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рдгрд╛ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
  2. рдореИрдВ рдХрдИ рдЧреНрд░рд╛рдл рдкреНрд░рд╕реНрддреБрдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЧреИрд░-рд░реИрдЦрд┐рдХ рдЧрд╣рд░рд╛рдИ рд░реВрдкрд╛рдВрддрд░рдг рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╕рд╣рдЬ рдФрд░ рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
  3. рдЧрд╣рд░рд╛рдИ рд╕рдЯреАрдХрддрд╛ рдкрд░ рд░рд╛рдЙрдВрдб-рдСрдл рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреА рдХрд╕реМрдЯреА рдкрд░ рдХрд╕рдиреЗ рдХреЗ рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреА рдЪрд░реНрдЪрд╛ [рдкреЙрд▓ рдЕрдкрдЪрд░реНрдЪ, рдореИрдереНрдпреВ рджреЗрд╕рдмреНрд░рди (2012)]ред


рдХреНрдпреЛрдВ 1 / z?


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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрд╣рд░рд╛рдИ рдмрдлрд░ (рд░реЗрдВрдЬ [0, 1] рдореЗрдВ рдбрд╛рдпрд░реЗрдХреНрдЯрдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдорд╛рдиреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реВрдБрдЧрд╛, рдФрд░ рдЬреЗрдб рдЧрд╣рд░рд╛рдИ рдЧрд╣рд░рд╛рдИ-рд╕реНрдерд╛рди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрд░реНрдерд╛рддреНред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢реНрд╡ рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдХреИрдорд░реЗ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреВрд░реАред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдирд┐рдореНрди рд░реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЬрд╣рд╛рдБ a, b рд╡рд┐рдорд╛рдиреЛрдВ рдХреЗ рдирд┐рдХрдЯ рдФрд░ рджреВрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, d рд╣рдореЗрд╢рд╛ 1 / z рд╕реЗ рдХреБрдЫ рд░реИрдЦрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИред

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ z рдХреЗ рдХрд┐рд╕реА рднреА рдлрдВрдХреНрд╢рди рдХреЛ d рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рд╡рд╣ рдРрд╕рд╛ рдХреНрдпреЛрдВ рджрд┐рдЦрддрд╛ рд╣реИ? рдЗрд╕рдХреЗ рджреЛ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, 1 / z рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рд╡рд░реНрдЧ рд╣реИ, рдЬреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рддреНрд░рд┐рдХреЛрдг рдХреЗ рд╕реАрдзреЗ рдХрд┐рдирд╛рд░реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реАрдзреЗ рд░рд╣рддреЗ рд╣реИрдВред рд╣рдо 1 / z рд╕реЗ рдПрдХ рд░реИрдЦрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж GPU рдХреЗ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╡рд┐рднрд╛рдЬрди рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддрд╛ рд╣реИ:

рдЫрд╡рд┐

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

рджреВрд╕рд░рд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ 1 / z рд╕реНрдХреНрд░реАрди рд╕реНрдкреЗрд╕ рдореЗрдВ рд░реИрдЦрд┐рдХ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдорд┐рд▓ рдкрд░реНрд╕рди рдиреЗ рдиреЛрдЯ рдХрд┐рдпрд╛ рдерд╛ ред рдпрд╣ рддреНрд░рд┐рднреБрдЬ рдореЗрдВ рдбреА рдХреЛ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдЬреЗрдб-рдмрдлрд╝рд░ , рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬреЗрдб-рдХреБрд▓рд┐рдВрдЧ рдФрд░ рд╕рдВрдкреАрдбрд╝рди рдЧрд╣рд░рд╛рдИ рдмрдлрд░ рдЬреИрд╕реА рдЪреАрдЬреЗрдВред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд▓реЗрдЦ рд╕реЗ
рдЬрдмрдХрд┐ w (рд╡реНрдпреВ-рд╕реНрдкреЗрд╕ рдбреЗрдкреНрде) рдХрд╛ рдорд╛рди рд╡реНрдпреВ рд╕реНрдкреЗрд╕ рдореЗрдВ рд░реИрдЦрд┐рдХ рд╣реИ, рдпрд╣ рд╕реНрдХреНрд░реАрди рд╕реНрдкреЗрд╕ рдореЗрдВ рдЧреИрд░-рд░реИрдЦрд┐рдХ рд╣реИред z (рдЧрд╣рд░рд╛рдИ) , рджреГрд╢реНрдп рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЧреИрд░-рд░реИрдЦрд┐рдХ, рджреВрд╕рд░реА рдУрд░ рд╕реНрдХреНрд░реАрди рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд░реИрдЦрд┐рдХред рдпрд╣ рдПрдХ рд╕рд░рд▓ DX10 shader рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

float dx = ddx(In.position.z); float dy = ddy(In.position.z); return 1000.0 * float4(abs(dx), abs(dy), 0, 0); 

рдпрд╣рд╛рдБ In.position SV_Position рд╣реИред рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЫрд╡рд┐

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

рдЧрд╣рд░рд╛рдИ рдЪрд╛рд░реНрдЯ


рд╕рдореАрдХрд░рдг рдЬрдЯрд┐рд▓ рд╣реИрдВ, рдЖрдЗрдП рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рджреЗрдЦреЗрдВ!

рдЫрд╡рд┐

рдЗрди рдЪрд╛рд░реНрдЯреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ, рдлрд┐рд░ рдиреАрдЪреЗ рд╣реИред рдмрд╛рдПрдВ рдЕрдХреНрд╖ рдкрд░ d рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред рдЪреВрдВрдХрд┐ d 1 / z рд╕реЗ рдПрдХ рдордирдорд╛рдирд╛ рд░реИрдЦрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдХреНрд╖ рдкрд░ рдХрд┐рд╕реА рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрдерд╛рди рдкрд░ 0 рдФрд░ 1 рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд╛рд░реНрдХреНрд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧрд╣рд░рд╛рдИ рдмрдлрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ 4-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЧрд╣рд░рд╛рдИ рдмрдлрд░ рдХреЛ рдореЙрдбрд▓ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП 16 рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдирд┐рд╢рд╛рди рд╣реИрдВред

рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░рд╛рдл "рдорд╛рдирдХ" рд╡реИрдирд┐рд▓рд╛ рдЧрд╣рд░рд╛рдИ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдбреА 3 рдбреА рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдПрдкреАрдЖрдИ рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЖрдк рддреБрд░рдВрдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐, 1 / z рд╡рдХреНрд░ рдХреЗ рдХрд╛рд░рдг, рд╕рдореАрдк рдХреЗ рд╕рдореАрдк рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реБрджреВрд░ рд╕рдореАрдк рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рдмрд┐рдЦреЗрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рд╕рдордЭрдирд╛ рднреА рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рд╡рд┐рдорд╛рди рдХреЗ рдкрд╛рд╕ рдЧрд╣рд░рд╛рдИ рд╕рдЯреАрдХрддрд╛ рдХреЛ рдЗрддрдирд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдорд╛рди рдХреЗ рдкрд╛рд╕ рдХреА рджреВрд░реА z рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ d рдХреЗ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рд╡реГрджреНрдзрд┐ рдХрд░реЗрдЧреА, рдЬрд┐рд╕рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдФрд░ рднреА рдЕрдзрд┐рдХ рдЕрд╕рдорд╛рди рд╡рд┐рддрд░рдг рд╣реЛрдЧрд╛:

рдЫрд╡рд┐

рдЗрд╕реА рддрд░рд╣, рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рджреВрд░ рдХреЗ рд╡рд┐рдорд╛рди рдХреЛ рдЕрдирдВрдд рддрдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдкреНрд░рднрд╛рд╡ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╕рд┐рд░реНрдл d / 1 рдХреА рд╕реАрдорд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╣реИред 0 :

рдЫрд╡рд┐

рд▓реЗрдХрд┐рди рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдбреЗрдкреНрде рдХрд╛ рдХреНрдпрд╛? рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреНрд░рд╛рдл рдореЗрдВ рдШрд╛рддрд╛рдВрдХ рдХреЗ 3 рдмрд┐рдЯреНрд╕ рдФрд░ рдордВрдЯрд┐рд╕рд╛ рдХреЗ 3 рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдлреНрд▓реЛрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдЕрдиреБрд░реВрдк рдЕрдВрдХ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ:

рдЫрд╡рд┐

рдЕрдм рд╕реАрдорд╛ [0,1] рдореЗрдВ 40 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореВрд▓реНрдп рд╣реИрдВ - рдкрд╣рд▓реЗ рд╕реЗ 16 рдорд╛рдиреЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмреЗрдХрд╛рд░ рд╡рд┐рдорд╛рди рдХреЗ рдХрд░реАрдм (рд▓рдЧрднрдЧ 0 рдлреНрд▓реЛрдЯ рдХреА рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреЗ рдкрд╛рд╕) рд╕рдореВрд╣реАрдХреГрдд рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рдЯреАрдХрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

рдЫрд╡рд┐

рдмрд╣реБрдд рдмреЗрд╣рддрд░! рдЕрдм рдлреНрд▓реЛрдЯ рдХрд╛ рдЕрд░реНрдз-рд▓рдШреБрдЧрдгрдХ рд╡рд┐рддрд░рдг рдХрд┐рд╕реА рддрд░рд╣ 1 / z рдХреА рдЧреИрд░-рд░реИрдЦрд┐рдХрддрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдирд┐рдХрдЯ рд╡рд┐рдорд╛рди рдХреЗ рдХрд░реАрдм рдпрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рдЧрд╣рд░рд╛рдИ рдмрдлрд░ рдХреЗ рд╕рдорд╛рди рд╕рдЯреАрдХрддрд╛ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдХрд╣реАрдВ рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХрддрд╛ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХреИрдорд░реЗ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ рддреЛ рдЧрд╣рд░рд╛рдИ рд╕рдЯреАрдХрддрд╛ рдмрд╣реБрдд рдзреАрд░реЗ-рдзреАрд░реЗ рдмрд┐рдЧрдбрд╝рддреА рд╣реИред

рдЙрд▓рдЯ-рдЬреЗрдб рдЪрд╛рд▓ рдХреЛ рдХрдИ рдмрд╛рд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдкреНрд░рдмрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдкрд╣рд▓рд╛ рдЙрд▓реНрд▓реЗрдЦ SIGGRAPH '99 рдХрд╛рдЧрдЬ [рдпреВрдЬреАрди рд▓рд╛рдкрд┐рдбрд╕ рдФрд░ рдЧреБрдУрдлрд╛рдВрдЧ рдЬрд┐рдУ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ)] рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдореИрдЯ рдкреЗрдЯреАрдиреЛ рдФрд░ рдмреНрд░реИрдиреЛ рдХреЗрдореЗрди рджреНрд╡рд╛рд░рд╛ рдмреНрд▓реЙрдЧ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдПрдорд┐рд▓ рдкрд░реНрд╕рди рдХреНрд░рд┐рдПрдЯрд┐рдВрдЧ рд╡рд╛рд╕реНрдЯ рдЧреЗрдо рд╡рд░реНрд▓реНрдбреНрд╕ рд╕рд┐рдЧрдЧреНрд░реИрдк 2012 рдХреЗ рдПрдХ рднрд╛рд╖рдг рдореЗрдВред

рд╕рднреА рдкрд┐рдЫрд▓реЗ рдЧреНрд░рд╛рдлрд╝ рдиреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЗ рдмрд╛рдж рдЧрд╣рд░рд╛рдИ рдХреА рдПрдХ рд╕реАрдорд╛ [0.1] рдорд╛рди рд▓реА, рдЬреЛ рдбреА 3 рдбреА рдореЗрдВ рдПрдХ рд╕рдореНрдореЗрд▓рди рд╣реИред OpenGL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдЫрд╡рд┐

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ OpenGL рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЗ рдмрд╛рдж рдЧрд╣рд░рд╛рдИ рдХреА рд╢реНрд░реЗрдгреА [-1, 1] рдХреЛ рдорд╛рдирддрд╛ рд╣реИред рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдЯреАрдХрддрд╛ рдордзреНрдп рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реИред (рдЧрд╣рд░рд╛рдИ рдорд╛рди рдХреЛ рдмрдлрд░ рдореЗрдВ рдмрд╛рдж рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд░реЗрдВрдЬ [0,1] рдкрд░ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореИрдкрд┐рдВрдЧ рд╕реЗ [-1,1] рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд░реЗрдВрдЬ рдХреЗ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╕рднреА рд╕рдЯреАрдХрддрд╛ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИред) рдФрд░ рд╕рдорд░реВрдкрддрд╛ рдХреЗ рдХрд╛рд░рдгред рдЙрд▓рдЯрд╛-рдЬреЗрдб рдпрд╣рд╛рдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдбреЗрд╕реНрдХрдЯреЙрдк рдУрдкрдирдЬреАрдПрд▓ рдореЗрдВ, рдпрд╣ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди ARB_clip_control (OpenGL 4.5 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, glClipControl рдорд╛рдирдХ рд╣реИ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬреАрдПрд▓ рдИрдПрд╕ рдЙрдбрд╝рд╛рди рдореЗрдВ рд╣реИред

рдЧреЛрд▓рд╛рдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рднрд╛рд╡


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

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

  1. рдЕрдирдВрдд рджреВрд░ рддрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  2. рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЕрдиреНрдп рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рд╕реЗ рдЕрд▓рдЧ рд░рдЦреЗрдВ, рдФрд░ рдЗрд╕реЗ рд╡реНрдпреВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдП, рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

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

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

рдпрд╣рд╛рдВ 10K рдХреА рд░реИрдЦрд┐рдХ рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде, рд▓рдЧрднрдЧ = 0.1, рджреВрд░ = 10K рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВред (рдореИрдВрдиреЗ рд▓рдШреБрдЧрдгрдХ рдЧрд╣рд░рд╛рдИ рдЕрдВрддрд░рд╛рд▓ рдФрд░ рдЕрдиреНрдп рдирд┐рдХрдЯ / рджреВрд░ рдЕрдиреБрдкрд╛рддреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛рдПрдВ рднрд┐рдиреНрди рдереАрдВ, рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реБрдЭрд╛рди рд╕рдорд╛рди рдереЗред)

рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ, "рдИрдХ" - рдирд┐рдХрдЯрддрдо рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЧрд╣рд░рд╛рдИ рдмрдлрд░ рдореЗрдВ рд╕рдорд╛рди рдореВрд▓реНрдп рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ "рд╕реНрд╡реИрдк" - рдирд┐рдХрдЯрддрдо рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде рджреЛ рдЕрдВрдХ рд╕реНрд╡реИрдк рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд╕рдордЧреНрд░ рджреГрд╢реНрдп-рдкреНрд░рдХреНрд╖реЗрдкрдг рдореИрдЯреНрд░рд┐рдХреНрд╕рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╢реНрдп рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдореИрдЯреНрд░рд┐рд╕реЗрд╕
float32int24float32int24
рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд Z рдорд╛рди (рдирд┐рдпрдВрддреНрд░рдг рдкрд░реАрдХреНрд╖рдг)0% eq
0% рд╕реНрд╡реИрдк
0% eq
0% рд╕реНрд╡реИрдк
0% eq
0% рд╕реНрд╡реИрдк
0% eq
0% рд╕реНрд╡реИрдк
рдорд╛рдирдХ рдкреНрд░рдХреНрд╖реЗрдкрдг45% eq
18% рд╕реНрд╡реИрдк
45% eq
18% рд╕реНрд╡реИрдк
77% eq
0% рд╕реНрд╡реИрдк
77% eq
0% рд╕реНрд╡реИрдк
рдЕрдирдВрдд рджреВрд░ рддрдХ45% eq
18% рд╕реНрд╡реИрдк
45% eq
18% рд╕реНрд╡реИрдк
76% eq
0% рд╕реНрд╡реИрдк
76% eq
0% рд╕реНрд╡реИрдк
рдЙрд▓рдЯ Z0% eq
0% рд╕реНрд╡реИрдк
76% eq
0% рд╕реНрд╡реИрдк
0% eq
0% рд╕реНрд╡реИрдк
76% eq
0% рд╕реНрд╡реИрдк
рдЕрдирдВрдд + рдЙрд▓рдЯ-рдЬреЗрдб0% eq
0% рд╕реНрд╡реИрдк
76% eq
0% рд╕реНрд╡реИрдк
0% eq
0% рд╕реНрд╡реИрдк
76% eq
0% рд╕реНрд╡реИрдк
рдорд╛рдирдХ + рдЬреАрдПрд▓-рд╢реИрд▓реА56% eq
12% рд╕реНрд╡реИрдк
56% eq
12% рд╕реНрд╡реИрдк
77% eq
0% рд╕реНрд╡реИрдк
77% eq
0% рд╕реНрд╡реИрдк
рдЕрдирдВрдд + рдЬреАрдПрд▓-рд╢реИрд▓реА59% eq
10% рд╕реНрд╡реИрдк
59% eq
10% рд╕реНрд╡реИрдк
77% eq
0% рд╕реНрд╡реИрдк
77% eq
0% рд╕реНрд╡реИрдк

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

  • рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрдВрдЯ рдФрд░ рдлреНрд▓реЛрдЯ рдбреЗрдкреНрде рдмрдлрд░ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред рд░реВрдкрд╛рдВрддрд░рдг рдореЗрдВ рдЧрд╣рд░рд╛рдИ рдУрд╡рд░рд░рд╛рдЗрдб рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрдХрдЧрдгрд┐рддреАрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрдВрддрд░ рдореЗрдВред рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ float32 рдФрд░ int24 рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдорд╛рди ULP рд╣реИ (рдХрдо рд╕реЗ рдХрдо рд╕рдЯреАрдХрддрд╛ рдХреА рдЗрдХрд╛рдИ рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рджреВрд░реА рд╣реИ) [0.5.1] (рдЪреВрдВрдХрд┐ float32 рдореЗрдВ 23-рдмрд┐рдЯ рдордВрдЯрд┐рд╕рд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рд░реВрдкрд╛рдВрддрд░рдг рддреНрд░реБрдЯрд┐ рд▓рдЧрднрдЧ рдкреВрд░реА рдЧрд╣рд░рд╛рдИ рд╕реАрдорд╛ рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ int рдореЗрдВред
  • рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рджреГрд╢реНрдп рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдореИрдЯреНрд░рд┐рд╕реЗрд╕ (рдЕрдкрдЪрд░реНрдЪ рдФрд░ рдбреЗрд╕рдмреНрд░рди рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рдмрд╛рдж) рдХреЗ рдЕрд▓рдЧрд╛рд╡ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕рдордЧреНрд░ рддреНрд░реБрдЯрд┐ рджрд░ рдХрдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, "рд╕реНрд╡реИрдк" рд╕рдорд╛рди рдореВрд▓реНрдп рдмрди рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдХрджрдо рд╣реИред
  • рдЕрдирдВрдд рджреВрд░ рдХрд╛ рд╡рд┐рдорд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЕрдкрдЪрд░реНрдЪ рдФрд░ рдбреЗрд╕рдмреНрд░рди рдиреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддреНрд░реБрдЯрд┐рдпреЛрдВ (рд╕рдЯреАрдХрддрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ) рдХреА рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ 25% рдХреА рдХрдореА рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рддреБрд▓рдирд╛рддреНрдордХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рдореЗрдВ рдХрдореА рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрд╛рджреВ рдЙрд▓рдЯ-рдЬреЗрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдирд┐рд╖реНрдХрд░реНрд╖ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╣реАрдВ рд╣реИрдВред рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

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

рдирд┐рд╖реНрдХрд░реНрд╖


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

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


All Articles