Three.js: рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП Google рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ "рдмрд╛рд╣рд░реА" рдлрд╝рд╛рдЗрд▓?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЬреБрд▓ре░ 2011  ┬╖  61рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

рдирдорд╕реНрддреЗ

рдХреНрдпрд╛ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рдРрд╕рд╛ рд╣реИ:

http://code.google.com/closure/compiler/docs/api-tutorial3.html#externs

рдзрдиреНрдпрд╡рд╛рдж
рд░реЗрдореЛ

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

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

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

рдирд╣реАрдВ, рддреАрди.рдЬреЗрдПрд╕ рдХреА рдХреЛрдИ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдм рддрдХ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рдереАред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрд╡рдпрдВ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХрд▓рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред

рдРрд╕реА рдлрд╛рдЗрд▓ рдХреИрд╕реА рджрд┐рдЦреЗрдЧреА? рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдкреГрд╖реНрда рдереЛрдбрд╝рд╛ рднрд╛рд░реА (рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЯреЗрдХреНрд╕реНрдЯ) рдорд┐рд▓рд╛ рдФрд░ рдореИрдВ рдкрдврд╝рдиреЗ/рд╕рдордЭрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред

@mrdoob , рдЖрдкрдХреЛ рдЙрдирдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдорд┐рд▓рддреЗ рд╣реИрдВ:

http://code.google.com/p/closure-compiler/source/browse/#svn %2Ftrunk%2Fexterns

рдпрд╛

http://code.google.com/p/closure-compiler/source/browse/#svn %2Ftrunk%2Fcontrib%2Fexterns

рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:

http://code.google.com/closure/compiler/docs/js-for-compiler.html

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ/рд╢реАрд░реНрд╖рдХ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ ...

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

рдореИрдВрдиреЗ рдЗрд╕реЗ http://www.dotnetwise.com/Code/Externs/index.html рдХреЗ рд╕рд╛рде рдЖрдЬрдорд╛рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ Three.js рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдирд┐рдХрд╛рд▓реА рдирд╣реАрдВ рдЬрд╛рддреА рд╣реИрдВред

рдпрд╣рд╛рдБ рдмреНрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ:

http://blog.dotnetwise.com/2009/11/closure-compiler-externs-extractor.html

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ this.method = function(){} рдкреИрдЯрд░реНрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рдирд╣реАрдВ ...

@mrdoob , рдХреНрд▓реЛрдЬрд░-рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдбрд╡рд╛рдВрд╕реНрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ THREE.js рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрдкрдХреА рдХреНрдпрд╛ рд╕рд┐рдлрд╛рд░рд┐рд╢ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ?

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдиреНрдирдд рдЕрдиреБрдХреВрд▓рдХ рдореЗрдВ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛ рд░рд╣реА рдХрдХреНрд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╣реИ рдирд╛? рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП... рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?

рдореИрдВрдиреЗ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдЙрдиреНрдирдд рдЕрдиреБрдХреВрд▓рди рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рддрд╛ рдерд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ "рд╕реБрд░рдХреНрд╖рд┐рдд" рдирд╣реАрдВ рдерд╛ - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд░рд▓ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде рдпрд╣ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрдирдд рдХреЗ рд╕рд╛рде рдХрднреА-рдХрднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ (рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╡рд╣ рд╕рдм) рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?

@mrdoob рд╕рдВрдХрд▓рд┐рдд (рдЕрдиреБрдХреВрд▓рд┐рдд) рдХреЛрдб рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдмрд╛рд╣рд░реА" -рдлрд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓рддрд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рдЕрдкрдиреЗ рддреАрди.рдЬреЗрдПрд╕-рдЖрд╡реЗрджрди рдХреЛ рдЦрд░рд╛рдм рдХрд░рдиреЗ (рдмрджрд╕реВрд░рдд) рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИ: https://github.com/mishoo/UglifyJS ред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред

Google рдХреНрд▓реЛрдЬрд░ рдПрдХреНрд╕рдЯрд░реНрди рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ, рдЬреЛ рд╕рдВрдкреВрд░реНрдг рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЕрдкрдиреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдореЗрдВ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдореЛрдВ рд╕реЗ a() рдпрд╛ b() рдЬреИрд╕рд╛ рдХреБрдЫ рдмрдирд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ JQuery рдХреЗ рд▓рд┐рдП рд╣реИ: http://code.google.com/p/closure-compiler/source/browse/trunk/contrib/externs/jquery-1.7.js

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдмрд╛рд╣рд░реА рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рд╣реЛред

рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рд╕реЗ рдЦреБрдж рдирд╣реАрдВ рдирд┐рдкрдЯ рд╕рдХрддрд╛ред рдХрд┐рд╕реА рдФрд░ рдХреЛ рдЗрд╕ рдкрд░ рдХрджрдо рдмрдврд╝рд╛рдирд╛ рд╣реЛрдЧрд╛ред

@yurikor , рдЬрдм рдЖрдк node.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк node-browserify рдФрд░ uglify-js рдХрд╛ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

@remoe рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛рдКрдВрдЧрд╛ред

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

рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рддреАрдиj рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ uglifyjs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛

рд╕рд╛рде рд╣реА, рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдореЗрд░реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рддреАрдХреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХреЛрдб рдХреА рдХрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдВ рдЬреЛрдбрд╝рдиреА blah.xyz рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреА рдЧрдИ рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди blah["xyz"] рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди window['ColladaLoader2'] = ColladaLoader2 (рдлрд┐рд░ рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдореЗрд░реЗ рдлреЛрди рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛, рдореЗрд░реЗ рд╡реНрдпрд╛рдХрд░рдг рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред
12 рдлрд░рд╡рд░реА 2013 рдХреЛ рд╕реБрдмрд╣ 5:19 рдмрдЬреЗ, "рд░реЙрдмрд░реНрдЯ рдХрд╛рд░реНрдиреЗрдХреА" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

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

рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рд╣реИ
рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдиреЗ рдХреНрд▓реЛрдЬрд░ рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдерд╛
рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдмрдЧ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ред рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИред рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдмрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
рдЬрд╛рдБрдЪ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЦрдирди рдХреЗ рд▓рд┐рдП рдореИрдВ рдХрдо рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд▓реЗрдХрд┐рди рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБ
uglifyjs https://github.com/mishoo/UglifyJSред

рд╕рд╛рде рд╣реА, рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдореЗрд░реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП
рдкреНрд░рддреАрдХреЛрдВ, рдореБрдЭреЗ рдХреЛрдб рдХреА рдХрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рдиреА рдереАрдВhttps://github.com/crobi/ColladaAnimationCompress/blob/366344d3aa5dbbc0a53c47a2c1759b86bb1e0fcd/ColladaLoader2.coffee#L3376 (рд╡реЗ рдЪрд╛рд░ рдХрд╛рд░реНрдп рдореЗрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдПрдХрдорд╛рддреНрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдп рд╣реИрдВ)ред рдзреНрдпрд╛рди рджреЗрдВ
рдХрд┐ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ blah.xyz рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреА рдЧрдИ рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджреЗрддрд╛ рд╣реИ,
рд▓реЗрдХрд┐рди blah ["xyz"] рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рд▓рд╛рдЗрдиhttps://github.com/crobi/ColladaAnimationCompress/blob/366344d3aa5dbbc0a53c47a2c1759b86bb1e0fcd/ColladaLoader2.coffee#L3383 window['ColladaLoader2']
= ColladaLoader2 (рдлрд┐рд░ рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ) рдХреЛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛
рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHubhttps: //github.com/mrdoob/three.js/issues/341#issuecomment -13426131 рдкрд░ рджреЗрдЦреЗрдВред

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

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

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╕рд░рд▓ рдореЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ

function fn() {
    var foo = {}; // local variable, safe to rename this
    foo.bar();    // undefined property, will crash here
}
fn();

рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ

function fn(){({}).bar()}fn();

рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ ({}).bar() рдкрд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЙрдиреНрдирдд рдореЛрдб рдирд┐рдореНрди рдХреЛрдб рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ

({}).a(); // fn() inlined, private member 'bar' renamed to 'a'

рдЬреЛ рдЕрднреА рднреА рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рднреА рджреЗрддрд╛ рд╣реИ

Property bar never defined on foo at line 3 character 0.
  • рдмрдЧ рдХреНрд▓реЛрдЬрд░ рдкрд╛рдП рдЧрдП рдмрдЧреНрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░ рдереЗ рдЬрд╣рд╛рдВ рдореЗрд░реЗ рдкрд╛рд╕ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рдерд╛ рдпрд╛ рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ x, y, рдФрд░ z рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп THREE.Vector3 рд╕реЗ Matrix4.makeTranslation рдХрд┐рдпрд╛ рдерд╛ .
  • рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рдг рдХрд╡рд░реЗрдЬ рд╣реЛрддрд╛ (рдЬреЛ рдореИрдВ рдирд╣реАрдВ рдХрд░рддрд╛), рддреЛ рдореБрдЭреЗ рд╡реЗ рдмрдЧ рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдорд┐рд▓ рдЬрд╛рддреЗред рдХрднреА-рдХрднреА рдЙрдиреНрд╣реЗрдВ рдбреАрдмрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╡реЗ рддреБрд░рдВрдд рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
  • рдпрджрд┐ рдереНрд░реАрдЬреЗрдЬрд╝ рдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдирдИ рд░рд┐рд▓реАрдЬрд╝ (рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рднрд╛рд░реА рдкреНрд░рдпрд╛рд╕) рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдирд┐рд░реНрдпрд╛рдд рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА, рддреЛ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдмрджрд▓рддреЗ рдПрдкреАрдЖрдИ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдкрдХрдбрд╝ рд▓реЗрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐ Matrix4.makeTranslation рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдерд╛)ред
  • рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрд╛рдо рдХрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдЬрд╛рд╡рд╛ рд░рдирдЯрд╛рдЗрдо рдХреА рдЬрд░реВрд░рдд рд╣реИред рдореЗрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЕрдиреНрдп рд╕рднреА рдЙрдкрдХрд░рдг рдиреЛрдб/рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред

