Three.js: рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдЬрдире░ 2019  ┬╖  28рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Ember.js RFC рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИред рдЙрдирдХреА RFC рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рдЙрдирдХреЗ github рд░реЗрдкреЛ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/emberjs/rfcs

рд╕рд╛рд░рд╛рдВрд╢

рдореИрдВ рд╕рднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рдХрдИ рдореБрджреНрджреЛрдВ, рдереНрд░реЗрдбреНрд╕, рдкреБрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рддреЛ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ https://github.com/mrdoob/three.js/issues/11552 рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рджреЗрдЦреЗ рдЧрдП рддреАрди.рдЬреЗрдПрд╕ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд░реНрд╖рдг рд╣реИ

рдкреНрд░реЗрд░рдгрд╛

рдЪреВрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд░рдВрдЯрдПрдВрдб рд╕рдореБрджрд╛рдп рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдкрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА рдпрджрд┐ рдЖрдк @types/three рдХреЗ рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ three рдкреИрдХреЗрдЬ рдХреА npm рдкрд░ рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рддреАрди.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рдордп рд╕реАрдорд╛ 2019/01/07 рдХреЗ рд▓рд┐рдП 2019/01/01 рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 56,414 рдбрд╛рдЙрдирд▓реЛрдб рдерд╛ three рдФрд░ рдХреЗ рд▓рд┐рдП 40,588 @types/three (рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рджреЗрдЦрдиреЗ рдХреЗ: https://www.npmjs.com /package/@types/three рдФрд░ https://www.npmjs.com/package/three)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╕реЗрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдкрдХреНрд╖ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкреЗрд╢реЗрд╡рд░ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдореБрджрд╛рдп рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд░рд╛рдп рд╣реИрдВ)

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдкреЗрд╢реЗрд╡рд░ рд╣реИрдВ:

  • рдирдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдереНрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛
  • рдкреНрд░рдХрд╛рд░ рддреАрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдПрдкреАрдЖрдИ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдХрдо рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  • рдЕрдм @types/three рдкреБрд░рд╛рдиреА рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ
  • рднрд╡рд┐рд╖реНрдп рдХреЗ рдкрд╛рд░рджрд░реНрд╢реА рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдХрдорд░рд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП tsicle рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рд╕рд╣реА рдХрд░ рд░рд╣реА рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрд░ рдЙрдкрдХрд░рдг рд╣реЛрдВрдЧреЗ)ред рд╕рд╛рде рд╣реА рдПрд╕реЗрдореНрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЙрдкрдХрд░рдг рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдкреНрд░рджрд░реНрд╢рди рдЖрд▓реЛрдЪрдХ рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрди рд╕рдХрддреЗ рд╣реИрдВ
  • рдкреНрд░рдХрд╛рд░ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  • рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рдирдХ рдХреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рд╕реНрд░реЛрдд рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛
  • рдЬрдм рд╕рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЯреАрдПрд╕ рдпрд╛ рдЬреЗрдПрд╕ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдмрдирд╛рдП рд░рдЦрдиреЗ рдкрд░ рддреАрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛
  • рдХрдВрдкрд╛рдЗрд▓рд░ рдлреНрд▓реИрдЧ declarationDir рд╣рдо рдЕрдкрдиреЗ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕реЗ d.ts рдлрд╛рдЗрд▓реЗрдВ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рддрд╛рдХрд┐ рд╕рднреА рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣рдореЗрд╢рд╛ рдЕрдк рдЯреВ рдбреЗрдЯ рд░рд╣реЗред

рд╡рд┐рд╕реНрддреГрдд рдбрд┐рдЬрд╛рдЗрди

