3 рдбреА рдХрд╛ рдкрд░рд┐рдЪрдп: рддреАрди.рдЬреЗрдПрд╕ рдореВрд▓ рдмрд╛рддреЗрдВ

рд╡реЗрдм рдХреА рдЬрдЯрд┐рд▓рддрд╛ рджреИрдирд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓ рд░рд╣реА рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рддреЗрдЬреА рд╕реЗ рдмрдврд╝ рд░рд╣реА рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ 3 рдбреА рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рд╛рдеред рдХреМрди рд╕рд┐рд░реНрдл 3 рдбреА рдереАрдо рд╕реЗ рдЬреБрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реИ - рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред



рдЪрд▓реЛ рджреВрд░ рд╕реЗ


WebGL рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ 3 рдбреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп OpenGL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред WebGL GLSL рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ , рдЬрд┐рд╕рдореЗрдВ C- рдЬреИрд╕рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрддрд╛ рд╣реИред WebGL рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдХреЛрдб рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдореЙрдбрд▓рд┐рдВрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, WebGL рдЙрд╕ рдХреИрдирд╡рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ HTML5 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

рдереНрд░реА.рдЬреЗрдПрд╕ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗрдмрд▓реЙрдЧ рдореЗрдВ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ 3 рдбреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред

WebGL рдХреЗ рд▓рд┐рдП рддреАрди.js рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП jQuery рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд┐рдХреНрд▓реЗрд░реЗрдЯрд┐рд╡ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ 3 рдбреА рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рд┐рд░рджрд░реНрдж рд╕реЗ рд╕рд╛рд░ред рдЖрдЗрдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд▓реЛрдХрди рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк 3D рджреБрдирд┐рдпрд╛ рдореЗрдВ рдирдП рд╣реИрдВ рддреЛ рдХреИрд╕реЗ рдЖрд░рдВрдн рдХрд░реЗрдВред

рддреАрди рдкрд░ рдЕрдзрд┐рдХ


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

рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░рдХ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рд░рд┐рдХрд╛рд░реНрдбреЛ рдХреЛрдмреЗрд▓реЛ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд░рдЪрдирд╛рддреНрдордХ рдЫрджреНрдо рдирд╛рдо рдорд┐рдбреЛрдмреЛ рдХреЗ рддрд╣рдд рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ ред

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

рддреАрди рддрдерд╛рдХрдерд┐рдд рддреАрдиред рд╡реНрд╣реЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

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

рддреАрди .js рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреИрдорд░реЗ рд╣реЛрддреЗ рд╣реИрдВ:

  • рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреИрдорд░рд╛
  • рд╕реНрдЯреАрд░рд┐рдпреЛ рдХреИрдорд░рд╛
  • рдСрд░реНрдереЛрдЧреНрд░рд╛рдлрд┐рдХ рдХреИрдорд░рд╛
  • рдШрди рдХреИрдорд░рд╛

рд╕рдмрд╕реЗ рдЖрдо рд╣реИрдВ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреИрдорд░рд╛ рдФрд░ рдСрд░реНрдереЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдХреИрдорд░рд╛ред

рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреИрдорд░рд╛


рдпрд╣ рдПрдХ 3D рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕рдмрд╕реЗ рдЖрдо рдкреНрд░рдХреНрд╖реЗрдкрдг рдореЛрдб рд╣реИред

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



рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреИрдорд░рд╛ 4 рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ:

  • FOV Field Of View (/ ) тАФ , .
  • Aspect ratio тАФ , , . . , , .
  • Near & Far тАФ , . , , , .



Orthographic Camera


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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рд▓рдВрдмрд╡рдд рд░реЗрдЦрд╛рдПрдВ рд▓рдВрдмрд╡рдд рд░рд╣рддреА рд╣реИрдВ, рд╕рднреА рд╕рдорд╛рдирд╛рдВрддрд░ - рд╕рдорд╛рдирд╛рдВрддрд░ред рдпрджрд┐ рд╣рдо рдХреИрдорд░рд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓рд╛рдЗрдиреЗрдВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдХреГрдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

2D рджреГрд╢реНрдпреЛрдВ рдФрд░ UI рддрддреНрд╡реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



рдкреНрд░рдХрд╛рд╢


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