рдХреНрд▓реЛрдЬрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рддреАрди.рдЬреЗрдПрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрдиреА рдХреНрд▓реЛрдЬрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА externs.js рдлрд╛рдЗрд▓ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдо рдЬреЛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╣реИ:
рдХреНрдпрд╛ рд╕рднреА рддреАрди.рдЬреЗрдПрд╕ рд╡рд░реНрдЧреЛрдВ рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд╣реАрдВ рдПрдХ рд╕реВрдЪреА рд╣реИ? рд╕реВрдЪреА рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

рддреАрдиредрдмрдирд╛рд╡рдЯ
рддреАрдиред рдмрдирд╛рд╡рдЯред рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛
рддреАрдиред рдмрдирд╛рд╡рдЯред рдХреНрд▓реЛрди
рддреАрдиредрдмрдирд╛рд╡рдЯредрдирд┐рдкрдЯрд╛рди
рддреАрдиредрдбреЗрдЯрд╛рдЯреЗрдХреНрдЪрд░редрдХреНрд▓реЛрди

(рдФрд░ рдЗрд╕реА рддрд░рд╣...)

Ps- Three.js рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдЪрд┐рдд jsDocs рдХреЗ рд╕рд╛рде, рдЗрд╕ рд╕реВрдЪреА рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ :)

рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рддреАрди.рдЬреЗрдПрд╕ рдирд┐рд░реНрдпрд╛рдд рдХрд╛ рдЖрдВрд╢рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

@crobi : рдЖрдкрдиреЗ рдЗрд╕рдореЗрдВ рдбреЙрдХреНрдЯрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдХреНрдпреЛрдВ

@taoeffect : рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдЙрдиреНрдирдд рдореЛрдб рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдореБрдЭреЗ рджреГрдврд╝рддрд╛ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдкрд╕рдВрдж рд╣реИред

@crobi , рдУрд╣ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓рд╛рдЧреВ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ? рдпрд╣ рдереЛрдбрд╝реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЙрд╕рдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИред

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

рдпрд╣рд╛рдВ рдХреНрд▓реЛрдЬрд░ рдХреЗ рдЙрдиреНрдирдд рдЕрдиреБрдХреВрд▓рди рдореЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЧрд▓рдд рд╣реИрдВред

рдореБрдЦреНрдп рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд┐рд╕реА рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреНрд▓реЛрдЬрд░ рдПрдХреНрд╕рдЯрд░реНрди рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ http://www.dotnetwise.com/Code/Externs/

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

--language_in=ECMASCRIPT5

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

рд╕реЛрдо, рдЬрдирд╡рд░реА 13, 2014 рдЕрдкрд░рд╛рд╣реНрди 12:31 рдмрдЬреЗ, рд░реЛрдбреНрд░рд┐рдЧреЛ рдлреЙрд░реНрдорд┐рдЧреЛрди <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рдиреЗ рд▓рд┐рдЦрд╛:

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

--рднрд╛рд╖рд╛_рдЗрди=рдИрд╕реАрдПрдордПрдПрд╕рд╕реАрдЖрд░рдЖрдИрдкреАрдЯреА5

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ Gi tHub рдкрд░ рджреЗрдЦреЗрдВhttps://github.com/mrdoob/three.js/issues/341#issuecomment -32191167
.