рд╣рдореЗрдВ рд╕рднреА ES6 рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА ES6 рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдЗрддрдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдЪреВрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдзреБрдирд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд░рд╣ рдмрд╣реБрдд рдХреБрдЫ рдкрдврд╝рддрд╛ рд╣реИ)ред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдмрд╕ рд░реЛрд▓рдЕрдк-рдкреНрд▓рдЧрдЗрди-рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдореИрдВ рд░реЛрд▓рдЕрдк-рдкреНрд▓рдЧрдЗрди-рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ2 рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛) рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдлрд┐рд░ рд╣рдореЗрдВ рдПрдХ tsconfig.json рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рд╕рднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╣рдорд╛рд░реА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╢рд╛рдпрдж рд╣рдореЗрдВ tslint рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЛрд▓рдЕрдк рдкреНрд▓рдЧрдЗрди рднреА рд╣реИ, рдЗрд╕реЗ рд░реЛрд▓рдЕрдк-рдкреНрд▓рдЧрдЗрди-tslint рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рдж рд╣рдо @types/three рдореЗрдВ рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЬреИрд╕реЗ three.ts рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рд╣рдо рдпрд╣ рдХреИрд╕реЗ рд╕рд┐рдЦрд╛рддреЗ рд╣реИрдВ

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдирдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдереНрд░реА.рдЬреЗрдПрд╕ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИ (рдЪреВрдВрдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдХреБрдЫ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдбреЙрдХреНрд╕ рдореЗрдВ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рд╕реНрдЯреНрд░рд╛рдЗрдк рдПрдкреАрдЖрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝

рдХрдорд┐рдпрд╛рдВ

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

рд╡реИрдХрд▓реНрдкрд┐рдХ

рдмрд╕ рд╢реБрджреНрдз рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд░рд╣реЗрдВ рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо @types/three рдЬреИрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдХрд┐рдП рдЧрдП рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рд▓реЗ рдереНрд░реА.рдЬреЗрдПрд╕ рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдереНрд░реА рдХреА рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдирд╕реБрд▓рдЭреЗ рд╕рд╡рд╛рд▓

  • рдХреНрдпрд╛ рд╣рдо рд╡рд╛рдХрдИ рдРрд╕рд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
  • рдХрдм рд╢реБрд░реВ рдХрд░реЗрдВ (рдЕрднреА рдпрд╛ ES6 рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдХреЗ рдмрд╛рдж)?
  • рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ? рдХреНрдпрд╛ рд╣рдореЗрдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреЗрд╡рд▓ d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреВрджрдирд╛ рдЪрд╛рд╣рд┐рдП?
  • рдпрд╣ рдХреМрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдореБрдЭреЗ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╣рдиреЗ рджреЗрдВ, рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рдкреНрд░реЗрд░рд┐рдд рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЬрдм рддрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ, рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ ES6 рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ .js рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реАрдзреЗ src рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдорджрдж рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

https://github.com/mrdoob/three.js/blob/dev/examples/webgl2_sandbox.html#L37 -L48

рд╕рд╛рде-рд╕рд╛рде *.d.ts рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдЗрд╕рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реЛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрджреНрдпрддрд┐рдд рд░рдЦреЗред

рд╕рднреА 28 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд░рдирдЯрд╛рдЗрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ

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

рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЛрд░ + рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

https://github.com/takahirox/three.wasm-experimental
https://twitter.com/superhoge/status/1071132448426262529

рдкреНрд░рдпреЛрдЧ рд╕реЗ рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдкреВрд░реЗ рдХреЛрд░ рдХреЛ WASM рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ 1.5x рддреЗрдЬ, рдЬрдмрдХрд┐ рдЫреЛрдЯреЗ рднрд╛рдЧреЛрдВ рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкреЛрд░реНрдЯ рдХрд░рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдореИрде рдХреЛрдб (рд╡реЗрдХреНрдЯрд░ 3, рдореИрдЯреНрд░рд┐рдХреНрд╕ 4, ...), рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрдбрд╝реЗ JS-WASM рдУрд╡рд░рд╣реЗрдб рдХрд╛ред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рдХрдард┐рдирд╛рдИ рдХреЗ рдХрд╛рд░рдг рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдкреВрд░реНрдг рдереНрд░реА.рдЬреЗрдПрд╕ рдХреЛрд░ рдХреЛ рд╕реА ++ рдпрд╛ рд░рд╕реНрдЯ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ + рдЕрд╕реЗрдВрдмрд▓реАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ? рдХреНрдпрд╛ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдХреЗрд╡рд▓ d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреВрджрдирд╛ рдЪрд╛рд╣рд┐рдП?

рд╣рдо рдПрдХ рдкреАрдЖрд░ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдереНрд░реА.рдЬреЗрдПрд╕ рдореЗрдВ *.d.ts рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ @types/three (рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЙрд╕ рдХрд╛рдо рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдпрд╣ рдПрдХ рдорд╣рд╛рди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП JS рдореЗрдВ рдЬрд╛рд░реА рд░рдЦрдиреЗ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@takahirox рдЕрдЪреНрдЫрд╛ рдХрд╛рдо :-) рдореИрдВ рд╣рдореЗрд╢рд╛ рд░реЛрдорд╛рдВрдЪрд┐рдд рд╣реВрдВ рдХрд┐

@bhouston рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ @types/three рд╕реЗ three рд░реЗрдкреЛ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдмрд╣реБрдд рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ d.ts рдлрд╛рдЗрд▓реЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╡реЗ рд╣рдореЗрд╢рд╛ рд╕рд┐рдВрдХ рдореЗрдВ рд░рд╣рддреА рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ d.ts рдлрд╛рдЗрд▓реЗрдВ рд╣рдореЗрд╢рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЬреЗрдПрд╕-рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рд╣реЛрддреА рд╣реИрдВ? рдпрджрд┐ рд╣рд╛рдБ рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЛ three рд░реЗрдкреЛ рдореЗрдВ рдбрд╛рд▓рдирд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЗ рдирд┐рд░реНрдгрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╡реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд╣реАрдВ рдЕрдкрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ d.ts рдлрд╛рдЗрд▓реЗрдВ рднреА рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдЧрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рддреЛ рд╣рдо рдЗрд╕ рдмрд╛рд░ d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреБрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд╣реАрдВ рддреЛ рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдлрд╛рдпрджрд╛ рдХрдо рдФрд░ рдХрд╛рдо рдЬреНрдпрд╛рджрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ

@bhouston рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ @ рдкреНрд░рдХрд╛рд░/рддреАрди рд╕реЗ рддреАрди рд░реЗрдкреЛ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдмрд╣реБрдд рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ d.ts рдлрд╛рдЗрд▓реЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╡реЗ рд╣рдореЗрд╢рд╛ рд╕рд┐рдВрдХ рдореЗрдВ рд░рд╣рддреА рд╣реИрдВред

рдЕрдЧрд░ рд╣рдо рд╕реАрдзреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ *.d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ @types/three рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣рдореЗрд╢рд╛ рдереНрд░реА.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп рддреАрди.рдЬреЗрдПрд╕ рдХреА рдирд┐рд░реНрдорд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреЗрдбрд╝ рдХреЗ рд╣рд┐рд▓рдиреЗ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЕрдиреНрдп рд░реВрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ *.d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реАрдзреЗ *.ts рдлрд╛рдЗрд▓реЛрдВ рдХреА рдУрд░ рдмрдврд╝рдиреЗ рдЬрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдЧрд░ рд╣рдо рд╕реАрдзреЗ *.ts рдлрд╛рдЗрд▓реЛрдВ рдХреА рдУрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдерд╛ред

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

@bhouston рдореИрдВ https://www.typescriptlang.org/docs/handbook/migrating-from-javascript.html

рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рдХрд┐рд╕реА рдПрдХ рдЕрдиреБрд░рдХреНрд╖рдХ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк ( d.ts рдлрд╛рдЗрд▓реЗрдВ рдпрд╛ рдЯреАрдПрд╕ рдФрд░ рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░) рд╕рдВрднрд╡ рд╣реИрдВред рдФрд░ рдпрд╣ рдХрдореЛрдмреЗрд╢ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдФрд░ рд╢реИрд▓реА рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИред

@tschoartschi рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред @mrdoob рдиреЗ рд╕рд╛рде-рд╕рд╛рде *.d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдордВрдЬреВрд░реА рджреА рд╣реИред рдореИрдВ рд╡рд╣рд╛рдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓реЛрдЧреЛрдВ рдкрд░ рддреБрд░рдВрдд рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдо *.ts рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рд╕рднреА рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗ рдмрд┐рдирд╛ рдЗрд╕рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдлрд┐рд░ рд╣рдо рдЕрднреА рднреА *.js рдлрд╛рдЗрд▓реЛрдВ рдХреЛ *.ts рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рде-рд╕рд╛рде *.d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рде-рд╕рд╛рде *.d.ts рдлрд╝рд╛рдЗрд▓реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдХрджрдо рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдореИрдВ "рдкреВрд░реНрдгрддрд╛" рдХреЛ рд╣рдореЗрдВ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкреНрд░рдЧрддрд┐ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

@bhouston рдХреВрд▓ рдореИрдВ рднреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рдФрд░ рдореИрдВ рдлрд┐рд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо @types/three рдХреЗ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рд╕реЗ рднреА рдмрд╛рдд рдХрд░ рд╕рдХреЗрдВред рдХреНрдпрд╛ рд╣рдореЗрдВ Three.js рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рд╕реНрд▓реИрдХ рдЪреИрдирд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрд╕рд▓рд┐рдП рд╣рдо рдЬрд▓реНрджреА рд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЪреИрдЯ рдЬреИрд╕реА рдмрд╛рддрдЪреАрдд рд╕реЗ рдкреНрд░рджреВрд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рднреА, рдореИрдВ рдПрдХ рдкрд▓ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ

рдПрдХ рдмрд╛рд░ @mrdoob рд╕реЗ рдЖрд╢реАрд░реНрд╡рд╛рдж рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдмрдВрджрд░рдЧрд╛рд╣ рдХреЗ рд▓рд┐рдП рд╕рдордп рджреЗрдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВред

рдЬрдм рддрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореВрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ, рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ ES6 рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ .js рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реАрдзреЗ src рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдорджрдж рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

https://github.com/mrdoob/three.js/blob/dev/examples/webgl2_sandbox.html#L37 -L48

рд╕рд╛рде-рд╕рд╛рде *.d.ts рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдЗрд╕рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реЛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрджреНрдпрддрд┐рдд рд░рдЦреЗред

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

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

three/
тФЬтФАтФА src/
    тФЬтФАтФА cameras
        тФЬтФАтФА PerspectiveCamera.ts // authored code
        тФЬтФАтФА PerspectiveCamera.js // generated code by TS compiler

рдлрд┐рд░ рднреА рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рд░рджрд░реНрд╢реА рдХреЛрдб рдХрд╣реАрдВ dist , build рдпрд╛ bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд░рд╛рдп рд╣реИ рди рдХрд┐ рдПрдХ рдХрдард┐рди рддрдереНрдпред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЧреАрдХреНрд╕ рд╣реЛрдВ рдЬреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдЬрд╛рдирддреЗ рд╣реЛрдВред

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк @bhouston рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдИ рдЧрдИ d.ts рдлрд╝рд╛рдЗрд▓ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ @mrdoob рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрджреНрдпрддрд┐рдд рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЦрд╛рд╕рддреМрд░ рдкрд░ рд▓реЙрдиреНрдЧ рдЯрд░реНрдо рд╡реНрдпреВ рдкрд░ред рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЕрдЧрд▓реЗ рд╡рд░реНрд╖реЛрдВ рддрдХ рдЕрджреНрдпрддрд┐рдд рд░рдЦрдирд╛ рд╡рд╛рдХрдИ рдкреНрд░рдмрдВрдзрдиреАрдп рд╣реИ? рдореИрдВ d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рд╕рдордп рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд░рд╣реВрдВрдЧрд╛ред рдореЗрд░реЗ рд▓рд┐рдП рд╡рди-рдЯрд╛рдЗрдо-рд╕реНрд▓реЙрдЯ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рд╕рдордп рджреЗрдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ @types/three рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдпрд╛ d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реАрдзреЗ three рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред @types/three рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ d.ts рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рдорд╛рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рднреА рдЗрд╕реА рддрд░рд╣ рдХреА рдЪреБрдиреМрддрд┐рдпрд╛рдВ рд╣реИрдВред рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдк рдЯреВ рдбреЗрдЯ рд░рдЦ рд░рд╣рд╛ рд╣реИред

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

рдмрд╕ рдПрдХ рдФрд░ рд╕реБрдЭрд╛рд╡:
рдлреЗрдЬрд░ рдЧреЗрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдЯреЛ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдХрд░рдг рдУрдкрдирд╕реЛрд░реНрд╕ рд╣реИред рддреЛ TS рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдКрдкрд░ /** рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ */ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред

рдлреЗрдЬрд░ рдЧреЗрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдЯреЛ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ ...

https://github.com/mrdoob/three.js/issues/11550 рдФрд░ https://github.com/mrdoob/three.js/issues/4725#issuecomment -41833647 рджреЗрдЦреЗрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐, *.d.ts рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ

рд╕рд╛рде-рд╕рд╛рде *.d.ts рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдЗрд╕рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реЛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрджреНрдпрддрд┐рдд рд░рдЦреЗред

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

рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рднреА рд╣реИ https://github.com/semleti/three.ts
рд╢рд╛рдпрдж рдПрдХ рдирдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдФрд░ рдЗрд╕реЗ v100 рддрдХ рд▓рд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ?
рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдереНрд░реА.рдЬреЗрдПрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реБрдЖ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рди рд╣реЛ рдХрд┐ рдЗрддрдиреЗ рдмрдбрд╝реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ ... рдФрд░ рдореИрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рдХрднреА рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рднрд╛рд╖рд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдЧрд╛ред рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЕрдВрджрд░ рдорд╛рдирдХ рдирд╣реАрдВ рд╣реИред

@schoening рдореИрдВрдиреЗ рдпрд╣ рдЪрд░реНрдЪрд╛ рдЗрд╕рд▓рд┐рдП рд╢реБрд░реВ рдХреА рдХреНрдпреЛрдВрдХрд┐ @flyover рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (https://github.com/flyover/three.ts, https://github.com/mrdoob/three.js/issues/11552#issuecomment-367026821) . рдПрдХ рдлреЛрд░реНрдХрдб рдереНрд░реА.рдЯреАрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рд░рд╣рдирд╛ рд╣реИред рд╕рднреА рд░реЗрдкреЛ рдХреБрдЫ рд╕рдВрд╕реНрдХрд░рдг рдкреАрдЫреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣реЛрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ "рдХреЛрд░" -рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рд░рдЦрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ Three.js рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @types/three рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд┐рдВрдХ рдореЗрдВ рд░рд╣рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡рд╣рд╛рдВ рд╕реЗрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рджреВрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ Three.js рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реЛрдЪрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдРрд╕рд╛ рд╕рдВрдХреНрд░рдордг рдХреИрд╕реЗ рд╕рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ @donmccurdy рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдмреЗрд╣рддрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдЧрддрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ JSDoc рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЕрднреА рднреА *.d.ts рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ JSDoc рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрджреНрдпрддрд┐рдд рд░рдЦрдирд╛ рдФрд░ рднреА рдХрдард┐рди рд╣реИред рд╕рд╛рде рд╣реА рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ *.d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ @bhouston рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░ рд╕рдХреЗ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рд░рдЦрдиреЗ рдХреА рдЪрд┐рдВрддрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХреБрдЫ рд╕реНрдорд╛рд░реНрдЯ рд╕рдорд╛рдзрд╛рди рд╣реЛрдВред

рдореЗрд░реЗ рд▓рд┐рдП рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрднрд╡ vscode + d.ts + JSDoc, рд╕рднреА рдПрдХ рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд┐рдВрдХ рдореЗрдВ рд░рд╣рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдирд╡реАрдирддрдо рдмрдирд╛рдо рдХреЛрдб рд╕рдВрд╕реНрдХрд░рдг рдиреЗ checkJs рд╕рдорд░реНрдерди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ ( tsconfig.json рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЗрдПрд╕рдбреАрдУрд╕реА рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд▓рд╕ рдШреЛрд╖рдгрд╛ d.ts рд╕реЗ рд╡рд┐рд▓рдп рдХрд░ рд░рд╣рд╛ рд╣реИ рдЕрдзрд┐рдХ "рдЙрдиреНрдирдд" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЬреЛ JSDoc рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдмрджрд╕реВрд░рдд рд╣реЛрдЧрд╛ред

рдЪреВрдВрдХрд┐ vscode рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рднреА рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ "рдмрдЧреНрдЧреА/рдкреБрд░рд╛рдиреЗ" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ d.ts рд╕реЗ рджреЗрдЦрдирд╛ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рд┐рдВрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ .

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдмреБрд░реА рдмрд╛рдд рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд╛рд░рджрд░реНрд╢реА рдХрджрдо рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, JSDoc + d.ts vscode рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рдлрд╛рдпрджреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрддрд┐рд░рд┐рдХреНрдд рдзреАрдореЗ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдЪрд░рдг рдХреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдирд╣реАрдВ рд╣реИрдВред

рдХреЗрд╡рд▓ рд╕рдорд╕реНрдпрд╛ рд╣рд░ рдЪреАрдЬ рдореЗрдВ 100% рдЙрдЪрд┐рдд JSDoc рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП vscode рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдмрд╕ рд╕рд╛рдорд╛рди рдЬреИрд╕реЗ @constructor , <strong i="16">@enum</strong> {number} , <strong i="18">@param</strong> {number} n Number of steps )

рдореИрдВ рдпрд╣рд╛рдВ рдпрд╣ рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ @bhouston рдФрд░ @LuWangThreekit рдиреЗ *.d.ts рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдиреЛрдЯ рджреЗрдЦреЗрдВ: https://github.com/mrdoob/three.js/issues/11552#issuecomment -454881060 рдФрд░/рдпрд╛ рдЙрдирдХреЗ рдкреАрдЖрд░ https://github.com/mrdoob/three.js/pull/ 15597

Sidenote: рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рджреВрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ Deno (рдП рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рджреБрднрд╛рд╖рд┐рдпрд╛ GitHub рдкрд░ 32,000 рд╕рд┐рддрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╡реА 8 рдФрд░ рдЬрдВрдЧ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛) рдпреЛрдЧреНрдп рд╕рд╛рдмрд┐рдд рд╣реЛрддрд╛ рд╣реИред

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

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП...

рдпрд╣ рддреАрди.рдЬреЗрдПрд╕ -рдкреНрд░реЗрд░рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп

https://threeify.org/

@bhouston рд╕реЗ рдереНрд░реАрдлрд╛рдИ рдПрдХ рдорд╣рд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ - рдЗрд╕рдореЗрдВ рд╕реЗрдорд╡рд░ рд╣реИ рдФрд░ рд╕рд┐рдореЗрдВрдЯрд┐рдХ-рд░рд┐рд▓реАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдореВрд▓ рдореВрд▓реНрдп рдЯреНрд░реА рд╢реЗрдХрд┐рдВрдЧ, рд╕реНрдореЙрд▓ рдмрд┐рд▓реНрдб рдлрд╛рдЗрд▓реНрд╕ рдЖрджрд┐ рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВред рд╕рднреА рдЪреАрдЬреЗрдВ рдЬреЛ рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧ рдереНрд░реА.рдЬреЗрдПрд╕ рдореЗрдВ рднреА рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдХрд╛рдо рдХреЛ рдорд╣рддреНрд╡ рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рдереНрд░реАрдлрд╛рдИ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @pailhead рдиреЗ рд╡рд┐рднрд┐рдиреНрди рддреАрди.рдЬреЗрдПрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ ред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдореБрджрд╛рдп рдореЗрдВ рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдЙрди рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдереНрд░реАрдлрд╛рдИ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрд▓реЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдФрд░ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрдИ рд▓реЗрдЦреЛрдВ рдХреА рддрд░рд╣, рдкреЗрд▓рд╣реЗрдб рдХрд╛ рд▓реЗрдЦ рдкрдХреНрд╖рдкрд╛рддреА рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬреЗрдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ @pailhead рдХреЗ рд╕рдорд╛рди рд╣реА рдЕрдиреБрднрд╡ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЙрдирдХрд╛ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Vue , Ember , React , Svelte , Angular ... рдЬреИрд╕реЗ рдЖрдзреБрдирд┐рдХ рдлреНрд░рдВрдЯ-рдПрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдмрд╣реБрдд рдЖрдо рд╣реИ ...

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

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

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

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

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

@ рд░реВрдорд▓-рдмрд┐рд▓реНрдб рдХреНрдпрд╛ рдЖрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

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

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

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

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ three.js рдХреЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдлрд╛рдпрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕рдХреА рдкрд╣реБрдВрдЪ рд╣реИред @ рд░реВрдорд▓реЗ-рдмрд┐рд▓реНрдб рдиреЗ рдЬрд┐рди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рдЗрдВрдЬрди рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрдВрдЧреЗ (рд╡рд┐рд╢реЗрд╖рдХрд░ рд╢реБрд░реБрдЖрддреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ)ред рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рддрдХ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рди рд╣реЛред

рдореИрдВ рд╡рд┐рдЦрдВрдбрди рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рд╡реЗрдм рдореЗрдВ рдЕрдзрд┐рдХ 3D рдЗрдВрдЬрди рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХрднреА-рдХрднреА рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреА рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ three.js рдХреЗ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдлрд╛рдпрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕рдХреА рдкрд╣реБрдВрдЪ рд╣реИред @ рд░реВрдорд▓реЗ-рдмрд┐рд▓реНрдб рдиреЗ рдЬрд┐рди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИ, рд╡реЗ рдЗрдВрдЬрди рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджреЗрдВрдЧреЗ (рд╡рд┐рд╢реЗрд╖рдХрд░ рд╢реБрд░реБрдЖрддреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ)ред

рдореИрдВ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХреНрд╕реЗрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдкрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ Vue рдФрд░ Ember рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ред рд╢рд╛рдпрдж рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рд░реБрдЦ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ? рд╣рдореЗрдВ рдХреБрдЫ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рдлрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдпрд╣ рд▓рд╛рдн рд╣реЛрдЧрд╛ рдХрд┐ three.js рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд▓рдн рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдИрдбреАрдИ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рддреЗрдЬреА рд╕реЗ рдЕрд╡рд▓реЛрдХрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджреА рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Bandit picture Bandit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

danieljack picture danieljack  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

konijn picture konijn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jlaquinte picture jlaquinte  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alexprut picture alexprut  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