рдкреНрд░рдХрд╛рд╢ рдЙрджрд╛рд╣рд░рдг:

  • Ambient Light тАФ , ; , .
  • Directional Light тАФ , . , , , , ; , .
  • Point Light тАФ , . ( ).
  • рд╕реНрдкреЙрдЯ рд▓рд╛рдЗрдЯ - рдпрд╣ рдкреНрд░рдХрд╛рд╢ рдПрдХ рдмрд┐рдВрджреБ рд╕реЗ рдПрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рд╢рдВрдХреБ рдХреЗ рд╕рд╛рде, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рд╕реЗ рджреВрд░ рдЬрд╛рддреЗ рд╣реИрдВред



рдордВрдЪ рдкрд░ рд╡рд╕реНрддреБрдПрдВ рдмрдирд╛рдирд╛


рдордВрдЪ рдкрд░ рдирд┐рд░реНрдорд┐рдд рд╡рд╕реНрддреБ рдХреЛ рдореЗрд╖ рдХрд╣рддреЗ рд╣реИрдВред

рдореЗрд╖ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдПрдХ рддреНрд░рд┐рдХреЛрдгреАрдп рдмрд╣реБрднреБрдЬ рдЬрд╛рд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╡рд░реНрдЧ 2 рддрд░реНрдХ рджреЗрддрд╛ рд╣реИ:

  • рдЬреНрдпрд╛рдорд┐рддрд┐ - рдЖрдХреГрддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ (рдХреЛрдиреЗ, рдЪреЗрд╣рд░реЗ, рддреНрд░рд┐рдЬреНрдпрд╛, рдЖрджрд┐ рдХреА рд╕реНрдерд┐рддрд┐)
  • рд╕рд╛рдордЧреНрд░реА - рд╡рд╕реНрддреБрдУрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ (рд░рдВрдЧ, рдмрдирд╛рд╡рдЯ, рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛, рдЖрджрд┐) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ

рдЖрдЗрдП 2 рд╕рд░рд▓ рдЖрдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ: рдПрдХ рдШрди рдФрд░ рдПрдХ рдЧреЛрд▓рд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВ рддреАрди .js , рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдлрд┐рд░ рд╣рдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╣реЗрдб рд╕реЗрдХреНрд╢рди рдореЗрдВ рдпрд╛ рд╣рдорд╛рд░реЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдХреЗ рдмреЙрдбреА рд╕реЗрдХреНрд╢рди рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ , рдФрд░ рдЖрдкрдХрд╛ рдХрд╛рдо рд╣реЛ рдЧрдпрд╛:

<!DOCTYPE html>
<html>
  <head>
    <meta charset=utf-8>
    <title>First Three.js app</title>
    <style>
      body { margin: 0; }
      canvas { width: 100%; height: 100% }
      </style>
  </head>
  <body>
    <script src="js/three.js"></script>
    <script>
      //  Javascript .
    </script>
  </body>
</html>

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

рджреГрд╢реНрдп рдЬреЛрдбрд╝реЗрдВ:
var scene = new THREE.Scene();

рдПрдХ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреИрдорд░рд╛ рдЬреЛрдбрд╝реЗрдВ:

var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

рдХреИрдорд░рд╛ 4 рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рдЬреЛ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдереЗ:

  • рджреЗрдЦрдиреЗ рдХрд╛ рдХреЛрдг рдпрд╛ FOV, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ 75 рдХрд╛ рдорд╛рдирдХ рдХреЛрдг рд╣реИ;
  • рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рдпрд╛ рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рд╣реИ;
  • рддреАрд╕рд░рд╛ рдФрд░ рдЪреМрдерд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреИрдорд░реЗ рд╕реЗ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рджреВрд░реА рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐рдкрд╛рджрди рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ред

рд░реЗрдВрдбрд░ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );

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

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

рдХреНрдпреВрдм рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рдЬреНрдпрд╛рдорд┐рддрд┐ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:

var geometry = new THREE.BoxGeometry( 10, 10, 10);