рд╕рд╛рджрд░,
рдмреЗрди рд╣реНрдпреВрд╕реНрдЯрди
рдЖрд╡рд╛рдЬ: 613-762-4113 рд╕реНрдХрд╛рдЗрдк: ben.exocortex рдЯреНрд╡рд┐рдЯрд░: @exocortexcom
http://Clara.io - рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ-рдЧреНрд░реЗрдб WebGL-рдЖрдзрд╛рд░рд┐рдд 3D рд╕рд╛рдордЧреНрд░реА рдирд┐рд░реНрдорд╛рдг

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдРрд╕реА рдкреЛрд╕реНрдЯ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВред рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЛрдИ рдХрд╛рд░рдг рдереНрд░реА.рдЬреЗрдПрд╕ рдХреЛ рдмрдВрдж рдХрд░рдХреЗ (рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛) рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛, рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдХреНрд▓реЛрдЬрд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдмрд╣реБрдд рдмрдбрд╝реЗ рдХреЛрдб рдмреЗрд╕) рдореЗрдВ рдмрдирд╛рдП рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдирд╛ рд╣реИред рд▓рдХреНрд╖реНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ "рд╡рд╢ рдореЗрдВ" рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рджреЗрд╢реА рдЬреЗрдПрд╕ рд▓рд┐рдЦрдирд╛) рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣реИ, рди рдХрд┐ рдЗрд╕реЗ "рдмрдЪрд╛рдирд╛" (рдЬреАрдбрдмреНрд▓реНрдпреВрдЯреА рдпрд╛ рдЕрдиреНрдп рд╕рдорд╛рди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред рдпрджрд┐ рдЖрдк рдХреНрд▓реЛрдЬрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдереНрд░реА.рдЬреЗрдПрд╕ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдк рдкрд░ рдЪрд┐рд▓реНрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдереНрд░реА.рдЬреЗрдПрд╕ рдЗрд╕рдХреЗ рдХреБрдЫ рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЬреЗрдПрд╕рдбреАрдУрд╕реА рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?)ред --рднрд╛рд╖рд╛_рдЗрди рдХрдВрдкрд╛рдЗрд▓рд░ рдлрд╝реНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╡рд╣ рд╣рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдорд┐рд▓реЗрдВрдЧреАред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ JS рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди 3.js рдХреЛ рдПрдХ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЗрд╕ рдкреНрд░рдХрд╛рд░ Three.js рдХреЗ рд╕рднреА рдХреЛрдбрдмреЗрд╕ рдХреЛ рдЕрдЫреВрддрд╛ рдФрд░ рдЕрдбреЙрдкреНрдЯрд┐рдорд╛рдЗрдЬреНрдб рдЫреЛрдбрд╝рддреЗ рд╣реБрдП), рддреЛ рдЖрдкрдХреЛ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛, рдХреНрд▓реЛрдЬрд░ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдлреЗрдВрдХ рджреЗрдЧрд╛ рдХрд┐ рддреАрдиред * рдХрд╣реАрдВ рднреА рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрджрд┐ред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЛ рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рд▓рд┐рдЦрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рдХреНрд▓реЛрдЬрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдереНрд░реА.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ Google рдХреНрд▓реЛрдЬрд░ рдЯреВрд▓реНрд╕ рдкрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд╕реНрддреБрддрд┐ рд╣реИ: (Google I/O 2011 рд╕реЗ) https://www.youtube.com/watch?v=M3uWx-fhjUc (рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд▓рдВрдмрд╛ рд╡реАрдбрд┐рдпреЛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрдпрд╛ рд╣реИ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХрд▓рди рдореЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдпрд╣ рднреА рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА)ред

рдирдорд╕реНрддреЗ, рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП ADVANCED_OPTIMIZATIONS рд╡рд┐рдХрд▓реНрдк рд╕рдорд░реНрдерди рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

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

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

рдЪреВрдВрдХрд┐ three.js рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реЗ рдХреЛрдб рдХреЛ "рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдЯрд╛рдЗрд▓" рдХреЛрдб рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ (рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ) рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЬрд┐рди рдЪреАрдЬреЛрдВ рдХреА рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рд╣реИ...

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

рд╣рд╛рдИ рд╢реЗрдбреНрдпреВрд▓ рдЬрд╝реЛрд░,

рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрдВрд╢ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреИрд╕реЗ
рдЗрд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рд╣реИ?

рд╕рд╕реНрдиреЗрд╣,

рд░рд╛рдорд╕реБрдВрджрд░ рдорд╛рдзрд╡рди

рдордВрдЧрд▓, рдЬреВрди 24, 2014 рдореЗрдВ 4:23 рдмрдЬреЗ рдкрд░, schedul Xor [email protected]
рд▓рд┐рдЦрд╛ рдерд╛:

рдирдорд╕реНрддреЗ, рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╢рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░
рдЗрд╕рд▓рд┐рдП ADVANCED_OPTIMIZATIONS рд╡рд┐рдХрд▓реНрдк рд╕рдорд░реНрдерди рдЪрд╛рд╣рддреЗ рд╣реИрдВред

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

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

"рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдЯрд╛рдЗрд▓" рдХреЗ рд▓рд┐рдП ADVANCED_OPTIMIZATIONS рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдХреЛрдб, рдпрд╣ рд╕рдВрдкреВрд░реНрдг "рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдХреЛрдб" рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рд╡рдЬрди рдХрд░рддрд╛ рд╣реИ
рдмрдбрд╝реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдХреНрд▓реЛрдЬрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп
https://developers.google.com/closure/library/ рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐
рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рд╕рдВрдХрд▓рди рдЪрд░рдг рдкрд░ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рдЪреВрдВрдХрд┐ рддреАрди.рдЬреЗрдПрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ
рдирд╣реАрдВ (рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ) рдкреВрд░реЗ рдХреЛрдб рдХреЛ "рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░" рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ
рд╕реНрдЯрд╛рдЗрд▓" рдХреЛрдбред рдЬрд┐рди рдЪреАрдЬреЛрдВ рдХреА рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рд╣реИ ...

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

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/341#issuecomment -46957189ред

@ рд╢реЗрдбреНрдпреВрд▓-рдПрдХреНрд╕рд░ рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдорджрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ ... рдХреНрдпрд╛ рдХреЛрдб рдПрдиреЛрдЯреЗрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдмрд╛рд╣рд░реА рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ?

рдирдорд╕реНрддреЗ,

рдореИрдВ рдЗрд╕ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдБ, рдореБрдЭреЗ рдЗрдирдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА
рдкрд░рд┐рд╡рд░реНрддрдиред

рд╕рд╕реНрдиреЗрд╣,

рд░рд╛рдорд╕реБрдВрджрд░ рдорд╛рдзрд╡рди

рдордВрдЧрд▓, рдкрд░ 7:23 рдЬреВрди 24, 2014, рдкрд░ Mr.doob [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

@schedul-xor https://github.com/schedul-xor рд╣рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорджрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ
рдЗрд╕рдХреЗ рд╕рд╛рде... рдХреНрдпрд╛ рдХреЛрдб рдПрдиреЛрдЯреЗрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ
рдмрд╛рд╣рд░реА?

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/341#issuecomment -46973166ред

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЙрдиреНрдирдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рд╡реЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рддреЛрдбрд╝ рджреЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, three.js uniforms["diffuse"] рдФрд░ uniforms.diffuse рдорд┐рд▓рд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдХреНрд▓реЛрдЬрд░ рдЙрдиреНрдирдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рддрд╣рдд рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред #3222 рднреА рджреЗрдЦреЗрдВред

рд╣рд░ рдЬрдЧрд╣ рд╕рдЦреНрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рдирд╛ рдХрд╛рдо рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рд╣реИ, рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдЯрд┐рдкреНрдкрдгреА рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдЗрд╕рдиреЗ 2 рдХреЗ рдХрд╛рд░рдХ рд╕реЗ рд▓рд╛рдЗрди рдЧрд┐рдирддреА рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреА)ред

рдЕрдиреНрдп рд╡реЗрдм рдврд╛рдВрдЪреЗ/рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдлрд╛рдЗрд▓реЗрдВ рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдмрд╛рд╣рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдЪрд░реЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЖрдк рдирд╛рдо рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдЯрд╛рдЗрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЖрдХреНрд░рд╛рдордХ рдЪрд░ рдирд╛рдордХрд░рдг рд╕реЗ, рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд░рдХреНрд╖рд╛ (рдЧреИрд░-рдмрдВрдж рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдЯрд╛рдЗрд▓) рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

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

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

рдЪреВрдБрдХрд┐ three.js рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдореБрдЭреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛рдБ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрд┐рд╕ рдХрд╛рдо рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕реА рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рд╢реИрд▓реА рдХреИрд╕реЗ рдмрджрд▓реЗрдВ?

THREE.Material = function(){
  :
};
THREE.Material.prototype = {
    constructor: THREE.Material,
    setValues: function ( values1, value2 ) {}
    getValues: function () { return this.a; }
    :
};

рдореИрдВ

goog.provide('THREE.Material'); тЖР Write goog.provide('package.classname') at the first line

тЖР three empty lines before <strong i="10">@constructor</strong>

