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

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

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

OpenSceneGraph рдХреА рдбреНрд░рд╛рдЗрдВрдЧ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡реНрд╕ рдХреЛ рдбреНрд░реЙрдмрд▓реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдбреНрд░реЙрдмрд▓ рдХреБрдЫ рдУрдкрдирдЧреЗрд▓ рдбреНрд░рд╛рдЗрдВрдЧ рдЖрджрд┐рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ: рдЧреЛрд▓рд╛, рдШрди, рдордирдорд╛рдирд╛ рдЬрд╛рд▓, рдУрдкрдирдЬреАрдПрд▓ рдЪрд╛рдпрджрд╛рдиреА, рдЖрджрд┐ред рдбреНрд░реЙрдмрд▓реНрд╕ рдЦреБрдж рдХреЛ рдХреЗрд╡рд▓ рдЬрд┐рдпреЛрдб рдХрдВрдЯреЗрдирд░ ("рдЬреНрдпрд╛рдорд┐рддрд┐ рдиреЛрдб" рдХреЗ рд▓рд┐рдП рдХрдо) рдХреЗ рджреГрд╢реНрдп рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдЬрд┐рдпреЛрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪрд┐рддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдпрджрд┐ рд╣рдо рдПрдХ рдЯреИрдВрдХ рдХрд╛ рдкреВрд░реНрдгрд░реВрдкреЗрдг рдореЙрдбрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд┐рдпреЛрдВ рдФрд░ рдкрдЯрд░рд┐рдпреЛрдВ рдХреЛ рдореЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдмреБрд░реНрдЬ рдХреЛ рдШреБрдорд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмреИрд░рд▓ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдПрдХ рдЧреНрд░рд╛рдл рдорд┐рд▓рддрд╛ рд╣реИ:

рдкрд╣рд┐рдпреЛрдВ рдХреЛ рдореЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдмрд╛рдПрдВ рдпрд╛ рджрд╛рдПрдВ рдкрд╣рд┐рдпреЛрдВ рдкрд░ рдмрдирд╛рд╡рдЯ рдХреА рдореИрдкрд┐рдВрдЧ рдмрджрд▓реЗрдВред рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╣ рджреЗрдЦреЗрдЧрд╛ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдкрд╣рд┐рдпреЗ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдШреВрдорддреЗ рд╣реИрдВред рдЗрд╕реА рддрд░рд╣ рдХреИрдЯрд░рдкрд┐рд▓рд░ рдХреЗ рд╕рд╛рде - рдмрдирд╛рд╡рдЯ рдореЗрдВ рдмрджрд▓рд╛рд╡, рдЖрдк рдПрдХ рджреГрд╢реНрдп рдЧрддрд┐ рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛ рд╢рдмреНрдж
рдПрдХ рджреГрд╢реНрдп рдЧреНрд░рд╛рдл рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, OpenSceneGraph рдПрдХ рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЛ рдСрд░реНрдЧрди рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ :: рд╕рдВрджрд░реНрднрд┐рдд рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдУрдПрд╕рдЬреА :: ref_ptr рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдврд╝рд╛ рдФрд░ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
{ osg::ref_ptr<osg::Geode> geode = new osg::Geode; }
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, osg :: Geode рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдирд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде osg :: Geode, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдФрд░ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИрдВред рдмрдЪреНрдЪреЛрдВ рдХреЛ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╕рдордп, рдЬрд┐рдпреЛрдб рдореЗрдВ рдбреНрд░реЙрдмрд▓реНрд╕ рдФрд░ рдЧреНрд░рд╛рдл рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдЕрдиреНрдп рд╕рднреА рдХреНрд░реЙрд╕-рд░реЗрдлрд░реЗрдВрд╕, рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЧреНрд░рд╛рдл рдХреЗ рд░реВрдЯ рдиреЛрдб рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛
рдпрд╣рд╛рдБ рдПрдХ рдиреНрдпреВрдирддрдо OpenSceneGraph рдЖрд╡реЗрджрди рд╣реИ:
#include <osgViewer/Viewer> int main() { osgViewer::Viewer viewer; return viewer.run(); }
рдпрд╣ рдСрд╕рдЧрд╡реЙрдпрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЧреНрд░рд╛рдлрд┐рдХ рд╡рд┐рдВрдбреЛ рдХреЛ рдЦреЛрд▓рдиреЗ, рдУрдкрдирдЬреАрдПрд▓ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ, рдбрд┐рдлреЙрд▓реНрдЯ рдХреИрдорд░рд╛ рдмрдирд╛рдиреЗ, рдПрд╕реНрдХреЗрдк рдХреБрдВрдЬреА рд╣реИрдВрдбрд▓рд░ рдФрд░ рдорд╛рдЙрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрдорд░рд╛ рдореВрд╡ рдХрд░ рд╕рдХреЗрдВред рдЬрдм рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдЦрд╛рд▓реА рджреГрд╢реНрдп рджреЗрдЦреЗрдВрдЧреЗ, рдЬреЛ рдкрд▓рд╛рдпрди рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдЧрд▓рд╛ рдХрджрдо рд░реВрдЯ рдиреЛрдб рдмрдирд╛рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд░реНрд╢рдХ рдХреЗ рд╕рд╛рдордиреЗ рдЧреЛрд▓рд╛ рдирд┐рд░реНрдорд╛рдг рдХреЛрдб рд░рдЦреЗрдВред ():
// Drawable osg::Sphere *shape = new osg::Sphere( osg::Vec3(0.0f, 0.0f, 0.0f), 1.0f); osg::ShapeDrawable *drawable = new osg::ShapeDrawable(shape); // Geode osg::Geode *geode = new osg::Geode; geode->addDrawable(drawable); // viewer.setSceneData(geode);
рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рдЧреБрдВрдЬрд╛рдЗрд╢ рджреЗрдЦреЗрдВрдЧреЗ:

рдЕрдм рдЖрдк рдлрд╝реЙрдиреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдСрдЧреНрд╕рдЯреЗрдХреНрд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдкрд╛рда рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:
osgText::Font *font = osgText::readFontFile( "/usr/share/fonts/truetype/msttcorefonts/arial.ttf"); osgText::Text *text = new osgText::Text; text->setFont(font); text->setAxisAlignment(osgText::Text::XZ_PLANE); text->setText(", !", osgText::String::ENCODING_UTF8); osg::Geode *geode = new osg::Geode; geode->addDrawable(text);
ReadFontFile рдлрд╝рдВрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдлрд╝реЙрдиреНрдЯ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдбреНрд░реЙрдПрдмрд▓ рд╡рдВрд╢рдЬ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк AddDrawable рдореЗрдердб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЬрд┐рдпреЛрдб рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкрд╛рда рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

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

рджреГрд╢реНрдп рдмрджрд▓рдирд╛ - рдпреЗ рдРрд╕реЗ рдСрдкрд░реЗрд╢рди рд╣реИрдВ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд░рддрд╛ рд╣реИред рдЬрдм рддрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдиреЗ рдЕрдкрдбреЗрдЯ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рддрдм рддрдХ рдЕрдЧрд▓реЗ рдлреНрд░реЗрдо рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ - рдЕрдиреНрдпрдерд╛, рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдЯреНрд░реА рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХреЗ рджреМрд░рд╛рди, рдЧреНрд░рд╛рдл рдЕрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕рдХреА рдореЗрдореЛрд░реА рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ рдпрд╛ рдмрд╕ рдХреНрд░реИрд╢ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдЕрдкрдбреЗрдЯ рдкреВрд░реЗ рд╣реЛрдВрдЧреЗ, рдПрдлрдкреАрдПрд╕ рдЙрддрдирд╛ рд╣реА рдЬреНрдпрд╛рджрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╣реЛрдЧрд╛ред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдПрдХ рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЪрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рднрд╛рд░реА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╡рд╣рд╛рдВ рдЖрдк рдирдП рджреГрд╢реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЬрдм рдореБрдЦреНрдп рдЪрдХреНрд░ рджреГрд╢реНрдп рдкрд░рд┐рд╡рд░реНрддрди рдЪрд░рдг рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджреГрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЧрдгрдирд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдмрдирд╛рдП рдЧрдП рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рджреГрд╢реНрдп рдЧреНрд░рд╛рдл рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВред рдЗрд╕реА рддрд░рд╣, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рдеред рджреГрд╢реНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди, рдЖрдк рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдкреЗрдбрд╝ рд╕реЗ рдЕрдирд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд▓реЛрдкрди рдХрддрд╛рд░ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ рдирд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреИрд╕реЗ рдПрдХ рджреГрд╢реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдХреЛ "рд╣реИрд▓реЛ, рд╣реИрдмрд░" рд╕реНрдХреНрд░реАрди рдкрд░ рдХрддрд╛рдИ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рдЬрд┐рдпреЛрдб рдХреЛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ:
osg::MatrixTransform *mat = new osg::MatrixTransform; mat->addChild(geode); viewer.setSceneData(mat);
рдлрд┐рд░ рд╡реНрдпреВрдЕрд░ рдХреЛ рд╣рдорд╛рд░реЗ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ:
RotationHandler *handler = new RotationHandler(mat); viewer.addEventHandler(handler);
рдкреНрд░рддреНрдпреЗрдХ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдСрд╕рдЧреЗрдЬрд╛ :: GUIEventHandler рд╡рд░реНрдЧ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддреА рд╣реИред рдЕрдм рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдлреНрд░реЗрдо рдлреНрд░реЗрдо рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдП, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рд╕реЗ рдкрд╣рд▓реЗ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
class RotationHandler: public osgGA::GUIEventHandler { public: RotationHandler(osg::MatrixTransform *mat): m_mat(mat) { } virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter &adapter) { osg::Matrix mat; switch (ea.getEventType()) { case osgGA::GUIEventAdapter::FRAME: mat.makeRotate(ea.getTime(), osg::Vec3(0.0f, 0.0f, 1.0f)); m_mat->setMatrix(mat); } } private: osg::ref_ptr<osg::MatrixTransform> m_mat; };
рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкрд╛рда рдЕрдХреНрд╖ (0, 0, 1) рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдордирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред
OpenSceneGraph рдореЗрдВ рдЕрдиреНрдп рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ
рд╣рдордиреЗ рджреГрд╢реНрдп рдирд┐рд░реНрдорд╛рдг рдХреЗ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА, рджреГрд╢реНрдп рдЧреНрд░рд╛рдл рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝рддреЗ рд╣реБрдП, рдиреЛрдбреНрд╕ (рд╕рд╛рдордЧреНрд░реА, рдкреНрд░рдХрд╛рд╢), рдХреИрдорд░рд╛ рдирд┐рдпрдВрддреНрд░рдг, рдорд╛рдЙрд╕ рдФрд░ рдХреАрдмреЛрд░реНрдб рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдмрд╕ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
- рд╡рд┐рдЬрд╝рд┐рдЯрд░ рдкреИрдЯрд░реНрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдЖрдк рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВ рдФрд░ OpenSceneGraph рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреБрдХреНрдд рджреГрд╢реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЧреНрд░рд╛рдл рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ;
- рд╕реНрд╡рд┐рдЪ рдиреЛрдб (рдЬреЛ рд╕рдореВрд╣ рдХрд╛ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рд╣реИ) рдЖрдкрдХреЛ рдЧреНрд░рд╛рдл рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдиреЗ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рддреЗ рд╣реБрдП рдмрдЪреНрдЪреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
- LOD рдиреЛрдб (рд╕рдореВрд╣ рдХреЗ рд╡рд╛рд░рд┐рд╕ рднреА) рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдХреИрдорд░реЗ рд╕реЗ рдмрдЪреНрдЪреЛрдВ рдХреА рдХрд┐рд╕ рджреВрд░реА рддрдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдХреИрдорд░реЗ рд╕реЗ рдмрдбрд╝реА рджреВрд░реА рдкрд░ рд╕рд░рд▓ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
- shader рд╕рдорд░реНрдерди (рдЯреБрдХрдбрд╝рд╛ рдФрд░ рдЬреНрдпрд╛рдорд┐рддрд┐);
- рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдорд╛рдкрдиреАрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдХреИрдорд░реЛрдВ рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред рдЬрд┐рд╕рдореЗрдВ рдорд▓реНрдЯреА-рдЬреАрдкреАрдпреВ рд╢рд╛рдорд┐рд▓ рд╣реИ;
- рдмрдирд╛рд╡рдЯ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ;
- рдмрд╣реБрдкрд░рдд рдмрдирд╛рд╡рдЯ, рдЕрдирд┐рд╕реЛрдЯреНрд░реЛрдкрд┐рдХ рд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдмрдореНрдк-рдореИрдкрд┐рдВрдЧ, рд╕реНрдкреЗрдХреНрдпреБрд▓рд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯреНрд╕;
- рджреГрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╕реНрдХреНрд░реАрди рдПрдХ рд▓рдВрдмреЗ рдФрд░ рддреЗрдЬ рдкреЙрд▓реАрд╣реЗрдбреНрд░реЙрди рдореЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдореЗрдВ рдЪрд┐рдкрдХ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рджреГрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рдкреЙрд▓реАрд╣реЗрдбреНрд░реЙрди рдХреЗ рдЪреМрд░рд╛рд╣реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреИрдорд░реЗ рд╕реЗ рджреВрд░реА рдХреЗ рд╕рд╛рде рдкрд╛рдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ);
- рдореЗрдЯреНрд░рд┐рд╕реЗрд╕, рдХреНрд╡рд╛рдЯрд░рдирд┐рдпрди, рдкреЙрд▓реАрд╣реЗрдбреНрд░рд╛ (рдЪреМрд░рд╛рд╣реЛрдВ, рдпреВрдирд┐рдпрдиреЛрдВ рдЖрджрд┐ рдХреА рдЧрдгрдирд╛), 3 рдбреА-рдореЙрд░реНрдлрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЧрдгрд┐рддреАрдп рдЖрджрд┐рдо;
- рджреГрд╢реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдФрд░ deserialized рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирдП рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдЖрдпрд╛рдд рдкреНрд░рд╛рд░реВрдк рдкреНрд▓рдЧ-рдЗрди рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдореВрд▓ рдкреНрд░рд╛рд░реВрдк (рдУрдПрд╕рдЬреА) рдПрдХ рдорд╛рдирд╡-рдкрдардиреАрдп рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдбреАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рдмрд╛рдж рдЧреНрд░рд╛рдл рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
- HUD рдЧреНрд░рд╛рдл (рд╣реЗрдб рдЕрдк рдбрд┐рд╕реНрдкреНрд▓реЗ) рдХреЗ рд╡рд┐рд╢реЗрд╖ рдиреЛрдбреНрд╕ рдЖрдкрдХреЛ рдмрдЪреНрдЪреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рд╣рдореЗрд╢рд╛ рдореЙрдирд┐рдЯрд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдореБрдЦ рд╣реЛрдВ;
рдХрдг рдкреНрд░рдгрд╛рд▓реА рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖ рдкреНрд░рднрд╛рд╡ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЖрдЧ, рдзреБрдЖрдВ, рдЪрд┐рдВрдЧрд╛рд░реА, рдкреНрд░рддреНрдпреЗрдХ рдХрдг рдХреА рдЖрд╡реГрддреНрддрд┐, рдЗрд╕рдХреА рдЙрдбрд╝рд╛рди рдкрде, рдЬреАрд╡рди рд╕рдордп, рдмрдирд╛рд╡рдЯ, рдЖрджрд┐ред - рдкрд╛рд░рднрд╛рд╕реА рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЫрд╛рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
- рдУрдкрди рдереНрд░реЗрдбреНрд╕ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕рд╛рд░ рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
- рдСрд╕реНрдмреАрдбреА рдореЙрдбреНрдпреВрд▓, рдбрд┐рд╕реНрдХ рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЙрддрд╛рд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдЯреНрд░реАрдо (рдкреЗрдЬрд┐рдВрдЧ рдореЛрдб) рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
- рдХреНрдпреВрдЯреА рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдЖрдкрдХреЛ рдЬреАрдпреВрдЖрдИ рдХреЛ рдПрдХ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рджреГрд╢реНрдп рдореЗрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдк рдПрдХ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдХреНрдпреВрдЯреА рдШрдЯрдХ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдПрдХ рдмрдирд╛рд╡рдЯ рдкрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдПрдХ рджреГрд╢реНрдп рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ YouTube рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ;
- рдкреГрдереНрд╡реА рдХреА рд╕рддрд╣ (рдЗрд▓рд╛рдХреЗ) рдФрд░ рдЖрдХрд╛рд╢ (рд╕реНрдХрд╛рдИрдмреЙрдХреНрд╕) рдХреА рдХрд▓реНрдкрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ;
- рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рдЖрдИрдУрдПрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
- рдЙрддреНрдХреГрд╖реНрдЯ рд▓рд╛рдЗрд╕реЗрдВрд╕ (рдЖрд░рд╛рдо рд╕реЗ рдПрд▓рдЬреАрдкреАрдПрд▓), рдЬреЛ рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдмрдВрдж рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдХрд╣рд╛рдБ рд╕реЗ рд▓рд╛рдКрдБ?
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ -
www.openscenegraph.orgрд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд▓реЗрдЦрди
рд▓реЗрдЦрдХреЛрдВ рд╕реЗ рдХрд┐рддрд╛рдмреЗрдВ рд╣реИрдВ ред
рдореБрдлреНрдд рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рд▓реЗрдЦрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╕рд░рд╛рд╕рд░ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдФрд░ рдорд╣рд╛рди рдХреЛрдб рдЬреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдФрд░ рд╕реБрдЦрдж рд╣реИред