BoxGeometry рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХреНрдпреВрдм рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдШрди рдХреЗ рдХреЛрдиреЗ рдФрд░ рдЪреЗрд╣рд░реЗ рд╣реЛрддреЗ рд╣реИрдВред рд╣рдо рдЖрдХрд╛рд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

  • рдЪреМрдбрд╝рд╛рдИ : рдШрди рдХреА рдЪреМрдбрд╝рд╛рдИ, рдПрдХреНрд╕ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдкрдХреНрд╖реЛрдВ рдХрд╛ рдЖрдХрд╛рд░
  • рдКрдВрдЪрд╛рдИ : рдШрди рдКрдВрдЪрд╛рдИ рдпрд╛рдиреА y- рд╕рд╛рдЗрдб рдХрд╛ рдЖрдХрд╛рд░
  • рдЧрд╣рд░рд╛рдИ : рдШрди рдХреА рдЧрд╣рд░рд╛рдИ рдпрд╛рдиреА Z рдЕрдХреНрд╖ рдкрд░ рд╕рд╛рдЗрдб рдХрд╛ рдЖрдХрд╛рд░

рдШрди рдХреЛ рд░рдВрдЧрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдордЧреНрд░реА рд╕реЗрдЯ рдХрд░реЗрдВ:

var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, MeshBasicMaterial рд╕реЗрдЯ рд╣реИ рдФрд░ рд░рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ 0x00ff00 рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЕрд░реНрдерд╛рддред рд╣рд░рд╛ рд░рдВрдЧред рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдХреГрддрд┐ рдХреЛ рдПрдХ рд╕рдорд╛рди рд░рдВрдЧ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдВрдХрдбрд╝рд╛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рдордЧреНрд░реА {рд╡рд╛рдпрд░рдлреНрд░реЗрдо: рдЯреНрд░реВ} рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╡рд╛рдпрд░рдлреНрд░реЗрдо рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рддреЗ рд╕рдордп рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд╣реИ ред

рдЕрдм рд╣рдореЗрдВ рдПрдХ рдореЗрд╖ рд╡рд╕реНрддреБ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рд▓реЗ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рд╕рд╛рдордЧреНрд░реА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ:

var cube = new THREE.Mesh( geometry, material );
scene.add( cube );

camera.position.z = 25;

рд╣рдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдЬрд╛рд▓ рджреГрд╢реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреИрдорд░рд╛ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗ рдмрд╛рдж рд╕рднреА рд╡рд╕реНрддреБрдУрдВ scene.add () рд╡рд┐рдзрд┐ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (0,0,0) рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдХреИрдорд░рд╛ рдФрд░ рдШрди рдПрдХ рд╣реА рдмрд┐рдВрджреБ рдкрд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

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

function render() {
        requestAnimationFrame( render );
  cube.rotation.x += 0.01;
  cube.rotation.y += 0.01;      
  renderer.render( scene, camera );
}
render();

requestAnimationFrame рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдХреБрдЫ рдЪреЗрддрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рд░реЗрдВрдбрд░ () рдлрд╝рдВрдХреНрд╢рдиред

рдпрд╣рд╛рдВ рд╣рдордиреЗ рд░реЛрдЯреЗрд╢рди рдХреА рдЧрддрд┐ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд▓реВрдк рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 60 рдмрд╛рд░ рд╣рдорд╛рд░реЗ рджреГрд╢реНрдп рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрдпреВрдм рдХреЛ рдШреБрдорд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред


рдЕрдм рдПрдХ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВ:

var geometry = new THREE.SphereGeometry(1, 32, 32);

рдПрдХ рдЧреЛрд▓реЗ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдлреАрдпрд░рдЧреЛрдореЗрдЯреНрд░реА рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИ:

  • рддреНрд░рд┐рдЬреНрдпрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 1 рд╣реИ)
  • WidSegments - рдХреНрд╖реИрддрд┐рдЬ рд╕реЗрдЧрдореЗрдВрдЯ (рддреНрд░рд┐рдХреЛрдг) рдХреА рд╕рдВрдЦреНрдпрд╛ред рдиреНрдпреВрдирддрдо рдорд╛рди 3 рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 8 рд╣реИ
  • рдКрдБрдЪрд╛рдИ - рд▓рдВрдмрд╡рдд рдЦрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдиреНрдпреВрдирддрдо рдорд╛рди 2 рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 6 рд╣реИ

рд╡реИрд╕реЗ, рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдЖрдк рддреНрд░рд┐рдХреЛрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЧреЛрд▓рд╛рдХрд╛рд░ рдХреА рд╕рддрд╣ рдЪрд┐рдХрдиреА рд╣реЛрдЧреАред

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

var material = new THREE.MeshNormalMaterial();
var sphere = new THREE.Mesh( geometry, material );
scene.add( sphere );
camera.position.z = 3;

