рдЖрдЬ рд╣рдо рджреЛ рдФрд░ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ рдЬрд╣рд╛рдВ pbrt рдбрд┐рдЬреНрдиреА рдХрд╛рд░реНрдЯреВрди
"рдореЛрдЖрдирд╛" рд╕реЗ рдмрд╣реБрдд рдмрд╛рд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рджреГрд╢реНрдп рдмрд┐рддрд╛рддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣рд╛рдВ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ pbrt-v3 рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред рдПрдХ рдЕрдиреНрдп рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдирд┐рдкрдЯреВрдВрдЧрд╛ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдмрджрд▓рд╛рд╡реЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдХрд┐рддрдиреА рджреВрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрд░реЛрдд рдХреЛрдб
рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдзрд╛рд░рд┐рдд рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреБрд╕реНрддрдХ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред
рдкрд╛рд░реНрд╕рд░ рдЕрдиреБрдХреВрд▓рди
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рдмрд╛рдж, рдкреЛрдмрд░ рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рдмрд┐рддрд╛рдП рд╕рдордп рдХрд╛ рдЕрдиреБрдкрд╛рдд рдФрд░ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рдмрдврд╝ рдЧрдпрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдкрд╛рд░реНрд╕рд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЕрдкрдиреА рддрд╛рдХрдд рдЗрдХрдЯреНрдареА рдХреА
рдФрд░ рдЦреБрдж рдХреЛ рдкрд╛рдЗрдмреНрд░реЗрдЯ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП
рдПрдХ рд▓рд┐рдЦрд┐рдд рдЯреЛрдХрди рдФрд░ рдкрд╛рд░реНрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ ред
Pbrt рджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдпрджрд┐ рдЖрдк рдЙрджреНрдзреГрдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЯреЛрдХрди рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╡реНрдпрд╛рдХрд░рдг рдмрд╣реБрдд рд╕реАрдзрд╛ рд╣реИ (рдПрдХ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрднреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ), рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкрд╛рд░реНрд╕рд░ рдХреЛрдб рдХреА рдПрдХ рд╣рдЬрд╛рд░ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд▓рд┐рдЦрдирд╛ рдФрд░ рдбреАрдмрдЧ рдХрд░рдирд╛ред рдЗрд╕рдиреЗ рдореЗрд░реА рдорджрдж рдХреА рдХрд┐ рдЗрд╕реЗ рдХрдИ рджреГрд╢реНрдпреЛрдВ рдкрд░ рдкрд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рд╕реНрдкрд╖реНрдЯ glitches рдлрд┐рдХреНрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рддрдм рддрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рдирд╣реАрдВ рд╣реБрдЖ: рдкрд╛рд░реНрд╕рд░ рдХреА рдЬрдЧрд╣ рд▓реЗрдиреЗ рдХреЗ рдХрд╛рд░рдг рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдерд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдореИрдВрдиреЗ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ
mmap()
рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рддрд╛рд░ рдХреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C ++ 17 рд╕реЗ
std::string_view
рдХреЗ рдирдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪреВрдВрдХрд┐
strtod()
рдиреЗ рдкрд┐рдЫрд▓реЗ рдЯреНрд░реИрд╕ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рд┐рдпрд╛, рдореИрдВрдиреЗ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рдХреЗ рд╕рд╛рде
parseNumber()
рд▓рд┐рдЦрд╛: рдПрдХрд▓-рдЕрдВрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рдирд┐рдпрдорд┐рдд рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдорд╛рдирдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм 32-рдмрд┐рдЯ рдлреНрд▓реЛрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ,
strtof()
рдмрдЬрд╛рдп
strtod()
1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ ред
рдирдП рдкрд╛рд░реНрд╕рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдбрд░ рдерд╛ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдкрд╛рд░реНрд╕рд░ рддреЗрдЬреА рд╕реЗ рд╣реЛрдЧрд╛: рдЕрдВрдд рдореЗрдВ, рдлреНрд▓реЗрдХреНрд╕ рдФрд░ рдмрд╛рдЗрд╕рди рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрд╛ рдХрд┐ рдХреНрдпрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╣рд░ рд╕рдордп рдмрд░реНрдмрд╛рдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░ рдкрд╛рдпрд╛ред
рдореЗрд░реА рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдкрд╛рд░реНрд╕рд░ рдПрдХ рдмрдбрд╝реА рдЬреАрдд рдмрди рдЧрдП: рдлреНрд▓реЗрдХреНрд╕ рдФрд░ рдмрд╛рдЗрд╕рди рдХреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдиреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЗрддрдирд╛ рдХрдо рдХрд░ рджрд┐рдпрд╛ рдХрд┐ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдирд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛ред рдирдП рдкрд╛рд░реНрд╕рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЙрдиреНрдЪ рдХрд╛ рд╕рдордп рдШрдЯрдХрд░ 13 рдорд┐рдирдЯ 21 рдПрд╕ рд╣реЛ рдЧрдпрд╛, рдЕрд░реНрдерд╛рдд, рдпрд╣ рдПрдХ рдФрд░ 1.5 рдЧреБрдирд╛ рддреЗрдЬ рд╣реЛ рдЧрдпрд╛! рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреЛрдирд╕ рдпрд╣ рдерд╛ рдХрд┐ рдЕрдм pbrt рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕рднреА рдлреНрд▓реЗрдХреНрд╕ рдФрд░ рдмрд╛рдЗрд╕рди рд╕рдорд░реНрдерди рдХреЛ рд╣рдЯрд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рд┐рд░рджрд░реНрдж рд░рд╣рд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд, рдЬрд╣рд╛рдВ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕реНрдерд┐рддрд┐ рдкреНрд░рдмрдВрдзрди
рдкрд╛рд░реНрд╕рд░ рдХреЛ рдХрд╛рдлреА рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдирдпрд╛ рдХрд╖реНрдЯрдкреНрд░рдж рд╡рд┐рд╡рд░рдг рд╕рд╛рдордиреЗ рдЖрдпрд╛: рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╕реЗрдЯрдЕрдк рдХрд╛ рд▓рдЧрднрдЧ 10% рд╕рдордп рдХрд╛рд░реНрдпреЛрдВ
pbrtAttributeBegin()
рдФрд░
pbrtAttributeEnd()
рдкрд░ рдмрд┐рддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕ рд╕рдордп рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣рд┐рд╕реНрд╕рд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдореЗрдореЛрд░реА рдЬрд╛рд░реА рдХреА рдЧрдИ рдереАред рдкрд╣рд▓реЗ рд░рди рдХреЗ рджреМрд░рд╛рди, рдЬрд┐рд╕рдореЗрдВ 35 рдорд┐рдирдЯ рд▓рдЧреЗ, рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХрд╛ рд▓рдЧрднрдЧ 3% рд╣реА рд▓рд┐рдпрд╛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рдпрд╣ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ: рдЬрдм рдЖрдк рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ, рддреЛ рдЫреЛрдЯреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
Pbrt рджреГрд╢реНрдп рд╡рд┐рд╡рд░рдг рдЧреНрд░рд╛рдлрд┐рдХ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕реНрдерд┐рддрд┐ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди, рд╡рд░реНрддрдорд╛рди рд╕рд╛рдордЧреНрд░реА, рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рдЖрдк рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ (
pbrtAttributeBegin()
) рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рджреГрд╢реНрдп рдореЗрдВ рдирдИ рдЬреНрдпрд╛рдорд┐рддрд┐ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдореВрд▓ рд╕реНрдерд┐рддрд┐ (
pbrtAttributeEnd()
) рдкрд░ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддреЗ рд╣реИрдВред
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░рд╛рдЬреНрдп рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...
GraphicsState
ред рдмрдЪрд╛рдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдвреЗрд░ рдореЗрдВ
GraphicsState
рд╡рд╕реНрддреБрдУрдВ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
std::vector
ред
GraphicsState
рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╣рдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ - рддреАрди
std::map
, рдирд╛рдо рд╕реЗ рд▓реЗрдХрд░ рдмрдирд╛рд╡рдЯ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЙрджрд╛рд╣рд░рдг:
struct GraphicsState {
рдЗрди рджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕реНрдЯреЗрдЯреНрд╕ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЗ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ:
AttributeBegin ConcatTransform [0.981262 0.133695 -0.138749 0.000000 -0.067901 0.913846 0.400343 0.000000 0.180319 -0.383420 0.905800 0.000000 11.095301 18.852249 9.481399 1.000000] ObjectInstance "archivebaycedar0001_mod" AttributeEnd
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЕрджреНрдпрддрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд╕реНрддреБ рдХреЛ рддреНрд╡рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ; рдЗрди
std::map
рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдирдХреА рдПрдХ рдкреВрд░реА рдкреНрд░рддрд┐ рдмрдирд╛рдирд╛ - рд▓рд╛рд▓-рдХрд╛рд▓реЗ рдкреЗрдбрд╝ рдХреЗ рдиреЛрдбреНрд╕ рдХрд╛ рдЖрд╡рдВрдЯрди рдХрд░рдирд╛, рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдорд╛рдпрдиреЗ рд░рдЦрдирд╛, рдЕрдВрддрд░рд┐рдХреНрд╖ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдФрд░ рддрд╛рд░реЛрдВ рдХреА рдирдХрд▓ рдХрд░рдирд╛ - рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреА рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕рдм рдореБрдХреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЗрди рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд╕реВрдЪрдХ
std::shared_ptr
рдХреЗ рд╕рд╛рде рдореИрдк рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдХреЙрдкреА-рдСрди-рд░рд╛рдЗрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЖрд░рдВрдн / рдЕрдВрдд рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдХреЙрдкреА рдХрд░рдирд╛ рдХреЗрд╡рд▓ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдкрд░рд┐рд╡рд░реНрддрди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рд▓реЙрдиреНрдЪ рд╕рдордп рдХреЛ рдПрдХ рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рдХрдо рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ 12 рдорд┐рдирдЯ 20 рдПрд╕ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ - рдлрд┐рд░ рд╕реЗ 1.08 рдмрд╛рд░ рдХрд╛ рддреНрд╡рд░рдгред
рд╕рдордп рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдзреНрдпрд╛рди рджреЗрдЧрд╛ рдХрд┐ рдЕрднреА рддрдХ рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рд╛ рд╣реИред рдореЗрд░реЗ рдЖрд╢реНрдЪрд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рднреА рдХрд╛рдлреА рд╕рд╣рдиреАрдп рдирд┐рдХрд▓рд╛: рдкреЛрдЯреНрд░ рджреЛ рд╕реМ рд╕реЗ рддреАрди рдШрдВрдЯреЗ рдХреА рдЕрд╡рдзрд┐ рдореЗрдВ рдмрд╛рд░рд╣ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдкрд░ рдкреНрд░рддрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдХрдИ рд╕реМ рдирдореВрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд┐рдиреЗрдорд╛рдИ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рджреГрд╢реНрдпреЛрдВ рдХреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЫрд╡рд┐, рд╕рдмрд╕реЗ рдзреАрдореА рдореЗрдВ рд╕реЗ рдПрдХ, 2 рдШрдВрдЯреЗ 51 рдорд┐рдирдЯ 36 рд╕реЗрдХрдВрдб рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ:

рдореВрди рд╕реЗ рдЯрд┐рдмреНрдмрд╛ 256 рдкрд┐рдХреНрд╕реЗрд▓ рдкреНрд░рддрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ 2048x858 рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде pbrt-v3 рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред Google Compute Engine рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ 12 рдХреЛрд░ / 24 рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рд╛рде 2 GHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдФрд░ pbrt-v3 рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 2 рдШрдВрдЯреЗ 51 рдорд┐рдирдЯ 36 рд╕реЗрдХрдВрдб рдерд╛редрдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рд╕рдВрдХреЗрддрдХ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрднреА рднреА рд╕реБрдзрд╛рд░ рд╕рдВрднрд╡ рд╣реИрдВ, рдФрд░ рдЬрд┐рди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдирдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЕрдзреНрдпрдпрди рдмрд╣реБрдд рд╕рд╛рд░реА "рджрд┐рд▓рдЪрд╕реНрдк" рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЙрдирдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИрдВред
рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рдордп рдХрд╛ рд▓рдЧрднрдЧ 60% рд╕рдордп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд░рдгреЛрдВ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдкрд░ рдмрд┐рддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрд╢рди рдмреАрд╡реАрдПрдЪ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдХреЗ рдХрд┐рдП рдЧрдП рдереЗ), рдФрд░ 25% рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпреЗ рдЕрдиреБрдкрд╛рдд рд╕рд░рд▓ рджреГрд╢реНрдпреЛрдВ рдХреЗ рд╕рдВрдХреЗрддрдХ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣рд╛рдБ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдПрдореНрдмреНрд░реА рдереЛрдбрд╝рд╛ рдХрдо рд╕рдордп рдореЗрдВ рдЗрди рдХрд┐рд░рдгреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧреАред)
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдорд╛рдирд╛рдВрддрд░ рдорд╛рдкрдиреАрдпрддрд╛ рдЗрддрдиреА рдЕрдЪреНрдЫреА рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ 2400% (Google рдХрдВрдкреНрдпреВрдЯ рдЗрдВрдЬрди рдореЗрдВ 24 рд╡рд░реНрдЪреБрдЕрд▓ рд╕реАрдкреАрдпреВ рдкрд░) рдХреЗ рдЖрджрд░реНрд╢ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 1400% рд╕реАрдкреАрдпреВ рд╕рдВрд╕рд╛рдзрди рдЦрд░реНрдЪ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдкреЙрдХреНрд╕ рдореЗрдВ рддрд╛рд▓реЗ рдХреЗ рджреМрд░рд╛рди рд╕рдВрдШрд░реНрд╖ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕рдХреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ pbrt-v3 рдХрд┐рд░рдг рдЯреНрд░реЗрд╕рд░ рдореЗрдВ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХрд┐рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд░рдг рдЕрдВрддрд░ рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдмрджрд▓реЗ рдореЗрдВ, рдРрд╕реЗ рдмреАрдо рд╣рдореЗрд╢рд╛ рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рдмрд╕реЗ рд╡рд┐рд╕реНрддреГрдд рдПрдордЖрдИрдкреА рд╕реНрддрд░ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдмрдирд╛рд╡рдЯ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖ (pbrt-v3 рдХреЗ рд▓рд┐рдП)
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдПрдХ рд╕реАрдорд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдмрд┐рдирд╛ рдЖрдЧреЗ рдХреА рдкреНрд░рдЧрддрд┐ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдИ; рдмрд╛рдХреА рд╕рднреА рдХреЛ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрдо рд╕рдордп рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛, рдХрдо рд╕реЗ рдХрдо pbrt-v3 рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреНрд░рдЧрддрд┐ рдЧрдВрднреАрд░ рдереА: рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХрд╛ рд╕рдордп 35 рдорд┐рдирдЯ рд╕реЗ рдШрдЯрдХрд░ 12 рдорд┐рдирдЯ 20 рд╕реЗрдХрдВрдб рдерд╛, рдпрд╛рдиреА рдХреБрд▓ рддреНрд╡рд░рдг 2.83 рдЧреБрдирд╛ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░реВрдкрд╛рдВрддрд░рдг рдХреИрд╢ рдХреЗ рд╕рд╛рде рдЪрддреБрд░ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ 80 рдЬреАрдмреА рд╕реЗ рдШрдЯрдХрд░ 69 рдЬреАрдмреА рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпреЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЕрднреА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдпрджрд┐ рдЖрдк pbrt-v3 рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдпрд╛ рдпрджрд┐ рдЖрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИред) рдФрд░ рд╣рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП
Primitive
рд╕реНрдореГрддрд┐ рдХрд┐рддрдиреА рдХрдЪрд░рд╛ рд╣реИ; рд╣рдордиреЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдХрд┐ рдПрдХ рдФрд░ 18 рдЬреАрдмреА рдореЗрдореЛрд░реА рдХреЛ рдХреИрд╕реЗ рдмрдЪрд╛рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдЗрд╕реЗ pbrt-v3 рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдпрд╣рд╛рдБ рд╣рдорд╛рд░реА рд╕рднреА рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рдж рдЗрди 12 рдорд┐рдирдЯ 20 рдПрд╕ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рд╕рдорд╛рд░реЛрд╣ / рдСрдкрд░реЗрд╢рди | рд░рдВрдЯрд╛рдЗрдо рдХрд╛ рдкреНрд░рддрд┐рд╢рдд |
---|
рдмреАрд╡реАрдПрдЪ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ | 34% |
рдкрд╛рд░реНрд╕рд┐рдВрдЧ ( strtof() рдХреЛ рдЫреЛрдбрд╝рдХрд░) | 21% |
strtof() | 20% |
рд░реВрдкрд╛рдВрддрд░рдг рдХреИрд╢ | 7% |
PLY рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝рдирд╛ | 6% |
рдЧрддрд┐рд╢реАрд▓ рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди | 5% |
рд░реВрдкрд╛рдВрддрд░рдг рдЙрд▓рдЯрд╛ | 2% |
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕реНрдерд┐рддрд┐ рдкреНрд░рдмрдВрдзрди | 2% |
рдЕрдиреНрдп | 3% |
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд▓реЙрдиреНрдЪ рдЪрд░рдг рдХрд╛ рдФрд░ рднреА рдЕрдзрд┐рдХ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рд╣реЛрдЧрд╛: рджреГрд╢реНрдп рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд╣реИ; рд╣рдорд╛рд░рд╛ рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдкрд╣рд▓рд╛ рд▓рдХреНрд╖реНрдп рдмреАрд╡реАрдПрдЪ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИред рдкреАрдПрд▓рд╡рд╛рдИ рдлрд╛рдЗрд▓реЗрдВ рдкрдврд╝рдиреЗ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмреАрд╡реАрдПрдЪ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛, рдЬрдмрдХрд┐ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛
strtof()
рдХрд╛ рддреЗрдЬрд╝ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ; pbrt рдХреЗрд╡рд▓ рд╡рд╣реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдЙрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиреЛрдВ рдХреА рдкрд╕рдВрдж рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ: рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЙрди рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдкрд╛рд░реНрд╕рд░ рдкрд░ рд▓реЛрдб рдХреЛ рдФрд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдХрд░реНрд╖рдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП 17 рдЬреАрдмреА рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рд╣рдо pbrt рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдирд░реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рдВрднрд╡рддрдГ рд░реЗрдВрдбрд░рдореИрди
рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рдорд╛рди), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд┐рд╢реНрд░рд┐рдд рднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ; рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рджреГрд╢реНрдп рд╡рд┐рд╡рд░рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрд▓рдиреЗ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдмрд╛рдЗрдирд░реА рдХреЛрдбрд┐рдВрдЧ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ pbrt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд╣рд╛рдВ рдЙрддреНрдкрд╛рджрди рд╕реНрддрд░ рдХреЗ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд░реЗрдВрдбрд░ рдХреЗ рд▓рд┐рдП pbrt рдХрд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рд╕рдорд╛рдзрд╛рди рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрди рд╕рднреА рдЖрд╢рд╛рдУрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдирд╛ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ pbrt рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдзрд╛рд░рдгрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕реНрддрд░ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддреА рд╣реИрдВред рдпрд╣ рд╕рдм рдЗрд╕ рдмрд╛рдд рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрддреНрдкрд╛рджрди рджреГрд╢реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛ; рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЗрд╕ рджреГрд╢реНрдп рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рдиреА рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реВрдВред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ , рд╣рдо рдЙрди рдкрд╣рд▓реБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдФрд░ рдмреЗрд╣рддрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо рдФрд░ рдЕрдзрд┐рдХ рдореМрд▓рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдЯрд┐рдкреНрдкрдгреА
- Linux рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рдерд╛,
strtof()
рддреЗрдЬ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдУрдПрд╕ рдПрдХреНрд╕ strtod()
рд▓рдЧрднрдЧ рджреЛ рдЧреБрдирд╛ рддреЗрдЬ рд╣реИ, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрддрд╛рд░реНрдХрд┐рдХ рд╣реИред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдореИрдВрдиреЗ strtof()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ред