/**
 * <strong i="11">@constructor</strong> тЖР Add <strong i="12">@constructor</strong> annotation to constructor
 */
THREE.Material = function(){
  :
};

тЖР two empty lines before function definition
/**
 * <strong i="13">@param</strong> {!Array.<!string>} values1 Values1 explanation тЖР values1 is an array of strings. values1 can't be null, and elements inside values1 can't be null.
 * <strong i="14">@param</strong> {!number} value2 Value2 explanation тЖР value2 is a number.
 */
THREE.Material.prototype.setValue = function(values1, value2){
  goog.asserts.assertArray(values1);
  goog.asserts.assertNumber(value2);
  :
};


/**
 * <strong i="15">@return</strong> {!number} тЖР This function returns a non-null number.
 */
THREE.Material.prototype.getValue = function(){
  return this.a;
};

рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдЦреНрдд рдХрд░рдирд╛ рдФрд░ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЧреИрд░-рд╢реВрдиреНрдп рдкрд░ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ ADVANCED_OPTIMIZATIONS рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

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

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

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

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

рдареАрдХ рд╣реИ, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ three.js рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХрдИ рд╕рдкреНрддрд╛рд╣ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред рдмрдВрдж рд╣реЛрдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ AltJS рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП (рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдкрд░ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЛ рдлреЛрд░реНрдХ рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреВрдВрдЧрд╛ред

рдирдорд╕реНрддреЗ,

рдХреНрдпрд╛ рдЗрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдЙрдиреНрдирдд рдЕрдиреБрдХреВрд▓рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ build.py рдФрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╕рд╕реНрдиреЗрд╣,

рд░рд╛рдорд╕реБрдВрджрд░ рдорд╛рдзрд╡рди

рдмреБрдз, рдЬреВрди 25, 2014 рдореЗрдВ 6:05 AM рдкрд░, schedul Xor [email protected]
рд▓рд┐рдЦрд╛ рдерд╛:

рдареАрдХ рд╣реИ, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ three.js рд╡рд┐рдкреБрд▓ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рдирд╛
рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдХрдИ рд╕рдкреНрддрд╛рд╣ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ AltJS рдореМрдЬреВрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдмрдВрдж рдХрд░рдирд╛ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП (рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реИрдВ
рдХреБрдЫ рдФрд░) рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рд╕реЗред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЛ рдлреЛрд░реНрдХ рдХрд░ рджреВрдВрдЧрд╛ рдФрд░ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреВрдВрдЧрд╛ред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/341#issuecomment -47047966ред

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

Three.js рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 163 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ 1354 рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред рд╣рд╛рдБ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рджреВрд░ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд╣реАрдВ рд╣реИред

// рдореБрдЭреЗ рдбрд░ рд╣реИ рдЕрдЧрд░ рдпрд╣ рд╡рд┐рд╖рдп рдЬрдЧрд╣ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ ...

@ рд╢реЗрдбреНрдпреВрд▓-рдПрдХреНрд╕реЛрд░ рдлрд┐рд░ рд╕реЗ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рддрд┐ рдлрд╝рдВрдХреНрд╢рди рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ: /

@mrdoob рдареАрдХ рд╣реИ, рдореИрдВ рд╕рдордЭ рдЧрдпрд╛ред

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

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд░рд╣реЗрдЧрд╛ :)

рд╢реБрдХреНрд░рд┐рдпрд╛! рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреВрдВрдЧрд╛ред

рдХреНрдпрд╛ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЖрдзрд╛рд░ рддреАрди.рдЬреЗрдПрд╕ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рд╣реИ? рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд Google рд╢реИрд▓реА рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП Three.js рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд╣рд░реА рдРрдк рд╕реЗ рд▓рд┐рдВрдХрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рдореБрдЭреЗ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреБрдгрд╡рддреНрддрд╛, рдкреВрд░реНрдг рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреА рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ:

https://github.com/cljsjs/packages/blob/master/three/resources/cljsjs/three/common/three.ext.js

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

рд╣рд╛рдБ, рдореЗрд░рд╛ рд╡реЛрдЯ рдЧрд┐рдиреЗрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдПрдХ рдЙрдиреНрдирдд рдореЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, 100% рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рддреАрдиjs - рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ред

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