рд╕рд╛рдордЧреНрд░реА рдХреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рд╣реИрдВред рдХреБрдЫ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдорд┐рд▓рд╛рдХрд░ рдПрдХ рдЖрдХреГрддрд┐ рдореЗрдВ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ рдпрд╣рд╛рдБ ред

рдЕрдВрддрд┐рдо рдЪрд░рдг рдкреНрд░рддрд┐рдкрд╛рджрди рдЪрдХреНрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ:

function render() {
	requestAnimationFrame( render );
	sphere.rotation.x += 0.01;
  sphere.rotation.y += 0.01;
  renderer.render( scene, camera );
}
render();

рдФрд░ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:


рдЖрдЗрдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЖрдХреГрддрд┐ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рд╛рдордЧреНрд░реА рд▓рд╛рдЧреВ рдХрд░реЗрдВред

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

var scene = new THREE.Scene();
var spotLight = new THREE.SpotLight(0xeeeece);
spotLight.position.set(1000, 1000, 1000);
scene.add(spotLight);
var spotLight2 = new THREE.SpotLight(0xffffff);
spotLight2.position.set( -200, -200, -200);
scene.add(spotLight2);

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

рдЖрдк рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдХрд╛рд╢ рдФрд░ рдЙрдирдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ ред

рдЕрдм рдЖрдХрд╛рд░ рдХреЛ рд╕реНрд╡рдпрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:

var geometry = new THREE.TorusGeometry( 10, 3, 16, 100 );

TorusGeometry рд╡рд░реНрдЧ рддреЛрд░реА рдпрд╛ "рд░реЛрд▓рд░реНрд╕" рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХрдХреНрд╖рд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдЪрд▓рддреА рд╣реИ:

  • рддреНрд░рд┐рдЬреНрдпрд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ 1 рд╣реИ;
  • рдкрд╛рдЗрдк рд╡реНрдпрд╛рд╕, рдбрд┐рдлрд╝реЙрд▓реНрдЯ 0.4;
  • рд░реЗрдбрд┐рдпрд▓рд╕реЗрдЧрдореЗрдВрдЯ рдпрд╛ рддреНрд░рд┐рдХреЛрдг рдЦрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, 8 рддрдХ рдХреА рдЪреВрдХ;
  • рдЯреНрдпреВрдмрд▓рд░рд╕реЗрдЧрдореЗрдВрдЯ рдпрд╛ рдлреЗрд╕ рд╕реЗрдЧрдореЗрдВрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ 6 рд╣реИ

рд╕рд╛рдордЧреНрд░реА рдЬреЛрдбрд╝реЗрдВ:

var material = new THREE.MeshPhongMaterial( {
color: 0xdaa520,
specular: 0xbcbcbc,
 } );

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

рд░реЗрдВрдбрд░, рдФрд░ рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЬреЛ рдХреБрдЫ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рд╣реИ:


рдереНрд░реА.рдЬреЗрдПрд╕ рдлреАрдЪрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░


рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Three.js рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ npm рдЗрдВрд╕реНрдЯреЙрд▓ рддреАрди рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред

рдпрджрд┐ рдЖрдк Webpack рдпрд╛ Browserify рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ , рдЬреЛ рдЖрдкрдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдореЙрдбреНрдпреВрд▓') рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдорд┐рд▓рд╛рдХрд░, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИ:

var THREE = require('three');

var scene = new THREE.Scene();
...

ES6 рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ :

import * as THREE from 'three';

const scene = new THREE.Scene();
...

рдпрд╛, рдпрджрд┐ рдЖрдк рдереНрд░реАред рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХреЗрд╡рд▓ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп :

import { Scene } from 'three';

const scene = new Scene();
...

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


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

рддреАрди.рдЬреЗрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рд╕реНрде рдЪреАрдЬреЗрдВ рдмрдирд╛рдиреЗ рдФрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдЪрд┐рдкрдЪрд┐рдкрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:

рдЙрджрд╛рд╣рд░рдг 1
рдЙрджрд╛рд╣рд░рдг 2
рдЙрджрд╛рд╣рд░рдг 3

рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ 3 рдбреА рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреА рдЬрд╝рд░реВрд░рдд рдХрд╛ рд╣рд░ рд╕рд╛рдорд╛рди рдпрд╣рд╛рдБ рдпрд╛ рдпрд╣рд╛рдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

All Articles