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


рдЬрд╣рд╛рдБ

рд╕рддрд╣ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИ рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдХреНрдЯрд░ рд╣реИ,

рдХреНрдпрд╛ рдкреНрд░реЗрдХреНрд╖рдХ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ рджрд┐рд╢рд╛ рд╡реЗрдХреНрдЯрд░ рд╣реИред
рд╕рд╛рдордЧреНрд░реА рдХреА рд╕реНрдкрд╖реНрдЯ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдЧреБрдгрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рд╛рдордЧреНрд░реА рдХреЗ рд░рдВрдЧ рдХреЗ рдорд┐рд╢реНрд░рдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ:
C_\texttt{background})
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрд╕реЗ рдореВрд▓реНрдп

рд╕рд╛рдордЧреНрд░реА рдХреА рдореЛрдЯрд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдордЧреНрд░реА рдХреА рдкрд░рдд рдХреЛ рдореЛрдЯрд╛рдИ рдХреЗ рд╕рд╛рде рддреЛрдбрд╝ рджреЗрдВ

рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛

рдкрд░

рдПрдХ рд╣реА рдореЛрдЯрд╛рдИ рдХреА рдкрд░рддреЗрдВ

рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХрд╛рд░рдХ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ

ред рдЪрд▓реЛ

- рдкреГрд╖реНрдарднреВрдорд┐ рд░рдВрдЧ

- рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд░рдВрдЧ, рдФрд░

- рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдд рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд░рдВрдЧред
C_0&space;\par&space;C_2=\alpha_\varepsilon&space;C_m+(1-\alpha_\varepsilon)C_1&space;=&space;\alpha_\varepsilon&space;C_m+(1-\alpha_\varepsilon)[\alpha_\varepsilon&space;C_m+(1-\alpha_\varepsilon)C_0]&space;=&space;\par&space;=&space;(2\alpha_\varepsilon&space;-&space;\alpha_\varepsilon^2)C_m&space;+&space;(1-\alpha_\varepsilon)^2&space;C_0&space;=&space;(1-(1&space;-&space;\alpha_\varepsilon)^2)&space;C_m+(1-\alpha_\varepsilon)^2&space;C_0&space;\par&space;C_3=\alpha_\varepsilon&space;C_m+(1-\alpha_\varepsilon)C_2&space;=&space;\alpha_\varepsilon&space;C_m+(1-\alpha_\varepsilon)[(1-(1&space;-&space;\alpha_\varepsilon)^2)&space;C_m+(1-\alpha_\varepsilon)^2&space;C_0]&space;=&space;\par&space;=&space;(\alpha_\varepsilon&space;+&space;1&space;-&space;\alpha_\varepsilon&space;+&space;(1&space;-&space;\alpha_\varepsilon)^3)C_m&space;+&space;(1-\alpha_\varepsilon)^3&space;C_0&space;=&space;(1-(1&space;-&space;\alpha_\varepsilon)^3)&space;C_m+(1-\alpha_\varepsilon)^3&space;C_0&space;\par&space;...&space;\par&space;C_N=&space;(1-(1&space;-&space;\alpha_\varepsilon)^N)&space;C_m+(1-\alpha_\varepsilon)^N&space;C_0)
рд▓реЗрдХрд┐рди рдпрд╣ рднреА
C_0)
рдФрд░ рдЗрд╕рд▓рд┐рдП:

рдпрд╛рдиреА рдмрдврд╝рддреА рдореЛрдЯрд╛рдИ рдХреЗ рд╕рд╛рде, рд╕рд╛рдордЧреНрд░реА рдХреА рд╕реНрдкрд╖реНрдЯ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рддреЗрдЬреА рд╕реЗ рдШрдЯ рдЬрд╛рддреА рд╣реИред
рдореЛрдЯрд╛рдИ рджреЗрдВ

рддрдм:
^k=(1-\alpha_\varepsilon)^\frac{d_\varphi}{d_\varepsilon}=(1-\alpha_0)^{\frac{d_\varepsilon}{d}\times&space;\frac{d_\varphi}{d_\varepsilon}}=(1-\alpha_0)^\frac{d_\varphi}{d_0}=(1-\alpha_0)^\frac{1}{\cos&space;\varphi})
рддреЛ, рд╡рд╛рдВрдЫрд┐рдд рд╕реВрддреНрд░:
&space;=&space;1&space;-&space;(1&space;-&space;\alpha_0)^\frac{1}{\cos&space;\varphi}})

рдиреАрдЪреЗ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реИ рдЬреЛ рдЗрд╕ рд╕реВрддреНрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:
varying vec4 v_color; varying vec3 v_normal; varying vec3 v_eye; void main(void) {
рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ:
рдбреЗрдореЛ рд╕реНрд░реЛрдд рдХреЛрдб
bitbucket.org рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