рд╕реБрдкрд░-рдЖрдХреНрд░рд╛рдордХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдЬреЛ рдХрд┐ рдЙрдиреНрдирдд рдореЛрдб + рдЬреЗрдПрд╕ рд╕рдВрдкреАрдбрд╝рди + рдкреНрд░рдХрд╛рд░-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдХреВрд▓рди рд╣реИ, рди рдХреЗрд╡рд▓ рдореГрдд рдХреЛрдб рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдмрд▓реНрдХрд┐ рд╕рднреА рдЕрдЪреНрдЫреА рдЪреАрдЬреЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрдиреБрдХреВрд▓рди рд╕рдВрдХрд▓рдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

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

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓реБрдХрдЕрдк рддреБрд▓рдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдорд╣рдВрдЧрд╛ рд╣реИред рдирд╛рдордХрд░рдг, рдирд┐рд░рдВрддрд░ рддрд╣ рдФрд░ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдХрд╛ рд╕рдВрдпреЛрдЬрди рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реБрдХрдЕрдк рдФрд░ рдХрдИ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред рдЙрд╕рдХреЗ рдКрдкрд░, рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╣реЗрдбрд░ (рдХреНрд▓реЛрдЬрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рд╣реИ) рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕рднреА рдорд╛рдирдХреАрдХреГрдд WebGL рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рд░реЗрдВрдбрд░рд░ рдореЗрдВ рдмреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдореБрдЭреЗ рдКрдкрд░ рдмрддрд╛рдИ рдЧрдИ рд╢рд╛рдЦрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рдЕрднреА рднреА рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

@mrdoob рдореЗрдирд▓рд╛рдЗрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реГрджрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдХреЛрдИ рдЙрдореНрдореАрдж?

рдореБрдЭреЗ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА.

@mrdoob рдореЗрдирд▓рд╛рдЗрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реГрджрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдХреЛрдИ рдЙрдореНрдореАрдж?

рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВ WebGLRenderer рдХреЛ рд░реАрдлреИрдХреНрдЯрд░ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ const рдмрдЬрд╛рдп var рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рд╕рднреА рд╡реЗрдмрдЬреАрдПрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╕рдорд░реНрдерди рд╣реИ https://kangax.github.io/compat-table/es6/ (const->basic) рдФрд░ js рдЗрдВрдЬрди const рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд╖реЗрддреНрд░ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рддреЗрдЬ рдХрд░рдирд╛

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

рд╕рдВрдХрд▓рдХ рд╕рдорд░реНрдерди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕: рдореИрдВрдиреЗ рдХреБрдЫ рдкрдарди рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ:

  • рдЙрдиреНрдирдд рдореЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдПрдиреЛрдЯреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ,
  • рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрддрд░ рдХреЛ рдХреНрд░реИрдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░
  • рд▓реЛрдбрд░ рдХреЛ рдХрд╛рдо рдХрд░рддреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджреЗрдЦрднрд╛рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред

рдореВрд▓ рд░реВрдк рд╕реЗ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ:

  1. рдореЙрдбрд▓ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХрдВрдкреНрд░реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  2. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдВрдХреБрдЪрд┐рдд рд╣реИрдВред рдореЙрдбрд▓ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд▓реЛрдб рд╣реЛрддреЗ рд╣реИрдВред
  3. рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореВрд▓ рдореЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реИ рдФрд░ рдПрдХ рдЙрдиреНрдирдд рдореЛрдб рдРрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред

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

рдЬрдм рд╕рдВрдХрд▓рдХ рджреЗрдЦрддрд╛ рд╣реИ

anObject['aProperty']

рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХреЛ рдирд╣реАрдВ рдЫреВрдПрдЧрд╛ (рдХреЛрдИ рддрд╛рд░ рдХрднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

anObject.aProperty

рджреВрд╕рд░реА рдУрд░ рд╕рдВрдХрд▓рдХ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ anObject рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд╣рд░ рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП _externs_ рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдиреБрд╕реНрдЦрд╛ рдЖрддрд╛ рд╣реИ:

  • рд╣рдо рдбреЙрдЯ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдбрд░ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрд╛рддреЗ рд╣реИрдВред
  • рд╣рдо рдЗрдирдкреБрдЯ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ JSON рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
  • рдЙрд╕ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдХреЗрд╕ 2 рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ 1 рдХреЗ рд▓рд┐рдП рд╣рдо рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ JSON рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдВрдЬрд┐рдпреЛрдВ рд╕реЗ рдЙрджреНрдзрд░рдгреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ:
{
    "camera": {
        "object": {
    // ...

рдмрд╕ рдмрди рдЬрд╛рдПрдЧрд╛

{
    camera: {
        object: {
    // ...

рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд╣реИ рдирд╛?

рдХреЗрд╕ 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдФрд░ рднреА рдЖрдХрд░реНрд╖рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм JSON рдкреНрд░рд╛рд░реВрдк рдмрд╛рд╣рд░реА рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ (рд╡реЗрдмрдЧреНрд▓-рд▓реЛрдбрд░ рдпрд╛ o3dgc рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдЪреНрдЪрд╛ рдпрд╛ рд╕рдВрдкреАрдбрд╝рд┐рдд) рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИред

рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк :-) рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрднреА-рдкреБрд░рд╛рдиреЗ рд╡рд┐рдХреА рдкреГрд╖реНрдареЛрдВ рдХреЛ рднреА рдмрджрд▓ рд╕рдХрддреА рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдмрдВрдж рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рддреАрди.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЙрддрд░рд╛ред рдореИрдВрдиреЗ рдПрдХ рдЯреВрд▓ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ .d.ts (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕) рдХреЛ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдлрд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдЙрдкрдХрд░рдг рдФрд░ рдорд╣рд╛рди рд╡рд░реНрдгрд┐рдд рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк/рдереНрд░реАрдЬреЗрдПрд╕ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЙрдкрдХрд░рдг: https://github.com/eredo/tsd2cce рдпрд╛ npm install -g tsd2cce рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдЙрдореНрдореАрдж рд╣реИ рдпреЗ рдорджрдж рдХрд░реЗрдЧрд╛...

@eredo рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорджрдж рдХреАред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдЕрдиреНрдп рд╕рднреА рдЬреЗрдирд░реЗрдЯрд░ рддреАрди.рдЬреЗрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рдзрд┐ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рдереЗред рдзрдиреНрдпрд╡рд╛рдж!

@eredo @Corkle рдпрд╛ рдХреЛрдИ рдФрд░, рдХреНрдпрд╛ рдЖрдк рд╣рдореЗрдВ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ tsd2cce рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдкрд╣рд▓рд╛ рддрд░реНрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ .d.ts рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ рддрд░реНрдХ рдХреНрдпрд╛ рд╣реИ? рдореБрдЭреЗ рдпрд╣ рдореБрджреНрджрд╛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред https://github.com/eredo/tsd2cce/issues/6

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдлрд░рд╡рд░реА рд╕реЗ r73 d.ts рдХрд╛ рдЙрдкрдпреЛрдЧ tsd2cce рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ r73 рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рдЕрдм d.ts рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tsicle рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕рднреА рдХреЛ рдкреНрд░рдгрд╛рдо,

рднрд╛рд╡реА рдкреАрдврд╝реА рдФрд░ рд╕рднреА рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ Google рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ ADVANCED_OPTIMIZATIONS рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдФрд░ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдкрд░ рдпрд╣рд╛рдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдореИрдВрдиреЗ рдПрдХ extern.js рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрдирдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде Three.min.js рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХрджрдо рд╕рд╣реА рд╕реЗ рджреВрд░ рд╣реИред

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

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

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

рдмрд╛рд╣рд░реА.рдЬреЗрдПрд╕

рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ package.json рдмрд┐рд▓реНрдб-рдХреНрд▓реЛрдЬрд░ рдХрдорд╛рдВрдб

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

@mrdoob рдпрд╣рд╛рдВ рдореЗрд░реА рд╡рд┐рдзрд┐ рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЕрдВрддрддрдГ рдПрдХ extern.js рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ ADVANCED_OPTIMIZATIONS рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреА рдкреНрд░рд╛рдердорд┐рдХ рдЪрд┐рдВрддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред

@medmr1 рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдРрдк рдХреЛ рддреАрди.рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдпрд╣ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ред

рдореИрдВрдиреЗ рдкреВрд░реА рдЪреАрдЬ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рдирд╣реАрдВред рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХреБрдЫ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреА? рдЖрдИрдИ рд╕рд╛рдорд╛рди var thing = ShaderLib[ shaderType + "BumpMapFrag"] рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореИрдВ рдЦреБрдж рдХреЛ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рдиреА рдмрдЪрд╛рдКрдВрдЧрд╛?

рд╣рд╛рдВ, рдЙрдиреНрдирдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде var thing = ShaderLib[ shaderType + "BumpMapFrag"] рдЬреИрд╕рд╛ рдХреБрдЫ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рд╕рдВрдкрддреНрддрд┐ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

function(shaderType) {
  if (shaderType == "a") {
    return ShaderLib.aBumpMapFrag;
  }
  if (shaderType == "b") {
    return ShaderLib.bBumpMapFrag;
  }
...

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

рдмрд╛рд╣рд░реА рд▓реЛрдЧреЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк @export рдПрдиреЛрдЯреЗрд╢рди рднреА рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВред
https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler#export -export-sometype

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

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

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

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

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

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

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