рдмреНрд░рд╛рдЙрдЬрд░рд┐рдлрд╛рдЗ
рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рдЬреЛрдбрд╝реЗрдВред
рдиреЛрдЯ: рдЗрд╕рдХреЗ рд▓рд┐рдП рддреАрди.рдЬреЗрдПрд╕ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░рд┐рдлрд╛рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдПрдХ рдлрд╛рдпрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рдЪрд▓ рд░рд╣реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред
рдиреЛрдб/рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╢реИрд▓реА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рд╢реАрд░реНрд╖ рдкрд░ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдШреЛрд╖рд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдорд╛рдирддреА рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ:
// src/geometry/BoxGeometry.js
var Geometry = require('./Geometry.js');
var Vector3 = require('../core/Vector3.js');
module.exports = BoxGeometry;
function BoxGeometry() {
// ...
}
BoxGeometry.prototype = Geometry.prototype;
рдПрдХ рдЕрдиреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ three.js
рдЙрдкрднреЛрдХреНрддрд╛ browserify рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЗрдЪреНрдЫрд┐рдд рднрд╛рдЧреЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдФрд░ рдЪреБрдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рд╡реЗ рдХреЗрд╡рд▓ Scene
, BoxGeometry
, PerspectiveCamera
, рдФрд░ WebGLRenderer
рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( Object3D
рдЖрджрд┐), рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдмрдВрдбрд▓ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдЗрдЪреНрдЫрд┐рдд рдлреАрдЪрд░ рд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рди рд╣реЛред рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░, рд╣рдо рдЙрди рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдорд╛рдирдХ рдкреИрдХреЗрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдорд╛рдирддреЗ рд╣реИрдВ
// src/three.js
var THREE = { rev: 101 }
module.exports = THREE
THREE.Geometry = require('./geometry/Geometry.js')
THREE.BoxGeometry = require('./geometry/BoxGeometry.js')
// ...
рдиреЛрдЯ: рдореБрдЭреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рдЧрднрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЕрдВрдд рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдореЙрдбреНрдпреВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рд▓рдкреЗрдЯреЗрдВрдЧреЗ рдЬреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо (рдиреЛрдб/рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝, рдПрдПрдордбреА) рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдЕрдиреНрдпрдерд╛ рдЗрд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ ( window
) рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдкрд┐рдЫрд▓реА рд╕рдореАрдХреНрд╖рд╛:
three.js
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИрдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдирдпрд╛ рдмрд╣реБрдд рд╕реАрдзреЗ рдЖрдЧреЗ рд╣реЛрдЧрд╛ред
рдХреБрдЫ рдЕрдиреНрдп рдлрд╛рдпрджреЗ:
@ shi-314 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реВрдВ, рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ You can structure your code
рдФрд░ You can build for production
рдРрд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдЖрдк рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рд╢рд┐рдлреНрдЯ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдк рддреАрди.рдЬреЗрдПрд╕ рд╕реНрд░реЛрдд рдпрд╛ рддреАрди.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд┐рдд рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдПрдХ рдЕрднреНрдпрд╛рд╕ рдЬреЛ рддреАрди.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ instanceof
: https://github.com/mrdoob/three.js/blob/master/src/core/Geometry .js#L82
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрдк рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рдЯреНрд░реА рдореЗрдВ рдПрдХ рд╣реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╣реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЗрдВрд╕реНрдЯреЙрдлрд╝ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред Geometry.isGeometry(geom)
рд╕реНрдЯрд╛рдЗрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреАрдЫреЗ рдлреАрдЪрд░-рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЪреЗрдХ рдХреЗ рдЙрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдордирдЬ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
@kumavis рдореИрдВ
THREE.MeshMyCoolMaterial = function (...) { ... }
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ Browserify рд╣реЛрддрд╛ рддреЛ рдЖрдк:
var MeshLambertMaterial = require('./../MeshLambertMaterial');
var MeshMyCoolMaterial = function (...) {...}
рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ рдиреЗрдорд╕реНрдкреЗрд╕ рдПрдХ рдЬреИрд╕рд╛ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ THREE.MeshLambertMaterial
рдФрд░ MeshMyCoolMaterial
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдФрд░ You can build for production
рдореЗрд░рд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣реА рдорддрд▓рдм рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛: allows three.js consumers using browserify to pick and choose functionality
ред
@ shi-314 рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдпрд╣ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЙрдкрднреЛрдХреНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ:
// given that `data` is a hash of a serialized object
var ObjectClass = THREE[ data.type ]
new ObjectClass.fromJSON( data )
рдпрд╣ рдореЗрд░реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреНрд░рдорд╛рдВрдХрди / рдЕрдХреНрд░рдорд╛рдВрдХрди рд░рд┐рдлреИрдХреНрдЯрд░ рд╕реЗ рд╣реИ
https://github.com/mrdoob/three.js/pull/4621
рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рднреА рдЗрд╕рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВред
рдХреБрдЫ рдЕрдиреНрдп рдкреНрд░рдореБрдЦ рд▓рд╛рдн:
standalone
рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреВрдПрдордбреА рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯрд┐рдВрдХрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИредthreejs-vecmath
рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рджреВрд╕рд░реА рддрд░рдл, рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреИрдЪ рдпрд╛ рдорд╛рдореВрд▓реА рд░рд┐рд▓реАрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗредnpm install threejs-shader-bloom
)require()
рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░рд╛ рдРрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред@mrdoob рдФрд░ рдЕрдиреНрдп рд▓реЗрдЦрдХреЛрдВ рдХреЛ; рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ NPM/Browserify рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕рдХреЗ "рджрд░реНрд╢рди" рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ред рдпрд╣ рдереНрд░реАрдЬреЗрдПрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ; рдмрдбрд╝реЗ рдврд╛рдВрдЪреЗ рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдмрд╣реБрдд рд╕реА рдЫреЛрдЯреА рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХ рдЕрдиреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдУрдкрди рд╕реЛрд░реНрд╕, рдерд░реНрдб рдкрд╛рд░реНрдЯреА рдереНрд░реА.рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╢реЗрдбрд░реНрд╕, рдЬрд┐рдпреЛрдореЗрдЯреНрд░реА, рдореЙрдбрд▓ рд▓реЛрдбрд░ рдЖрджрд┐ рдХрд╛ рдПрдХ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдирдкреАрдПрдо рдпрд╛ рдЬреАрдердм / рдШрдЯрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд▓реЛрдЧ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд▓рд╣рд╛рд▓ рдПрдХ рдбреЗрдореЛ рд╣реЛрд╕реНрдЯ рдХрд░рдХреЗ рд╕рд╛рдорд╛рди рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд▓реЛрдЧ 'рд╕реНрд░реЛрдд рджреЗрдЦреЗрдВ'ред рддреАрди.рдЬреЗрдПрд╕ рдмреЗрд╣рддрд░ рдХреЗ рд╣рдХрджрд╛рд░ рд╣реИрдВ!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рддреАрди рдореЗрдВ рд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬреЗрдПрд╕ рдпрд╣ рд╣реИ рдХрд┐ рдереНрд░реА.рдЬреЗрдПрд╕ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдЕрд╕рдВрдЧрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдиреНрдп рд▓рд╛рдн _bits_ of Three.JS рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
+1
рдХреЙрдордирдЬреЗрдПрд╕/рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП +1, рдпрд╣ рдХреЛрд░ рдХреЛ рдЕрдзрд┐рдХ рд╣рд▓реНрдХрд╛ рдмрдирд╛ рджреЗрдЧрд╛ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдлрд┐рдЯ рд╣реЛрдВрдЧреЗ, рднрд▓реЗ рд╣реА рд╡реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рд╕реЗ рдЖрдП рд╣реЛрдВ
рддреАрди.рдЬреЗрдПрд╕ рдХреЛ рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдкрд░ рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рд╛рдЧрдд рдЖрддреА рд╣реИред рд╡рд░реНрддрдорд╛рди рдкреНрд░рдгрд╛рд▓реА рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддреГрддреАрдп рдкрдХреНрд╖ рдРрдбрдСрди (рдЧрд╡рд╛рд╣ рдЬреИрд╕реЗ рдЬреЗрдЯрд┐рдПрди рдХреЗ THREEx рдореЙрдбреНрдпреВрд▓) рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрдЕрдк рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреЗрд╡рд▓ рд░реИрдкрд░ рд╣реИрдВред
рдХреНрд▓реЛрдЬрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдмрд┐рд▓реНрдб рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред рд╡реЗ Google рдХреЗ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рдВрдкреВрд░реНрдг-рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдореГрдд рдХреЛрдб рдЙрдиреНрдореВрд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред
рд╕рд░рд▓рддрд╛ рдХреА рд╢рд╛рди рдХреЗ рд▓рд┐рдП +1, рдФрд░ рдЕрдХреНрд╕рд░ рдЕрдирджреЗрдЦреА рдХреА рдЧрдИ, рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП
+1
рддреАрди.рдЬреЗрдПрд╕ рдХреЛ рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдкрд░ рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рд╛рдЧрдд рдЖрддреА рд╣реИред рд╡рд░реНрддрдорд╛рди рдкреНрд░рдгрд╛рд▓реА рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддреГрддреАрдп рдкрдХреНрд╖ рдРрдбрдСрди (рдЧрд╡рд╛рд╣ рдЬреИрд╕реЗ рдЬреЗрдЯрд┐рдПрди рдХреЗ THREEx рдореЙрдбреНрдпреВрд▓) рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдпрд╣рд╛рдВ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЧреИрд░-рдиреЛрдб рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдпреВрдПрдордбреА рдмрд┐рд▓реНрдб рдЕрднреА рднреА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред THREEx рдЬреИрд╕реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдереНрд░реАрдЬреЗрдПрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╛рдзрд╛рд░рдг <script>
рдЯреИрдЧ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рдореБрд╢реНрдХрд┐рд▓ рдмрд╛рдд рдпрд╣ рд╣реЛрдЧреА: рдЕрдЧрд░ рд╣рдо рдХреЙрдордирдЬреЗрдПрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реИрдВ рддреЛ рд╣рдо require()
рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд▓рдЧрдЗрди рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ? рд╢рд╛рдпрдж browserify-shim рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрдЕрдк рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреЗрд╡рд▓ рд░реИрдкрд░ рд╣реИрдВред
рдереНрд░реАрдЬреЗрдПрд╕ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдкреНрд▓рдЧрдЗрди/рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рднрдпрд╛рдирдХ рд╣реИ, рдФрд░ "рд╕рд░рд▓" рдпрд╛ рдЖрд╕рд╛рди рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдереНрд░реАрдЬреЗрдПрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд▓рдЧрдЗрди рдпрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЗрдлреЗрдХреНрдЯрдХрдВрдкреЛрдЬрд░, рдпрд╛ рдлрд░реНрд╕реНрдЯрдкрд░реНрд╕рдирдХрдВрдЯреНрд░реЛрд▓, рдпрд╛ рдПрдХ рдореЙрдбрд▓ рд▓реЛрдбрд░, рдпрд╛ examples
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рддреИрд░рддреА рдЕрдиреНрдп рдХрдИ рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред рдЕрднреА рдЗрди рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ:
vendor
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд░реЗрдВрдЕрдм, рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП, browserify рдХреЗ рд╕рд╛рде рдЖрдк рдРрд╕рд╛ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
var FirstPersonControls = require('threejs-controls').FirstPersonControls;
//more granular, only requiring necessary files
var FirstPersonControls = require('threejs-controls/lib/FirstPersonControls');
рд╡реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ require('threejs')
рдФрд░ рдХреБрдЫ рдФрд░ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд╣рд┐рдП (рдЬреИрд╕реЗ GLSL рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдЯреНрд░рд╛рдЗрдВрдЧреБрд▓реЗрд╢рди ) рд╣реЛрдВрдЧреЗред рдирд┐рд░реНрднрд░рддрд╛/рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдмрдВрдзрди рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рдВрдЯ/рдЧрд▓реНрдк рдХреЙрдиреНрд╕рдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдореБрд╢реНрдХрд┐рд▓ рдмрд╛рдд рдпрд╣ рд╣реЛрдЧреА: рдЕрдЧрд░ рд╣рдо рдХреЙрдордирдЬреЗрдПрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд▓рдЧрдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ () рдХреИрд╕реЗ рд╣реЛрдЧреА?
рдореИрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рддреАрди.рдЬреЗрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдордирдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдПрдХ рдореИрдиреБрдЕрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдХреЛрдб рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡рд┐рд░рд╛рд╕рдд рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд▓реЗрдЦрдХреЛрдВ рдпрд╛ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреВрд░реЗ 'рдорд╛рдирдХ' рддреАрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
var THREE = require('three');
THREE.EffectComposer = // ... etc, remembering to include copyright notices :)
рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдврд╝рддреА рд╣реИ рдФрд░ рдореИрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╢реЗрдбреНрд╕ рдФрд░ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдЖрджрд┐ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реВрдВред
рдЬрдм рддрдХ 'рдереНрд░реАрдЬреЗрдПрд╕-рдлреБрд▓' рдпрд╛ 'рдереНрд░реАрдЬреЗрдПрд╕-рдХреНрд▓рд╛рд╕рд┐рдХ' рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рд╣реИ рддреЛ рдпрд╣ рдХреЙрдордирдЬреЗрдПрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдереНрд░реА.рдЬреЗрдПрд╕ рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рддрд░реАрдХрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ!
+1
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЦрдВрдбрд┐рдд рддреАрдиj рдореЙрдбреНрдпреВрд▓ npm, рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ
рдбреЗрд╡рд▓рдкрд░реНрд╕ CommonJS env рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред
5 рдЬреВрди 2014 рдХреЛ рд░рд╛рдд 9:19 рдмрдЬреЗ, "рд╢рд╛рд░реНрд▓реЛрдЯ рдЧреЛрд░" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:
рдореБрд╢реНрдХрд┐рд▓ рдмрд╛рдд рдпрд╣ рд╣реЛрдЧреА: рд╣рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд▓рдЧрдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреИрд╕реЗ рд╣реЛрдЧреА () рдпрджрд┐ рд╣рдо?
рдХреЙрдордирдЬреЗрдПрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рд╣реИрдВ?рдореИрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рддреАрди.рдЬреЗрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдордирдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдПрдХ рд╕рд╛ рд╣реИ
рдПрдХ рдореИрдиреБрдЕрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдХреЛрдб рдХреЗ рднрд╛рдЧ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛
рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд▓реАрдЧреЗрд╕реА рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛
рдЬреЛ рд▓реЗрдЦрдХреЛрдВ рдпрд╛ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдкреВрд░реНрдг 'рдорд╛рдирдХ' рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ
рддреАрди рд╡рд╕реНрддреБ, рдЬрд┐рд╕реЗ рддрдм рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреА рд╣реИ
рдпрд╣редрд╡рд░ рддреАрди = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рддреАрди');
THREE.EffectComposer = // ... рдЖрджрд┐, рдХреЙрдкреАрд░рд╛рдЗрдЯ рдиреЛрдЯрд┐рд╕ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдпрд╛рдж рд░рдЦрдирд╛ :)рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдврд╝рддреА рд╣реИ рдФрд░ рдореИрдВ
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╢реЗрдбреНрд╕ рдФрд░ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдЖрджрд┐ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВредрдЬрдм рддрдХ 'рдереНрд░реАрдЬ-рдлреБрд▓' рдпрд╛ 'рдереНрд░реАрдЬреЗрдПрд╕-рдХреНрд▓рд╛рд╕рд┐рдХ' рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рд╣реИ, рддрдм рддрдХ
рдпрд╣ рдкреБрд░рд╛рдиреЗ рддреАрди.рдЬреЗрдПрд╕ рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рддрд░реАрдХрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИ
рдХреЙрдордирдЬреЗрдПрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реИ!-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/4776#issuecomment -45236911ред
рдпрд╣ рд╢реЗрдбрд░реНрд╕ рдХреЛ рдореЙрдбреНрдпреВрд▓рд░ рднреА рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП glslify рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдлреНрд░реЗрдо.рдЬреЗрдПрд╕ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛.рдЬреЗрдПрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдЕрднреА рднреА рд╕реАрдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдЗрд╕реЗ "рд╕рдВрдХрд▓рд┐рдд" рдХреИрд╕реЗ рдХрд░реЗрдВред рдореЙрдбреНрдпреВрд▓ рдХреА рд╕реВрдЪреА рд╕реЗ three.min.js
рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓/рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреНрдпрд╛ рд╣реИ?
рдореИрдВ gulp.js рдХреЛ gulp- browserify рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ http://travismaynard.com/writing/no-need-to-grunt-take-a-gulp-of-fresh-air :wink:
рдХреБрдЫ рд╡рд┐рдЪрд╛рд░: (рдиреЛрдб рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд╕реАрдорд┐рдд рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, npm, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ browserify)
рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╕рднреА рдХреЛ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ рдХреА рд╕рдорд╛рди рд╕рдордЭ рдереА (рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝, рдХреЙрдордирдЬ, рд░рд┐рдХреНрд╡рд╛рдпрд░рдЬ, рдПрдПрдордбреА, рдпреВрдПрдордбреА рдХреБрдЫ рд╣рдж рддрдХ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдЕрдм рдЕрдЧрд░ рдЖрдк рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╣реАрдВ рдкрд░ Browserify рддрд╕реНрд╡реАрд░ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдХреЛрдИ рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ requJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рдЬреЗрдПрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд() рдЬреЛ рддреЗрдЬ рд╣реИрдВ)ред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдмрд┐рд▓реНрдб рдмрдирд╛рддрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП Browserify рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЬреИрд╕реА рдХреБрдЫ рдЕрдЪреНрдЫреА рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИред (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реАрдорд╛рдПрдВ рд╣реИрдВ, рдпрд╣ рд╕рдВрднрд╡рддрдГ рдЖрд╡рд╢реНрдпрдХрддрд╛ ('рдмреНрд▓рд╛' + рдЪрд░) рдХреЛ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ) рдпрд╣ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рднреА рд╕реНрд╡реИрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдиреЛрдб.рдЬреЗрдПрд╕ рдирд┐рд░реНрднрд░ рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХрд░рдг рдкрд░рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдЬреЗрдПрд╕ рдмрд┐рд▓реНрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдм рдореИрдВ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдпрд╣рд╛рдБ рдХреБрдЫ рд╕рд╛рдорд╛рди рд╣реИрдВ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ https://github.com/substack/node-browserify#usage
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рддрдХ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд┐рдВрджреБ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо "рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░" рдкрд░ рдЬрд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдЗрд╕ рд╡рд┐рд╡рд┐рдзрддрд╛ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд┐рдВрдЧ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ npm рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдкрд░ рд╕рд╡рд╛рд░реА) рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдиреБрдХреВрд▓рд┐рдд рдмрд┐рд▓реНрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдорд╛рди рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛ, рдХреЛрдб рдХреЛ рд░рд┐рдлреИрдХреНрдЯ рдХрд░рдирд╛ рдФрд░ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрджрд▓рдирд╛ред
@mrdoob browserify рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рдХреБрдЫ рдЯреВрд▓ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ: https://github.com/substack/node-browserify/wiki/browserify-toolsред
three.min.js
, рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЫреЛрдЯрд╛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рддреБрдо рд╕рдм рд╣реИ var three = require('three')
рдЕрдкрдиреЗ рдореЗрдВ project.js
рдФрд░ рдлрд┐рд░ рдЪрд▓рд╛рдиреЗ browserify project.js > bundle.js && uglifyjs bundle.js > bundle.min.js
ред рдиреЛрдЯ: рдЖрдк рдЕрднреА рднреА <script src="min.js">
рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рдХреЛрдб рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рд▓рдкреЗрдЯ рд░рд╣рд╛ рд╣реВрдВ
if ('undefined' === typeof(window))
var window = global && global.window ? global.window : this
var self = window
рддрдерд╛
module.exports = THREE
рдлрд┐рд░ рдореИрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реВрдВ
module.exports = function(THREE) { /* extension-code here */ }
рддреЛ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ:
var three = require('./wrapped-three.js')
require('./three-extension')(three)
рддреЛ рдпрд╣ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ - рд╣рд╛рд▓рд╛рдВрдХрд┐ @kumavis рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ _рд╡рд┐рд╢рд╛рд▓_ рд▓рд╛рдн рд╣реЛрдЧрд╛ред
рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рддреАрди рдХреЛ рдлреЛрд░реНрдХ рдХрд░рдирд╛ рдФрд░ рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд░рдЦрдирд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
http://modules.gl/ рднреА рдЪреЗрдХрдЖрдЙрдЯ рдХрд░реЗрдВ рдЬреЛ рдХрд┐ рдмрд╣реБрдд рд╣рдж рддрдХ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рдмрд┐рдирд╛ рдмреНрд░рд╛рдЙрдЬрд░ рдХреЗ рд╣рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
@mrdoob @shi-314 gulp- browserify (рдпрд╛рдиреА vinyl-source-stream рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЧреНрд░рдВрдЯ/рдЧрд▓реНрдк/рдЖрджрд┐ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рдп рдорд┐рд▓ рдЬрд╛рдПрдЧреАред рдЕрдВрдд рдореЗрдВ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХрд┐рд╕реЗ рдЪреБрдирддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рд╣реИрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдереНрд░реАрдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрднреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЖрдк рдХрд┐рддрдиреА рдкрд┐рдЫрдбрд╝реА-рд╕рдВрдЧрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдХреБрдЫ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдврд╛рдВрдЪреЗ рдФрд░ рдЗрд╕рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд┐рдлреИрдХреНрдЯрд░ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдмрдХреБрдЫ рдореЙрдбреНрдпреВрд▓рд░ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:
../../../math/Vector2
рдЖрджрд┐ рд╣реЛрдВрдЧреЗредthree-scene
рдХреЛ three-lights
рдЖрджрд┐ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд┐рд░ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдгрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╡рд┐рдЦрдВрдбрди рдереНрд░реАрдЬреЗрдПрд╕ рдЬреИрд╕реЗ рдмрдбрд╝реЗ рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдзреЗ рдореЗрдВ рджрд░реНрдж рд╣реЛрдЧрд╛редrequire('three/src/math/Vector2')
рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡? рд╣рдо рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реА рджреЛ рдЪреАрдЬреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:
рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рдореЙрдбреНрдпреВрд▓рд░ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдЬреЛ рдереНрд░реАрдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдпрдерд╛рд░реНрдерд╡рд╛рджреА рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдХрд╛рдВрдЯреЗ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЪреАрдЬреЗрдВ рдХрд┐рддрдиреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИрдВред
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ!
рдореБрдЭреЗ рдЬреЛ рдбрд░ рд▓рдЧрддрд╛ рд╣реИ рд╡рд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдЯрд┐рд▓ рд╣реИ рдЬреЛ рдЕрднреА рд╢реБрд░реВ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдореЙрдбреНрдпреВрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ...
рдпрд╣рд╛рдВ @mrdoob рд╕реЗ рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ, рдФрд░ рдмрд╣реБрдд рд╕реЗ рд╕рд╣рдпреЛрдЧреА, рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реИрдВ (рдмрд▓реНрдХрд┐ рд╡реАрдПрдлрдПрдХреНрд╕/рдПрдиреАрдореЗрд╢рди рдЯреАрдбреА)ред рд╡реЗрдмрдЬреАрдПрд▓ рдФрд░ рдереНрд░реА рдХреЛ рдЪреБрдирдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрднрд╛рд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдХрд╛рдо рд░рд╣рд╛ рд╣реИ (рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдордореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдореМрдХреЗ рдкрд░ рд╣реА рдЬреЗрдПрд╕ рд╕реАрдЦрдирд╛ рдкрдбрд╝рд╛)ред рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рдкрдврд╝рд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рд╕реЗ рдХрдИ рдмрд╛рд░, рдореБрдЭреЗ рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд╛рдВрдкрдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рддреАрди рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЪрд▓реЗ рдЧрдП рддреЛ рдореЗрд░реА рдкреНрд▓реЗрдЯ рдореЗрдВ рдФрд░ рдХрд┐рддрдирд╛ рдХрд╛рдо рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдореБрдЭреЗ рдХреИрд╕реЗ рдкрдврд╝рддрд╛ рд╣реИред
рд░реЗрдкреЛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд UMD ( browserify --umd
) рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде, рдореМрдЬреВрджрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред
@mrdoob рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╕рд░рд▓рддрд╛ рд╣реИред рд╡рд┐рдХрд▓реНрдк рдФрд░ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдкрд░ рджрд░реНрдЬрдиреЛрдВ рдкреЛрд╕реНрдЯ рдкрдврд╝рдирд╛ рднрд╛рд░реА рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрддрдГ рдореМрдЬреВрджрд╛ рд╕рд┐рд╕реНрдЯрдо рдЯрд┐рдХрд╛рдК рдирд╣реАрдВ рд╣реИред рдХрднреА рднреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рджреВрд╕рд░реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдпрд╣ рдПрдХ рдЦреЛрдЬ- рдФрд░- рдЦреЛрдЬ рд╣реИ рдХрд┐рд╕реА рднреА рдирдП рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕рдВрджрд░реНрдн рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде, рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрде рд╣реИред
@repsac рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рддреАрди рдФрд░ рд╕реБрд▓рдн рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ, рд▓реЛрдб рдСрд░реНрдбрд░ рджреБрдГрд╕реНрд╡рдкреНрди рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИред var foo = require('./foo');
рд╕реА# рдХреЗ using foo;
рдпрд╛ рдЬрд╛рд╡рд╛ рдХреЗ import foo;
рд╕рдорд╛рди (рд╢рд┐рдерд┐рд▓) рд╣реИ
рдореБрдЭреЗ рд╕рдм рдХреБрдЫ рдореЙрдбреНрдпреВрд▓рд░ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдЬреЛ рдереНрд░реАрдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдпрдерд╛рд░реНрдерд╡рд╛рджреА рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдХрд╛рдВрдЯреЗ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЪреАрдЬреЗрдВ рдХрд┐рддрдиреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИрдВ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВред рдХрд╛рдо рдкреВрд░рд╛ рдХрд░реЛ, рджрд┐рдЦрд╛рдУ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдФрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрднреЛрдЧ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛
ugly: require('three/src/math/Vector2')
рдПрдХ рдкреНрд░рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ рдЕрднреА рддреАрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ 'рдЖрд░рдВрдн рдХрд░рдирд╛' рдХреЛ рдЗрд╕ рдирдП рдореЙрдбреНрдпреВрд▓рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрджрд░реНрдн рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд▓реЛрдЧ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдЦреНрдд рди рд╣реЛрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдирд┐рд░реНрдорд╛рдг рдЖрдХрд╛рд░ рдкреВрд░реНрдг рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрдВрд╢ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рд╕рдВрджрд░реНрднрд┐рдд рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╡реЗ рдЪреАрдЬреЗрдВ рдЬрд┐рди рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ (рдФрд░ рдЙрди рд╕рднреА рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛) рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рднрдпрд╛рдирдХ рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рдмрд╛рд░реАрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рд╣реА рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдРрд╕реЗ рдкреИрдХреЗрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╕рдВрдкреВрд░реНрдг рддреАрди рдПрдкреАрдЖрдИ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдлрд┐рд░ рдЫреЛрдЯреЗ рдкреИрдХреЗрдЬ рдЬреЛ рд╕рднреА рдмреЛрдирд╕ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рднреА рд░реЗрдВрдбрд░рд░реНрд╕, рд╕рднреА рдЧрдгрд┐рдд, рд╕рднреА рд╕рд╛рдордЧреНрд░реА рдЖрджрд┐, рдлрд┐рд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЙрдбреНрдпреВрд▓ рд╕реНрддрд░ рддрдХ, рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдкрдиреЗ рд▓рд┐рдП рдирд┐рд░реНрдгрдп рд▓реЗ рд╕рдХреЗрдВред
рдФрд░ рд╣рд╛рдБ, рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдХреЛрдбрд┐рдВрдЧ рдПрдХ рджрд░реНрдж рд╣реИред
рд╡реИрд╕реЗ рднреА, рдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде...
рд╣рдорд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ ..
npm install three-scene three-perspective-camera three-webgl-renderer three-cube-geometry three-mesh-basic-material three-mesh three-raf
рд╣рдорд╛рд░рд╛ рдХреЛрдб рд▓рд┐рдЦреЗрдВ...
// import our dependencies..
var Scene = require('three-scene'),
Camera = require('three-perspective-camera'),
Renderer = require('three-webgl-renderer'),
CubeGeometry = require('three-cube-geometry'),
MeshBasicMaterial = require('three-mesh-basic-material'),
Mesh = require('three-mesh'),
requestAnimationFrame = require('three-raf');
// set up our scene...
var scene = new Scene();
var camera = new Camera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
var renderer = new Renderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// create the cube...
var geometry = new CubeGeometry(1, 1, 1);
var material = new MeshBasicMaterial({color: 0x00ff00});
var cube = new Mesh(geometry, material);
scene.add(cube);
// position the camera...
camera.position.z = 5;
// animate the cube..
var render = function () {
requestAnimationFrame(render);
cube.rotation.x += 0.1;
cube.rotation.y += 0.1;
renderer.render(scene, camera);
};
// begin!
render();
рдлрд┐рд░ рд╣рдорд╛рд░реА рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ
browserify entry.js -o scripts/hello-world.js
рдлрд┐рд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдкреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
<script src="/scripts/hello-world.js" type="text/javascript"></script>
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ (рдФрд░ рдЙрди рд╕рднреА рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛) рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рднрдпрд╛рдирдХ рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдкрдиреЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░рд┐рдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рддреАрди рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ THREE
рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреА рд╣реИ ... рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдПрдВред
@repsac @mrdoob рдкрд░рд┐рд╡рд░реНрддрди рдкрд┐рдЫрдбрд╝реЗ-рд╕рдВрдЧрдд рд╣реЛрдВрдЧреЗ, рддрд╛рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреБрдЫ рднреА рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ рдпрджрд┐ рд╡реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпреЗ рд╕реБрдЭрд╛рд╡ рдереНрд░реАрдЬреЗрдПрд╕ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдФрд░ рдЕрдЦрдВрдб рдХреЛрдбрдмреЗрд╕ рдХреА рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд░рдЦрд░рдЦрд╛рд╡ рдФрд░ рджреАрд░реНрдШрд╛рдпреБ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдмрдВрдзрди рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░рджрд░реНрдж рдХреА рддрд░рд╣ рд▓рдЧ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЙрди рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдЯреВрд▓, рдлреНрд░реЗрдорд╡рд░реНрдХ, рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдереНрд░реАрдЬреЗрдПрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реИрдВред
рдпрд╛рдиреА рдЕрдВрддрд┐рдо-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдЕрднреА рднреА рд╡рд╣реА рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ examples
рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:
<script src="three.min.js"></script>
<script>
var renderer = new THREE.WebGLRenderer();
</script>
рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореЙрдбреНрдпреВрд▓рд░ рдмрд┐рд▓реНрдб рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВ, _or_ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдереНрд░реАрдЬреЗрдПрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдпрд╛рдиреА рдФрд░ рд╕рдВрд╕реНрдХрд░рдг/рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВ), рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
npm install three-vecmath --save
рдлрд┐рд░, рдХреЛрдб рдореЗрдВ:
var Vector2 = require('three-vecmath').Vector2;
//.. do something with Vector2
рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ рдереНрд░реАрдЬреЗрдПрд╕ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдереНрд░реАрдЬреЗрдПрд╕ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдЧрдгрд┐рдд, рд░рдВрдЧ рд░реВрдкрд╛рдВрддрд░рдг, рддреНрд░рд┐рднреБрдЬ рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рднрд▓реЗ рд╣реА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛() рдЧрдбрд╝рдмрдбрд╝реА рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдФрд░ рдЦрд░рд╛рдм рдЯреНрд░реЗрдбрдСрдлрд╝ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рддреАрди.рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдПрдХ рдФрд░ рднреА рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрддрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдПрдХ рдлреИрдВрд╕реА рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рд╛рдж рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рд╣реИ рд╕рд░рд▓ (рд▓реЗрдХрд┐рди рджреНрд╡рд┐рддреАрдп рд╢реНрд░реЗрдгреА) рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рд╛рджред
@erno рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрд┐рдВрджреБ рд╕реЗ рдЪреВрдХ рдЧрдП рд╣реИрдВ, three.js
рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕рдВрд░рдЪрдирд╛ рджреНрд╡рд╛рд░рд╛ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрдЕрдк рд╕реЗ рдЕрд▓рдЧ рдПрдХ рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рд╛рдердорд┐рдХ рд▓рд╛рдн three.js
рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред
@kumavis - рдирд╣реАрдВ @erno рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдпрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдордЭ рдЧрдпрд╛ (*) рдХрд┐ рд╡рд╣ рдпрд╣ рдмрд┐рдВрджреБ рдмрдирд╛рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ three.js
рдХрднреА-рдХрднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдпрд╣ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рддреАрдиреЛрдВ рд╕реНрд░реЛрддреЛрдВ рдФрд░ рдлрд┐рд░ рдХреБрдЫ рддреГрддреАрдп рдкрдХреНрд╖ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рдЕрдВрддрд░ рдкрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╣реИ рдФрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
(*)рд╣рдордиреЗ рдЖрдЬ рдкрд╣рд▓реЗ рдЖрдИрдЖрд░рд╕реА рдкрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рд╡реИрдз рдмрд┐рдВрджреБ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрдд рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдХреНрдпрд╛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд╛рдпрдХ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рд╕рдордЧреНрд░ рдорд╛рдорд▓реЗ рдкрд░ рдпрд╣рд╛рдБ рдзреНрдпрд╛рди рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореЗрд░реА рдУрд░ рд╕реЗ рдЕрдм рддрдХ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
@ рдореБрдЭреЗ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ред рд▓реЛрдЧреЛрдВ рдиреЗ рдпрд╣рд╛рдВ рдХрдИ рддрд░рд╣ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдорд╛рди рд░рд╣рд╛ рдерд╛ рдХрд┐ рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ ( THREE
рд╕реЗ рд╕рдм рдХреБрдЫ рдЦреАрдВрдЪрдХрд░), рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреБрдЫ рднреНрд░рдо рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдПрдХ рд╡рд╛рдЬрд┐рдм рдЪрд┐рдВрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рднрд╛рд╖рд╛ рд╕реЗ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рдерд╛ред
рдФрд░ рджреВрд╕рд░рд╛ рд╕рд░рд▓ (рд▓реЗрдХрд┐рди рджреНрд╡рд┐рддреАрдп рд╢реНрд░реЗрдгреА) рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рд╛рдж рд╣реИред
рдпрд╣ рд╕рд┐рд░реНрдл рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рдБ?
рдореЗрд░реА рд╕рдордЭ рдореЗрдВ, рд╣рд╛рдБред рдФрд░ рдХреНрдпрд╛ рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рдпрд╛рдж рдЖ рд╕рдХрддрд╛ рд╣реИред
рдПрдВрдЯреЛрди, рдХреБрдорд╛рд╡рд┐рд╕: рдпрд╣рд╛рдВ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдиреЗ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ () рд╢реИрд▓реА рдХреЛрдб рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВред mattdesl рдХреА рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдЯрд┐рдкреНрдкрдгреАред
"рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореЙрдбреНрдпреВрд▓рд░ рдмрд┐рд▓реНрдб рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВ, рдпрд╛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдереНрд░реАрдЬреЗрдПрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдпрд╛рдиреА рд╕рдВрд╕реНрдХрд░рдг/рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВ) [...]"
рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдмрд┐рд▓реНрдб рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдЖрдкрдХреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдордЭрддреА рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдордВрдерди рдХрд░рддреА рд╣реИред
рдЕрднреА Bower & browserify рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЕрдиреНрдп рдСрдл-рдж-рд╢реЗрд▓реНрдл рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВ рдЬреЛ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдПрдирдЬреА-рдирд┐рд░реНрднрд░рддрд╛ рдХреА рддрд░рд╣) рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдРрд╕реЗ рдЯреВрд▓ рд▓рд┐рдЦреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди рджрд░реНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛрдВрдЧреЗред
Google рдХрд╛ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдРрд╕рд╛ рдЯреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ, рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдорджрдж рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИ?
http://marcinwieprzkowicz.github.io/three.js-builder/
рдпрд╣ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ @erichlof :) рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ @marcinwieprzkowicz рдиреЗ рдЗрд╕реЗ рд╣рд╛рде рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рд╣реИ ... https://github.com/marcinwieprzkowicz/three.js-builder/blob/gh-pages/threejs-src/r66/modules.json
рдПрдХ рдЕрднреНрдпрд╛рд╕ рдЬреЛ рдереНрд░реА.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ: https://github.com/mrdoob/three.js/blob/master/src/core/Geometry.js#L82
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрдк рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рдЯреНрд░реА рдореЗрдВ рдПрдХ рд╣реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╣реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЗрдВрд╕реНрдЯреЙрдлрд╝ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬреНрдпрд╛рдорд┐рддрд┐.isGeometry(geom) рд╢реИрд▓реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреАрдЫреЗ рдлреАрдЪрд░-рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЪреЗрдХ рдХреЗ рдЙрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдХрджрдо рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
git/three.js/src рдореЗрдВ:
grep -r instanceof . | wc -l
164
git/three.js/examples рдореЗрдВ:
grep -r instanceof . | wc -l
216
рдЗрд╕рд▓рд┐рдП рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ instanceof
рдХреБрд▓ 380 рдЙрдкрдпреЛрдЧ рд╣реИрдВред рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ type
рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрддрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдЪреНрдЫрд╛! рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рдФрд░ рдмрдбрд╝реА рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https://github.com/facebook/react рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдХреЛрдбрдмреЗрд╕ рдХреЛ рдиреЛрдб рд╕реНрдЯрд╛рдЗрд▓ рдЖрдзрд╛рд░рд┐рдд рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо (рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд░рдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧреНрд░рдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рдорд╛рдзрд╛рди 3 рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓рд╛ рд╣реИред
require
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдЪрд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрдореИрдВрдиреЗ рдХреБрдЫ рд╢реЛрдз рдХрд┐рдпрд╛ ...
рдХрд▓ рдореИрдВрдиреЗ рдПрдХ (рдмрд▓реНрдХрд┐ рдмреЗрд╡рдХреВрдл) рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдХ рд╕рд╛рде рд╣реИрдХ рдХрд┐рдпрд╛ рдЬреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CommonJS require()
рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Three.js рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдмрд╕ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ... рдпрд╣:
var THREE = require('../Three.js');
require('../math/Color.js');
require('../math/Frustum.js');
require('../math/Matrix4.js');
require('../math/Vector3.js');
require('./webgl/WebGLExtensions.js');
require('./webgl/plugins/ShadowMapPlugin.js');
require('./webgl/plugins/SpritePlugin.js');
require('./webgl/plugins/LensFlarePlugin.js');
require('../core/BufferGeometry.js');
require('./WebGLRenderTargetCube.js');
require('../materials/MeshFaceMaterial.js');
require('../objects/Mesh.js');
require('../objects/PointCloud.js');
require('../objects/Line.js');
require('../cameras/Camera.js');
require('../objects/SkinnedMesh.js');
require('../scenes/Scene.js');
require('../objects/Group.js');
require('../lights/Light.js');
require('../objects/Sprite.js');
require('../objects/LensFlare.js');
require('../math/Matrix3.js');
require('../core/Geometry.js');
require('../extras/objects/ImmediateRenderObject.js');
require('../materials/MeshDepthMaterial.js');
require('../materials/MeshNormalMaterial.js');
require('../materials/MeshBasicMaterial.js');
require('../materials/MeshLambertMaterial.js');
require('../materials/MeshPhongMaterial.js');
require('../materials/LineBasicMaterial.js');
require('../materials/LineDashedMaterial.js');
require('../materials/PointCloudMaterial.js');
require('./shaders/ShaderLib.js');
require('./shaders/UniformsUtils.js');
require('../scenes/FogExp2.js');
require('./webgl/WebGLProgram.js');
require('../materials/ShaderMaterial.js');
require('../scenes/Fog.js');
require('../lights/SpotLight.js');
require('../lights/DirectionalLight.js');
require('../textures/CubeTexture.js');
require('../lights/AmbientLight.js');
require('../lights/PointLight.js');
require('../lights/HemisphereLight.js');
require('../math/Math.js');
require('../textures/DataTexture.js');
require('../textures/CompressedTexture.js');
рд╣рдореЗрдВ рдХреБрдЫ рдкреНрд░рдореБрдЦ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╢рд╛рдпрдж WebGLRenderer (рдФрд░ рдРрд╕реЗ) рдХреЛ рдХрдИ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ (рдПрдЯреАрдПрдо рдлрд╝рд╛рдЗрд▓ 6000 рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмреА рд╣реИ)ред
THREE.ShaderChunk
рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд░рдирдЯрд╛рдЗрдо рдкрд░ THREE.ShaderLib
рдореЗрдВ ( THREE.ShaderChunk
s рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░) рдЬреЛ рдХрд┐ рдХреЗрд╡рд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИредReact.js рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдкрде рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдРрд╕рд╛ рд╣реА рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдХрд╕реНрдЯрдо рдирд┐рдпрдореЛрдВ рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХреЗрдВ рдЬреЛ рд╣рдореЗрдВ require
GLSL рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ JS рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
@rasteiner рдЖрдкрдХреЛ https://github.com/stackgl/glslify рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд░ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╣ рдмрдврд╝рддреЗ http://stack.gl рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ
рдореБрдЭреЗ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдФрд░ "рдпреВрдирд┐рдХреНрд╕реА" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рдЕрдиреБрднрд╡ рд╣реБрдЖ рд╣реИ рдФрд░ рдЕрдм рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдХрдо рджреЗрд░ рд╣реЛ рдЪреБрдХреА рд╣реИ, рдФрд░ рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рдпрд╛ рдПрдирдкреАрдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдереНрд░реАрдЬреЗ рдХреЛ рд░рд┐рдлреИрдХреНрдЯрд░ рдХрд░рдирд╛ рдПрдХ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рдХреНрд╖реНрдп рд╣реЛрдЧрд╛ред
рдпрд╣рд╛рдБ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛/рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:
рдореЗрд░реА рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ npm рдкрд░ "рддреАрди" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрдардиреЗ рдФрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреА рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдереНрд░реАрдЬреЗрдПрд╕ рдиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд░рд┐рд▓реАрдЬ рдирдВрдмрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдирдкреАрдПрдо рдХреЛ рдмрд┐рд▓реНрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред
рдкреАрдПрд╕: рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп/рдореЙрдбреНрдпреВрд▓рд░ рд╢реЗрдбрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рд▓рд╛рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП:
https://gist.github.com/mattdesl/b04c90306ee0d2a412ab
рдореЗрд░реЗ рдЖрдИрдлреЛрди рд╕реЗ рднреЗрдЬрд╛ рдЧрдпрд╛
рдирд╡рдВрдмрд░ 20, 2014, рдкрд░ рдкрд╕рдВрдж рдХрд░реЗрдВ 7:42 AM рдкрд░, рд╣рд╛рд░реВрди [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:
@rasteiner рдЖрдкрдХреЛ https://github.com/stackgl/glslify рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд░ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдпрд╣ рдмрдврд╝рддреЗ http://stack.gl рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ
-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВред
рдпрджрд┐ рдпрд╣ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рд╣реИ, рддреЛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рд╣реИ browserify-shim рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
_"рдЖрдк рдХрднреА-рдХрднреА a) рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░реЗрдВрдЧреЗ"_ рдкрд░ README рдЕрдиреБрднрд╛рдЧ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рддреАрди рдЪрд░ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ред
рдФрд░ рдлрд┐рд░ рдореБрдЭреЗ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдХреЛрд▓рд╛рдбрд╛рд▓реЛрдбрд░, рдСрд░реНрдмрд┐рдЯрдХрдВрдЯреНрд░реЛрд▓ рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреИрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореИрдВрдиреЗ рдЗрд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛:
рдкреИрдХреЗрдЬ.рдЬреЗрд╕рди рд╕реЗ:
"browser": {
"three": "bower_components/threejs/build/three.js"
},
"browserify-shim": "browserify-shim-config.js",
"browserify": {
"transform": [ "browserify-shim" ]
}
browserify-shim-config.js:
module.exports = {
"three": { exports: "global:THREE" },
"./vendor/threejs-extras/ColladaLoader.js": { depends: {"three": null}, exports: "global:THREE.ColladaLoader" },
"./vendor/threejs-extras/OrbitControls.js": { depends: {"three": null}, exports: "global:THREE.OrbitControls" }
};
рдлрд┐рд░ рдореЗрд░реА рдЕрдкрдиреА рд▓рд┐рдкрд┐ рдореЗрдВ, main.js:
require('../vendor/threejs-extras/ColladaLoader.js');
require('../vendor/threejs-extras/OrbitControls.js');
var loader = new THREE.ColladaLoader(),
controls = new THREE.OrbitControls(camera);
...
рдЬрдм рдЖрдк рдмрд╛рдЗрдЯреНрд╕ рдкрд░ рднреА рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ Browserify рдХреЛ рд╕рдВрдкреВрд░реНрдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдПрдХ рдмрд╛рд░ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рддреАрди.рдЬреЗрдПрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдлрд┐рд░ рдПрдХ рд╕реАрдорд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рджреЛ рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд▓рд╛рдЗрд╡рд░реЗрд▓реЛрдб рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИред
рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди livereload рдХреЗ рд╕рд╛рде watchify рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдмрдВрдбрд▓ рдмрдирд╛рддрд╛ рд╣реИред
watchify рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдореИрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрджрд▓рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВ, рддреЛ рджреЗрдЦреЗрдВ рдФрд░ рдмреАрдл рдХрд╛ рд▓рд┐рд╡рд░рд▓реЛрдб рдкреБрд░рд╛рдиреЗ/рдХреИрд╢реНрдб рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╕реЗрд╡рд╛ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИред рд╢реБрдХреНрд░ рд╣реИ, browserify рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
@ChiChou рдкрд╛рд╕ рдореЗрдВ --noparse=three
рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдореЗрд░реА рдорд╢реАрди рдкрд░ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ рдмрдВрдбрд▓ рд╕реНрдЯреЗрдк рдХреЛ 1000ms рд╕реЗ 500ms рддрдХ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рддрддреНрдХрд╛рд▓ рдлреАрдбрдмреИрдХ рдлреАрд▓ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
@rasteiner рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдЕрдВрддрд░-рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдЖрдкрдХреЗ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд╢реЛрдз рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЬрдмрдХрд┐ рдбрд┐рдкреЛ рдХреА рд╡рд╣ рд╡рд┐рд╢рд╛рд▓ рд╕реВрдЪреА рдХреБрдЫ рдмрджрд╕реВрд░рдд рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣ рдХреБрд░реВрдкрддрд╛ рдореМрдЬреВрдж рд╣реИ, рдмрд╕ рдЕрджреГрд╢реНрдп рд╣реИред Browserify рдХреА рддрд╛рдХрдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЧрдВрджреЗ рдХрдкрдбрд╝реЗ рдзреЛрдиреЗ рдФрд░ рдХрдо рдкреЗрдЪреАрджрд╛ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкреАрдЫрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдереНрд░реА.рдЬреЗ рдореЗрдВ рдРрд╕реЗ рдмрд╣реБрдд рд╕реЗ рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЙрд╕ рдкреНрд░рдХрд╛рд░-рдирд┐рд░реНрднрд░ рдХреЛрдб рдХреЛ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЙрди рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕рдордЭ рдирд╣реАрдВ рд╣реЛрдЧреА рдЬрд┐рди рдкрд░ рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд WebGLRenderer рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрджрд╛рд╣рд░рдг рд╣реИ:
if ( texture instanceof THREE.DataTexture ) {
// ...
} else if ( texture instanceof THREE.CompressedTexture ) {
// ...
} else { // regular Texture (image, video, canvas)
// ...
}
рдлреЙрд░реНрдо рдХрд╛ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
texture.processTexImage( _gl, mipmaps, otherData )
рдкреНрд░рдХрд╛рд░ рдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рджреЗрдВ рдХрд┐ рд╕реНрд╡рдпрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрдкрднреЛрдХреНрддрд╛ рдХреЛ рдЙрди рдЙрдкрдиреНрдпрд╛рд╕ рдмрдирд╛рд╡рдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдирд╣реАрдВ рдерд╛ред рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЕрдиреНрдпреЛрдиреНрдпрд╛рд╢реНрд░рд┐рддрддрд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдЬрд╛рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИред UMD рдмрд┐рд▓реНрдб рд╕реЗ рддреАрди.js рдХреА рдЦрдкрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧреАред рдпрд╣ рд╣рдореЗрдВ WebGLRenderer рдХреЛ рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рдпрд╣ рдЕрдЦрдВрдб рдФрд░ рдбрд░рд╛рд╡рдирд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдПрдХ рд╢рд╛рдЦрд╛ рд╢реБрд░реВ рдХреА рд╣реИ рдЬрд╣рд╛рдБ рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ: https://github.com/coballast/three.js/tree/browserify-build-system
рдореБрдЭреЗ рдмрддрд╛рдУ рдХрд┐ рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛред
рдпрд╣рд╛рдБ @coballast рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ ред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреА browserifyify.js
рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред
рдПрдХ рдмрд╛рдд рдЬрд┐рд╕ рдкрд░ рд╣рдо рд╕рднреА рдиреЗ рдЕрднреА рддрдХ рдЬреНрдпрд╛рджрд╛ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХреА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдмрдбрд╝реЗ, рд╣рдореЗрд╢рд╛ рдмрджрд▓рддреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреИрд╕реЗ рд╣реИред рдЖрдк рдкрд░рд┐рд╡рд░реНрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рддреБрд░рдВрдд рдкреБрд░рд╛рдирд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣реА рд╕рдореНрдореЛрд╣рдХ рд╣реИред
рдЕрдЧрд░ рд╣рдо рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
browserifyify.js
)...рддреЛ рд╣рдо рдЗрд╕реЗ рдПрдХ рдкреБрд╢-рдмрдЯрди рд░реВрдкрд╛рдВрддрд░рдг рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрднреА рднреА рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╡рд╣ рд╕рд╛рджрдЧреА рдПрдХ рдореМрд▓рд┐рдХ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдЗрд╕ рд╕реНрд╡рдкреНрдирд┐рд▓ рдзрд╛рд░рдгрд╛ рдХреЛ рдЗрддрдиреА рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИ рдЬрдм рд╡реИрдЪрд╛рд░рд┐рдХ рддрд░реНрдХ рдЬреАрдд рдЬрд╛рддреЗ рд╣реИрдВред
@coballast рдЙрд╕ рдЕрдВрдд рддрдХ, рдореИрдВ src/Three.js рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣рдЯрд╛
рдиреЛрдЯ: рди рдХреЗрд╡рд▓ рдкреВрд░реНрд╡рд╡рдд рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ рд╢рд╛рдЦрд╛ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рд╕реЗ рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдПрдХ рдирдИ рд╢рд╛рдЦрд╛ рдпрд╛ рдмрд▓ рдзрдХреНрдХрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ
@coballast рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд░реВрдкрд╛рдВрддрд░рдг рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП three.js
рдХрд╛ рдХрд╛рдВрдЯрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд╣рд░реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬрд┐рд╕реЗ рдЖрдк three.js
рд╡рд┐рдХрд╛рд╕ рдбреАрдЖрдИрдЖрд░ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕реНрд░реЛрдд рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдлрд╝рд╛рдЗрд▓реЗрдВ, рдПрдХ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИред
@kumavis рдореИрдВ рдЕрдХреЗрд▓реЗ src рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЫреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЙрдордирдЬ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓рд┐рдЦрддреА рд╣реИ, рдФрд░ рд╣рдо рдХреБрдЫ рднреА рдмрдбрд╝рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдВ рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬ рдмрд┐рд▓реНрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдВ рдХреБрдЫ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦрдиреЗ рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрд╡рд╕рд░ рднреА рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдкреВрд░реНрдг рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рд╕реБрд╕рдВрдЧрдд рд╢реИрд▓реА рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдФрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ред
@coballast рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЛрдб рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдХрд░рдг рд╣реИрдВ, рдЬреИрд╕реЗ escodegen ред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЖрджрд┐ рдмрдирд╛рдП рд░рдЦ рд░рд╣реЗ рд╣реИрдВред
рддреАрдиjs-рд░реВрдкрд╛рдВрддрд░рдг-рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд░реЗрдкреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
@coballast рдиреЗ рдХрд╣рд╛, рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддреЗрдЬ рдлреЛрдХрд╕ рдмрдирд╛рдП рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
@ рдХреБрдорд╛рд╡рд┐рд╕ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рд╣реЛред рдпрд╣ рдЙрди рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реИ рдЬрд┐рди рдкрд░ рдореИрдВ рдЗрд╕ рд╕рдордп рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
@kumavis @mrdoob рдпрд╣рд╛рдВ рдХреБрдЫ рдЪрд░реНрдЪрд╛ рддреАрди рдХреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдПрдирдкреАрдПрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдХреА рд╡рдХрд╛рд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рддреАрди рдХреЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ рдЬреИрд╕реЗ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЙрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реИ ^^
@coballast рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдкреЛ рд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЦрд╛рд▓реА рд╣реЛред рд╣рдо рд╡рд╣рд╛рдВ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
https://github.com/coballast/threejs-browserify-conversion-utility
рдХреЛрдб рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рдЬрд▓реНрдж рд╣реА рд╕рд╛рдл рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдпреЗ рд░рд╣рд╛! :рд░реЙрдХреЗрдЯ:
рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░реАрдХреГрдд рд╕реНрд░реЛрдд рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЗрд╕реЗ рдмрдирд╛рдПрдЧрд╛ред рдореИрдВ рд░реЗрдкреЛ рдХреЛ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХреИрд╕реЗ рдХрд░реЗрдВред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗред рдРрд╕реЗ рдХрдИ рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рдЕрдкрдиреА рдЖрд╕реНрддреАрди рдКрдкрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдФрд░ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд░реЗрдкреЛ рдореЗрдВ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ред
@coballast рд╣рд╛рдБ рдХреГрдкрдпрд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдХреВрджреЗрдВрдЧреЗ рдЬреИрд╕рд╛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рд╛рдордиреЗ рдЖрдИ рд╣реИрдВред рджреЗрдЦреЗрдВ #6241
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛: https://github.com/coballast/threejs-browserify-conversion-utility/issues/9#issuecomment -83147463
рдЗрд╕рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдХрд╛рд░рдг browserify рдХрдо рд╕реЗ рдХрдо рдкрд░рд┐рд╡рд╣рди рдЕрдирд╛рд╡рд╢реНрдпрдХ (congestive) рдкрд░ рд╣реИред рдпрд╣ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд▓рд╛рдЧрдд рдХреЛ рдмрдврд╝рд╛ рджреЗрддрд╛ рд╣реИ (рдбреЗрдЯрд╛ рдкреНрд▓рд╛рди рдХрд┐рд╕реА рдХреЛ рднреА?) рдФрд░ рдзреАрдорд╛ред
рдЗрд╕рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрдкрд╛рдп рдпрд╣ рд╣реИ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬрд┐рд╕рдореЗрдВ рджреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреА рдФрд░ рдПрдХ рдирд╣реАрдВред рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдо рдмрд╛рдд рд╣реИред
рдЕрдЧрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬ рджреЛрд╖рдкреВрд░реНрдг рд╣реИ рдФрд░ рдЦреБрдж рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рддреЛ рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдпрд╣ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреБрдЫ рднреА рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдХреЗрд▓реЗ рдХреБрдЫ рдЬреИрд╕реЗ рдереНрд░реАрдЬреЗред
@spaesani рдХреНрдпреЛрдВрдХрд┐
рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдЕрднреА рднреА "рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛрдб рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ", рддреЛ рдЖрдк рдЕрднреА рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╣рдо рдЕрднреА рдХрд░рддреЗ рд╣реИрдВред рдЖрдк --standalone рдФрд░ --exclude рдлрд╝реНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ
Browserify рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдпреБрджреНрдз рд╕рд┐рджреНрдз рдореЙрдбреНрдпреВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ API (CommonJS) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдереНрд░реАрдЬреЗрдПрд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░реЗрдЧрд╛ рдФрд░ рдХреЛрдб рд╕реНрдкрд╖реНрдЯрддрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛, рдпрд╣ рд╣рдореЗрдВ рдПрдХ рдмрдбрд╝реЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ (рдПрдирдкреАрдПрдо) рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬрд╣рд╛рдВ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдЦрдВрдбрддрд╛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ) рд╕реНрдЯреИрдХрдЧреНрд▓ рдкрд░рд┐рд╡рд╛рд░), рдФрд░ рдЕрдЧрд░ рд╡реЗ рдЗрд╕реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд▓реЛрдЧреЛрдВ рдХреЛ
рдмреЗрд╢рдХ рдЗрд╕рдореЗрдВ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред
рдереНрд░реА.рдЬреЗрдПрд╕ рдФрд░ рдереНрд░реА.рдорд┐рди.рдЬреЗрдПрд╕ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА, рдХреЙрдорди рдореЛрдмрд╛рдЗрд▓ рд╕реЙрд▓реНрдпреВрд╢рди рдпрд╛ рдХреИрд╢рд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд░ рдХреЗ рдЬрд░рд┐рдП рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ (рдбреЗрдЯрд╛) рдкрд░ рд╕реЗрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЬрд┐рд╕ рдХреНрд╖рдг рдЖрдк рдЪреЗрд░реА рдЪреБрдирддреЗ рд╣реИрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдереНрд░реАрдЬреЗрдПрд╕ рдХреЛрдб рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ, рдХреИрд╢рд┐рдВрдЧ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
рдпрджрд┐ browserify рдПрдХ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
sp
On Mar 28, 2015 1:06 PM, Roman Steiner notifications@github.com wrote:@spaesani Because the data for threejs has to be downloaded anyway. If we split threejs into smaller modules and let an automated build system cherry pick what it needs for a single app, actually most threejs apps out there would be lighter.
If for some reason you still want to separate "document from library code", you could still do this and use a pre-built version like we do now. You could even split your browserify-built app into separate modules by using the --standalone flag.
Browserify is just a way to use a battle proven module definition API (CommonJS) on the browser. It would greatly simplify the development of threejs plugins and enhance code clarity and therefore productivity, it would allow us to integrate into a bigger ecosystem (npm) where the code is inherently maintained by more people while still maintaining integrity through the versioning system, and it wouldn't even force people into CommonJS if they don't want it.
Of course there are downsides, but they're not the ones you've mentioned.
тАФReply to this email directly or view it on GitHub.
@spaesani рдпрд╣ (
рдореЛрдмрд╛рдЗрд▓ рдиреЗрдЯрд╡рд░реНрдХ рд▓реЛрдб рдХреА рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ http/2 рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рд╕реЗ рдХреБрдЫ рд╣рдж рддрдХ рдХрдо рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЕрдореВрд░реНрдд рд╕реНрдЯреИрдХ рдкрд░ рдХрдо рдкрд░рддреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдЬреИрд╕реЗ рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ / рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЖрджрд┐ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЗрд╕рд▓рд┐рдП рдорд┐рд▓реА рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реА рдЯреАрдо рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ jspm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИред рд╣рдо рддреАрдиjs рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ (рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЦреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдИрдПрд╕ 6 рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рддреАрди рдЬреЗрдПрд╕ рдмрдирд╛рдП рд╣реИрдВ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЬреЗрдПрд╕рдкреАрдПрдо рдХреА рдирд┐рд░реНрдорд╛рдг рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрд╛рд░рдг (рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрдВрдбрд▓ рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛)ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ mrdoob рддреАрдиj рдХреЗ рдЖрдХрд╛рд░ рдХреЛ 100kb рд╕реЗ рдХрдо рд░рдЦрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдХреЛрдбрдмреЗрд╕ рдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ (рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ)ред CubeCamera, OrthographicCamera, CanvasRenderer, рд╡рд┐рднрд┐рдиреНрди рд▓рд╛рдЗрдЯреНрд╕, рд▓реЛрдбрд░, рдХрд░реНрд╡реНрд╕, рдЬреНрдпреЛрдореЗрдЯреНрд░реА, рд╣реЗрд▓реНрдкрд░реНрд╕, рдЖрджрд┐ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдореЗрд░реА рдЖрд╢рд╛ рдереА рдХрд┐ рдЗрди рд╕рднреА рдореЙрдбреНрдпреВрд▓реЛрдВ рдХрд╛ рдПрдХ рд╣реА рд╕реНрдерд╛рди рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ (рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рддреАрдиjs рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рднреА рдмрдВрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдФрд░ рдмрд╕ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд┐рд░ рдЬрдм рдореИрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдмрдВрдбрд▓ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореВрд▓ рддреАрдиj рд╕реЗ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рдореЗрдВ рдХрдИ рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдереЗред
рдореИрдВ рдпрд╣ рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрджрд┐ рдереНрд░реАрдЬреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рдереЗ, рддреЛ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдУрд╡рд░рд╣реЗрдб рдЬреЛрдбрд╝ рджреЗрдЧрд╛ (рд▓реЗрдХрд┐рди r70 рдкрд░ рд╡рд░реНрддрдорд╛рди 403kb рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓рдиреАрдп), рд▓реЗрдХрд┐рди рдХреЛрдб рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рддреАрди рдЪрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рднреА рд╣рдЯрд╛ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ THREE.Geometry рдЬреИрд╕реЗ рдЪрд░ рдХреЛ рдмрдВрдж рдХрд░рдХреЗ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ред
рдореИрдВрдиреЗ рддреАрди рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ-рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рддреЗ рд╣реБрдП рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ (рдЗрд╕рд▓рд┐рдП рдЙрд╕рдХреЗ рд╕рднреА рдмрдЪреНрдЪреЛрдВ рдиреЗ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░ рджрд┐рдпрд╛) рдФрд░ рдкреВрд░реА рдлрд╛рдЗрд▓ рдХреЛ рдЖрдИрдЖрдИрдПрдлрдИ рдореЗрдВ рд▓рдкреЗрдЯрдХрд░, рдлрд┐рд░ рдкреВрд░реА рдЪреАрдЬ рдХреЛ Google рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдпрд╛ред рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ (рдЧреИрд░-gzipped) 238kb рдереА, рдЬреЛ 777kb рд╕реЗ рдХрдо рдереАред
рдЬрдмрдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - рд╡рд╣рд╛рдВ рдХрдИ рдЕрдЪреНрдЫреЗ рдмрд┐рдВрджреБ рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рднреА рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рд╣рдо рдХрднреА рднреА рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрдИ рд░реЗрдВрдбрд░рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рддрд░рд╣-рддрд░рд╣ рдХреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реИред
рдФрд░ es6 рдореЙрдбреНрдпреВрд▓ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВ - рдпрд╣ рд╕реБрдирдХрд░ рднреА рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ AMD/CommonJS/рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдкреИрдЯрд░реНрди рдФрд░ lib рдЙрдкрдпреЛрдЧ рд╕реЗ рднреА рдПрдХ рд░рд╛рд╕реНрддрд╛ рд╣реИред
@colin рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ
рдЖрдкрдХреА рдордиреЛрд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЦреБрд╢реА рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ': рдиреЗрд╕ред
рдХреНрдпрд╛ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рд╣реИ?
browserify рдПрдХ рдХреИрд░рд┐рдпрд░ рдХреИрд╢ рдЧрд╛рдп рд╣реИ...
рдордВрдЧрд▓рд╡рд╛рд░, 31 рдорд╛рд░реНрдЪ 2015, 10:11 рдЕрдкрд░рд╛рд╣реНрди -04: 00 рдХреЙрд▓рд┐рди рдмрд▓реНрд▓рд╛рд╕реНрдЯ рд╕реЗ рд╕реВрдЪрдирд╛рдПрдВ @github.com :
@spaesani рдпрд╣ (
рдореЛрдмрд╛рдЗрд▓ рдиреЗрдЯрд╡рд░реНрдХ рд▓реЛрдб рдХреА рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ http/2 рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рд╕реЗ рдХреБрдЫ рд╣рдж рддрдХ рдХрдо рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЕрдореВрд░реНрдд рд╕реНрдЯреИрдХ рдкрд░ рдХрдо рдкрд░рддреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдХреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдЬреИрд╕реЗ рдкреНрд░рддрд┐рд░реВрдкрдХрддрд╛ / рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЖрджрд┐ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред
-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВред
рдЕрдм, рдпрджрд┐ browserify рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрдерди рдХреЗ рдмрд┐рдирд╛ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ ... рдЕрд░реЗ рд░реБрдХреЛ ...
@spaesani рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ - рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рд╕рднреА рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред
browserify рдПрдХ рдХреИрд░рд┐рдпрд░ рдХреИрд╢ рдЧрд╛рдп рд╣реИ...
@spaesani рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ рдУрд╡рд░рд╣реЗрдб рдЗрдиреНрдлрд┐рдирд┐рдЯрд┐рдорд▓ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдиреНрдпреВрдирддрдо рдмрд┐рд▓реНрдб рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ:
рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░реАрдХреГрдд рдХреЛрдб рд╡рд╛рд▓реА рдПрдХ рд╢рд╛рдЦрд╛ рд╣реИ:
https://github.com/coballast/three.js/tree/browserify
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдХрд╛рдо рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИред рдпрд╣ рдХреЛрдб рд╕реНрд╡рдд: рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рдерд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рднрдпрд╛рдирдХ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдореИрдВ рдЕрднреА рднреА рдХреБрдЫ рдмрд┐рд▓реНрдб рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдХреЛрдмрд▓рд╛рд╕реНрдЯ/рдереНрд░реАрдЬреЗрдПрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝-рд░реВрдкрд╛рдВрддрд░рдг-рдЙрдкрдпреЛрдЧрд┐рддрд╛#10 рджреЗрдЦреЗрдВред рдпрд╣ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрди рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдирд╣реАрдВ рд╣реИред
@kumavis рдФрд░ рдореИрдВ рдХреБрдЫ рд░рдирдЯрд╛рдЗрдо рдореБрджреНрджреЛрдВ (рдФрд░ рд╕рд╛рде рд╣реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рд╕реБрдзрд╛рд░) рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд╣реАрдВ рдКрдкрд░ рдХрд┐рдпрд╛ рд╣реИред
рд▓рдВрдмреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред TLDR: jspm/es6 рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЕрдЬреАрдмрддрд╛ рд╣реИ: 1) рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛; 2) рдХреЗрд╡рд▓ рдПрдХрд▓ рд╡рд░реНрдЧ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХрд▓ рд╡рд░реНрдЧ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛; 3) рдЖрдИрдЖрдИрдПрдлрдИ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░; 4) рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ред
рдореИрдВрдиреЗ рдЖрдкрдХреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реАрдХреГрдд рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде jspm рдореЗрдВ рдЦреЗрд▓рд╛ ( @spinchristopher рдКрдкрд░ рдореИрдВ рд╣реВрдВ) рдФрд░ рдХреБрдЫ рдиреЛрдЯреНрд╕ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ: рдХреНрдпрд╛ рдЙрд╕ рдХрд╛рдВрдЯреЗ рдкрд░ рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрд▓рдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдзрд╛рдЧрд╛ рдЙрдирдореЗрдВ рд╕реЗ рднрд░рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВ рдПрдХ рд╕рд╛рде рдард┐рдардХ рдЧрдП?
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЪрд▓рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред (рдЖрд░рдВрдн рдХрд░рдиреЗ рдкрд░ рд╕рд░рд▓ рдбреЗрдореЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд╛рд▓рд╛ рднрд░рддрд╛ рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░рдВрдЧ рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рдкрд░ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛), рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдШрди рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИред
рдореИрдВ 3 рдореБрдЦреНрдп рдореБрджреНрджреЛрдВ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛:
рдПрдХред рдпрд╣ рд╕рдмрд╕реЗ рдХрд╖реНрдЯрдкреНрд░рдж рдерд╛, рдФрд░ рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХреИрд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ (рдпрд╣ рдареАрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рд╕рдордп рдкрд░ рдлрд╣рд░рд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдореЙрдбреНрдпреВрд▓.рдПрдХреНрд╕рдкреЛрд░реНрдЯ рд▓рд╛рдЗрди рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддреА рд╣реИрдВ, рднрд▓реЗ рд╣реА рдпрд╣ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗ):
module.exports.Foo = Foo;
function Foo() {}
рд╕рдорд╕реНрдпрд╛ рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрддреА рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рд╣реИрдВ (рдкрд╣рд▓реА рдмрд╛рд░ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╡рд╣ рдЧрдгрд┐рдд/рдЧрдгрд┐рдд.рдЬреЗрдПрд╕ рдерд╛)ред рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдлрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ) рд▓реЗрдХрд┐рди рдкрд░рд┐рднрд╛рд╖рд╛ рдпрдерд╛рд╡рдд рд░рд╣рддреА рд╣реИ (рдЗрд╕рд▓рд┐рдП рдирд┐рд░реНрдпрд╛рдд рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ)ред
module.exports.Foo = Foo;
var Foo = {};
рдореБрдЭреЗ рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдлрд┐рдХреНрд╕ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдирд┐рд░реНрдпрд╛рдд рд▓рд╛рдЗрди рдХреЛ рдЕрдВрдд рддрдХ рд▓реЗ рдЬрд╛рдирд╛ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ (рдкрд╕рдВрджреАрджрд╛):
var Foo = module.exports.Foo = {};
рджреЛред рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ред рдореЙрдбреНрдпреВрд▓рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдорд╛рдирдХ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреА рд╣реИред рдЬрдмрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдлрд╛рдЗрд▓реЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛрддреА рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреБрдЫ рдЕрдзрд┐рдХ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреА рд╣реИрдВ), рд╡реЗ рдПрдХрд▓ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЙрд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА: module.exports.Foo = Foo;
рдмрдЬрд╛рдп module.exports = Foo;
ред рдмрд╛рдж рд╡рд╛рд▓рд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдПрдХ рд╕реНрддрд░ рдЧрд╣рд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ( var Vector3 = require('../math/Vector3').Vector3;
)ред рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, es6 рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред ( import Vector3 from '../math/Vector3'; var vector = new Vector3.Vector3();
)ред рдЬрдмрдХрд┐ es6 рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрдпрд╛рдд рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд░ рд╣реИ, рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░реАрдХреГрдд рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЕрднреА рднреА рд╡рд╣реА рдЕрддрд┐рд░реЗрдХ рд╣реЛрдЧрд╛ ( import { Vector3 } from '../math/Vector3';
)ред рдХреБрдЫ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреА рд╣реИрдВ (рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдереНрд░реА.рдЬреЗрдПрд╕), рд▓реЗрдХрд┐рди рдЗрдиреНрд╣реЗрдВ рдиреНрдпреВрдирддрдо рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ .
рддреАрдиред рдЗрд╕реЗ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИред System.js (jspm рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░) рд╕рд░реНрдХреБрд▓рд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХрдИ рдЬрдЧрд╣реЛрдВ рдкрд░, рдХреЛрдб рдирд┐рдореНрди рдЬреИрд╕рд╛ рдХреБрдЫ рдкрдврд╝рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗрдХреНрдЯрд░ 3 рдХреЛ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рд╕рдордп рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдХреНрдЯрд░ 3 рдореЗрдВ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рддрдм рддрдХ рд╣рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдЬрдм рддрдХ рдХрд┐ рджреВрд╕рд░рд╛ рд╣рд▓ рди рд╣реЛ рдЬрд╛рдП) рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред рдореИрдВрдиреЗ рдПрдХ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╕реБрдзрд╛рд░ рдЬреЛрдбрд╝рд╛ (рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрдИ рдмрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╣рд░ рдмрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдПрдХ рдирдпрд╛ рд╡реЗрдХреНрдЯрд░ 3 рдмрдирд╛рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рд╣реИ рдЬрд┐рд╕реЗ рд╡реЗрдХреНрдЯрд░ 3 рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдХреЗ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдмрд╛рдж рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдЕрдкреНрд░рдпреБрдХреНрдд рд╡реЗрдХреНрдЯрд░ 3 рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░ 3 рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗрдВ?
Foo.prototype.bar = function() {
var vector = new Vector3();
return function() {
// some data which reuses vector repeatedly.
};
}();
рдЬреЛрдбрд╝:
Foo.prototype.bar = function() {
var vector;
return function() {
if(!vector) vector = new Vector3();
// some data which reuses vector repeatedly.
};
}();
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЧрдарди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯ рдХреЗ рдареАрдХ рд╕реЗ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрднреА рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЬрдмрдХрд┐ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЗрд╕рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдЕрдЬреАрдм рдпрд╛ рдЕрдЬреАрдм рднреА рд╣реИрдВред рдкреНрд░рдореБрдЦ рд╕рдореВрд╣реЛрдВ (рдХреИрдорд░рд╛, рд╕рд╛рдордЧреНрд░реА, рдЬреНрдпрд╛рдорд┐рддрд┐, рдЖрджрд┐) рдореЗрдВ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░реВрдВрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдереНрд░реАрдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЛ рдЙрд╕ рдЪреАрдЬрд╝ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдКрдБрдЧрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡реЗ рдПрдХ рдЧреНрд▓реЛрдмрд▓ рд╣реИрдВред рдЖрдИрдИ: рдлреНрд░рдВрдЯрд╕рд╛рдЗрдб, рдмреИрдХрд╕рд╛рдЗрдб, рдбрдмрд▓рд╕рд╛рдЗрдб рд╕рднреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ (рдиреЛрд╢реЗрдбрд┐рдВрдЧ, рдлреНрд▓реИрдЯрд╢реИрдбрд┐рдВрдЧ рдФрд░ рд╕реНрдореВрдерд╢реИрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рдеред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрддрд░ рдХрд░рддреЗ рд╣реИрдВ ...)ред
рдореЗрд░реЗ рдкреНрд░рд╛рдердорд┐рдХ рднреНрд░рдо рдХреЛрд░ рдФрд░ рдПрдХреНрд╕реНрдЯреНрд░рд╛ рдХреЗ рд╕рд╛рде рдЖрдПред рдХреЛрд░/рдЬреНрдпрд╛рдорд┐рддрд┐.рдЬреЗрдПрд╕ рдЬреНрдпрд╛рдорд┐рддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рд╕рд╛рдордЧреНрд░реА рд╕рд╛рдордЧреНрд░реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИред рд▓реЗрдХрд┐рди рдХреЛрдИ рдЬреНрдпрд╛рдорд┐рддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдВ рд╣реИред рд╕рдВрдпреЛрдЧ рд╕реЗ, рдПрдХреНрд╕реНрдЯреНрд░рд╛ рдореЗрдВ рдПрдХ рдХреЛрд░ рдФрд░ рдПрдХ рдЬреНрдпрд╛рдорд┐рддрд┐ рднреА рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдзрд╛рд░ рдЬреНрдпрд╛рдорд┐рддрд┐ рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╕рд╣рд╛рдпрдХреЛрдВ рдХрд╛ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╣рд╛рдпрдХ рдХреЛ рдЙрд╕ рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд╣ рдорджрдж рдХрд░ рд░рд╣рд╛ рд╣реИ? рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЗрд╡рд▓ рдЖрдкрдХреА рдЗрдЪреНрдЫрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧреИрд░-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрд╣реАрдВ рдФрд░ рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдмрд╣рд╛рдирд╛ рдирд╣реАрдВ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рдХреЛрдб рдореЗрдВ import BoxGeometry from 'threejs/extras/geometries/BoxGeometry';
рдФрд░ var geometry = new BoxGeometry.BoxGeometry( 1, 1, 1 );
рдкрдврд╝рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ `рдирдпрд╛ THREE.BoxGeometry()``` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЖрджреА рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрд╛ред рдЗрд╕реЗ рдореЙрдбреНрдпреВрд▓рд░ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рди рдЙрддрдирд╛ рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ред
рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛ рдореИрдВ рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХрд░реВрдБрдЧрд╛ред рдпреЗ рдХрдИ рдЬрдЧрд╣реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реВрдВред (рдПрдХ рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХрд▓ рд╡рд░реНрдЧ рдХреЗ рдмрд╛рдж рдирд╛рдо рджреЗрдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрд╕реА рдирд╛рдо рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рд╣реИред рдХреЛрдИ рднреА рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рдВрд╢рдЬ рдЖрдо рддреМрд░ рдкрд░ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЦреБрдж рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рдеред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рдкреИрдЯрд░реНрди рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдиреАрдЪреЗ рд╡рд╣реА рд╕рдВрд░рдЪрдирд╛ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ, рдмрд╕ рдЙрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░ рдХреЛ рдирд┐рдХрд╛рд▓рдХрд░ред рд╕рд╛рде рд╣реА, рдХрд┐рд╕реА рднреА рдлрд╝рд╛рдЗрд▓ рд▓реЛрдбрд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ [рд╣реБрдХ рдЖрдорддреМрд░ рдкрд░ рд╕реАрдзреЗ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ] рд▓реЗрдпрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рд░рд┐рдХреНрд╡рд╛рдпрд░рдореЗрдВрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВ]ред (рдореИрдВ рд╕рднреА рд▓реЛрдЕрд░ рдХреЗрд╕ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рднреА рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рдеред)
Three.js - This is _only_ used in the build process, so it should actually be with the build files, but run as if it is in this location.
geometry/geometry.js - Currently at core/Geometry.js
geometry/face3/face3.js - from core/Face3.js
geometry/box_geometry/box_geometry.js - Currently at extras/geometries/BoxGeometry.js
geometry/circle_geometry/circle_geometry.js - Similar to above.
geometry/utils/utils.js - from extras/GeometryUtils.js
camera/camera.js
camera/cube_camera/cube_camera.js
camera/perspective_camera/perspective_camera.js
camera/helper/helper.js - or camera/camera_helper/camera_helper.js
scene/scene.js
scene/fog/fog.js
scene/fog_exp2/fog_exp2.js
рдореИрдВ рд╕рдВрднрд╡рддрдГ рдЧрдгрд┐рдд рдХреЛ рдмрд░реНрддрдиреЛрдВ рдореЗрдВ рдмрджрд▓ рджреВрдВрдЧрд╛ (рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реЗрдгреА рдореЗрдВ рдПрдХ рдмрд░реНрддрди рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдКрдкрд░ рдЬреНрдпрд╛рдорд┐рддрд┐) рддрд╛рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдЧрдгрд┐рдд (рдХреЛрд░ рд╕реЗ рдХрдИ рдЪреАрдЬреЗрдВ) рд╕реЗ рдЕрдзрд┐рдХ рдкрдХрдбрд╝ рд╕рдХреЗред
@HMUDesign @spinchristopher рдорд╣рд╛рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдХреЛрдмрд▓рд╛рд╕реНрдЯ/рдереНрд░реАрдЬреЗ-рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝-рд░реВрдкрд╛рдВрддрд░рдг-рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд░реЗрдкреЛ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдЕрдм рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдареАрдХ рд╕реЗ рдкрдврд╝рдиреЗ рджреЛред
рдореИрдВ рдХрд┐рд╕реА рддрд░рд╣ рдКрдкрд░ рдЙрд╕ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдВрдХ рд╕реЗ рдЪреВрдХ рдЧрдпрд╛ред рдореИрдВ рдЦреБрд╢реА-рдЦреБрд╢реА рдЕрдкрдиреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдКрдВрдЧрд╛
рдХрд▓ рдЙрд╕ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ (рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХрдо рд╕реЗ рдХрдо
рдЗрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ)
рдЕрдкреНрд░реИрд▓ 9, 2015 12:09 рдмрдЬреЗ, "kumavis" notifications@github.com рд▓рд┐рдЦрд╛ рд╣реИ:
@HMUDesign https://github.com/HMUDesign @spinchristopher
https://github.com/spinchristopher рдорд╣рд╛рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рд╢реНрд░реЗрд╖реНрда
рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП
рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреЛрдмрд▓рд╛рд╕реНрдЯ/рддреАрдиjs-рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝-рд░реВрдкрд╛рдВрддрд░рдг-рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд░реЗрдкреЛредрдареАрдХ рд╣реИ, рдореБрдЭреЗ рдЕрдм рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдареАрдХ рд╕реЗ рдкрдврд╝рдиреЗ рджреЛред
-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/4776#issuecomment -91132413ред
рд╣рд╛рдВ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкреНрд░рдХрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ (* рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдХреЗрд╡рд▓ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдХрднреА-рдХрднреА рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛
рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдк
рдХрдИ рдирд╛рдорд┐рдд рдЪрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд▓реЛрдбрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ
рдореЙрдбреНрдпреВрд▓.рдирд┐рд░реНрдпрд╛рдд рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ, рдЬрд┐рд╕реЗ рдирд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЖрдпрд╛рдд =(
рдЕрдкреНрд░реИрд▓ 9, 2015 12:12 рдмрдЬреЗ, "kumavis" notifications@github.com рд▓рд┐рдЦрд╛ рд╣реИ:
ES6 рдореЗрдВ рдЖрдк рдирд┐рд░реНрдпрд╛рдд рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдЧреБрдг рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╡рд┐рдирд╛рд╢рдХрд╛рд░реАредрдЖрдпрд╛рдд {рд╡реЗрдХреНрдЯрд░3} '../math/Vector3' рд╕реЗ;
рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдкреНрд░рддрд┐ рдореЙрдбреНрдпреВрд▓ рдПрдХ рдирд┐рд░реНрдпрд╛рдд рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред
-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/4776#issuecomment -91132982ред
@HMUDesign рдЖрдкрдХреА рдКрд░реНрдЬрд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж - рдпрд╣рд╛рдБ рд╣рдо рдПрдХ рдЯреВрдбреВ рд╕реВрдЪреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдмреЗрдЭрд┐рдЭрдХ рдЗрд╕рдореЗрдВ рдХреВрджреЗрдВ рдФрд░ рд╕рд╛рдорд╛рди рдХрд░реЗрдВред https://github.com/coballast/threejs-browserify-conversion-utility/issues/17
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП +1ред
Glslify рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╢реЗрдбрд░реНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП +1 рднреАред
рдХреБрдЫ ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП +1 - рдЬреИрд╕реЗ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдирдпрд╛ рдмрд┐рд▓реНрдб рд╕реНрдЯреИрдХ рд╣рдореЗрдВ ES5 рдкрд░ рд╡рд╛рдкрд╕ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:
import Object3D from '../core/Object3D';
import Geometry from '../core/Geometry';
import MeshBasicMaterial from '../materials/MeshBasicMaterial';
class Mesh extends Object3D {
constructor(
geometry = new Geometry(),
material = new MeshBasicMaterial({color: Math.random() * 0xffffff}
) {
super();
this.geometry = geometry;
this.material = material;
this.updateMorphTargets();
}
}
export default Mesh;
@lmcd рдЬрдмрдХрд┐ рд╣рдо рдЗрд╕рдореЗрдВ рд╣реИрдВ, рд╣рдо es6 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдм рдХреБрдЫ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрдмреЗрд▓рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@coballast рдореБрдЭреЗ рдЖрдкрдХреА browserify
рд╢рд╛рдЦрд╛ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдФрд░ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рд╛рдорд╛рди рдмрдирд╛рдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА
@lmcd рдореИрдВ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ред рдореИрдВ es5 рд╕рд╛рдорд╛рди рдХреЛ es6 рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреВрд▓рд┐рдВрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдБ es5 рдХреЛрдб рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╣рд╛рде рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╢реНрд░рдо рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЦрдЧреЛрд▓реАрдп рд╣реИред
@coballast рдореИрдВ 5to6
рдкрд╛рд╕ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛: https://github.com/thomasloh/5to6
@lmcd рдК рдЕрдЪреНрдЫрд╛ рдЦреЛрдЬ
рд▓реЗрдХрд┐рди рдЯреАрдмреАрдПрдЪ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛: рдкреА
@lmcd рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдкрд╛рдпрд╛ред рдпрд╣ рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬреЛ рдореИрдВ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдордЬреЗрджрд╛рд░ рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
@mrdoob рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрдкрдХреЗ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдЪрд╛рд░ рдХреНрдпрд╛ рд╣реИрдВ?
@anvaka рдлрд┐рд▓рд╣рд╛рд▓ рдореИрдВ WebGLRenderer
рдХреЛ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдорд╛рдирд╕рд┐рдХ рдмреИрдВрдбрд╡рд┐рдбреНрде рдирд╣реАрдВ рд╣реИ
рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреБрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ es6 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреЗрдмреЗрд▓ рдкреЙрд▓реАрдлрд┐рд▓ рдХреЗ рд╕рд╛рде рдЦреБрд╢реА рд╕реЗ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдпрд╣рд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╛рдж рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рдерд╛ рдФрд░ рди рд╣реА рдЕрднреА рдвреВрдВрдврд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдерд╛, рд╡реИрд╕реЗ рднреА рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ es6 рдЕрдм рдорд╛рдирдХреЛрдВ рдХреЗ рдореЛрд░реНрдЪреЗ рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ: "рдЖрдЦрд┐рд░рдХрд╛рд░, ECMA-262 рд╕рдВрд╕реНрдХрд░рдг 6 рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдЕрдиреБрдореЛрджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ 17 рдЬреВрди, 2015 рдХреЛ рдПрдХ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛" https://developer.mozilla.org/en-US/docs рдХрд╣рддреЗ рд╣реИрдВ
рдмрд╕ рдПрдХ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЯреВрд▓реАрдВрдЧ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЙрд╕ рдореЛрд░реНрдЪреЗ рдкрд░ рд╕реНрдерд┐рддрд┐ рдЕрдЪреНрдЫреА рд▓рдЧрддреА рд╣реИред
рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреБрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ es6 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреЗрдмреЗрд▓ рдкреЙрд▓реАрдлрд┐рд▓ рдХреЗ рд╕рд╛рде рдЦреБрд╢реА рд╕реЗ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдпрд╣рд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╛рдж рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рдерд╛ рдФрд░ рди рд╣реА рдЕрднреА рдвреВрдВрдврд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдерд╛, рд╡реИрд╕реЗ рднреА рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЗрдПрд╕ рдХрд╛ 47kb рднреА рд╣реИ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЖрдкрдХреЗ рд╢рд╛рдорд┐рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ es5 рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯ рдЕрдк рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рддреАрди.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ es6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рд░реЛрдХ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ; рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкреВрд░реЗ рдмреЛрд░реНрдб рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рд╛рдордиреЗ рдЖрдПрдВрдЧреАред
рдЖрд╣ - рдпрд╣рд╛рдБ рд╕рд╣реА рдЦрдбрд╝рд╛ рд╣реИ, рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ рдФрд░ рдРрд╕реЗ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдЕрднреА рднреА рдмреЗрд╣рддрд░ рд╣реИрдВред
рдЖрд╣ - рдпрд╣рд╛рдБ рд╕рд╣реА рдЦрдбрд╝рд╛ рд╣реИ, рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ рдФрд░ рдРрд╕реЗ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рдЕрднреА рднреА рдмреЗрд╣рддрд░ рд╣реИрдВред
es6 рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ es5 рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рддреЛрдбрд╝рдирд╛ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╕рд╛ рддреАрд░ => рдЕрдорд╛рдиреНрдп es5 рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░реНрд╕рд░ рдХреЛ рд╡рд┐рдлрд▓ рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд┐рдХрд╛рд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо, рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдЗрддреНрдпрд╛рджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред
рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреЗрдПрд╕ рдХрд╛ 47kb рднреА рд╣реИ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЖрдкрдХреЗ рд╢рд╛рдорд┐рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ es5 рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯ рдЕрдк рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╕рд╛ рддреАрд░ => рдЕрдорд╛рдиреНрдп es5 рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░реНрд╕рд░ рдХреЛ рд╡рд┐рдлрд▓ рдХрд░ рджреЗрдЧрд╛ рдФрд░ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдЬрдорд╛рдирдд рджреЗрдЧрд╛
es6 рдХреЛрдб рдХреЛ _build_ рдХреЗ рджреМрд░рд╛рди рдмрд┐рдирд╛ рдХрд┐рд╕реА рд░рдирдЯрд╛рдЗрдо рдкреЗрдирд▓реНрдЯреА рдХреЗ es5 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рдмреЗрдмреЗрд▓ рд╕реНрдЯреЗрдк рдЬреЛрдбрд╝рдиреЗ рдХреА рдмрд╛рдд рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд░реЛ рдлрдВрдХреНрд╢рди рдХреЛ рдмрд┐рдирд╛ рдкреЙрд▓реАрдлрд┐рд▓ рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдкреЗрдирд▓реНрдЯреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди es5 рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмреИрдмреЗрд▓ рдЗрд╕ es6 рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░реЗрдЧрд╛
function MyObj() {
this.step = 1;
this.increment = function ( arr ) {
return arr.map( v => v + this.step );
}
}
рдЗрд╕ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ:
function MyObj() {
this.step = 1;
this.increment = function (arr) {
var _this = this;
return arr.map(function (v) {
return v + _this.step;
});
};
}
рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреИрд╕реЗ es6 рдХрдХреНрд╖рд╛рдПрдВ, рдПрдХ рдЫреЛрдЯрд╛ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреА (рдЖрдк рдмреЗрдмреЗрд▓ рдкреНрд░рддрд┐рдХреГрддрд┐ http://babeljs.io/repl/ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ)ред
@mrdoob рд╕рдордЭ рдЧрдпрд╛ред рдХреНрдпрд╛ рдЖрдк npm рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рддреАрди.js рдХреЛ рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ?
рдореБрдЦреНрдп рддреАрди.js рднрдВрдбрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдЧрд╛: рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ рдХреБрдЫ рднреА рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдмрд┐рдЯреНрд╕ рдХреЛ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
рдпрд╣ рдЕрдЪреНрдЫрд╛ рд░рд╣реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдмреНрдпреЛрд░рд╛ рдирд╣реАрдВ рдкрддрд╛ред
рдмрд┐рдирд╛ рд░рдирдЯрд╛рдЗрдо рдкреЗрдирд▓реНрдЯреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди es6 рдХреЛрдб рдХреЛ es5 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рдмреЗрдмреЗрд▓ рд╕реНрдЯреЗрдк рдЬреЛрдбрд╝рдиреЗ рдХреА рдмрд╛рдд рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд░реЛ рдлрдВрдХреНрд╢рди рдХреЛ рдмрд┐рдирд╛ рдкреЙрд▓реАрдлрд┐рд▓ рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдкреЗрдирд▓реНрдЯреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди es5 рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмреИрдмреЗрд▓ рдЗрд╕ es6 рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░реЗрдЧрд╛
ES6 рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдЕрднреА рднреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░рдирдЯрд╛рдЗрдо рдкреЗрдирд▓реНрдЯреА рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ: http://www.incaseofstairs.com/2015/06/es6-feature-performance/ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдПред
рдореЙрдбреНрдпреВрд▓/рдПрдирдкреАрдПрдо/рдмреНрд░рд╛рдЙрдЬрд╝рд░рдлрд╝реА рдЖрджрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ
ES6 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдЪрд┐рдд рдореЙрдбрд░реНрдирд╛рдЗрдЬреЗрд╢рди рдкрд░ +1
+1 рдХрд┐рд╕реА рднреА рд╕рдордЭрджрд╛рд░ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо (commonjs, amd, es6) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдЪрд┐рдд рдореЙрдбрд░реНрдирд╛рдЗрдЬреЗрд╢рди рдкрд░
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЙрдордирдЬ рдФрд░ рдПрдПрдордбреА рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдмреА/рд╕реА рдЙрдиреНрд╣реЗрдВ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ
рдкрд╛рд░рджрд░реНрд╢реА рдХрджрдоред
рднрд╛рд╖рд╛ рдХрд╛ рдЕрдЧрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, ES6 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ,
рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЧрд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рдореВрд▓ рдХреЛрдб рдХреЛ рди рддреЛрдбрд╝реЗрдВред
рдХреНрдпрд╛ рдХреЛрдб рдмреЗрд╕ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд░рд┐рдПрдХреНрдЯрд░ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╣реИ?
рдирд╡реАрдирддрдо рдирд╣реАрдВ?
20 рдЬреБрд▓рд╛рдИ 2015 рдХреЛ рджреЛрдкрд╣рд░ 12:05 рдмрдЬреЗ, "рдХреБрдорд╛рд╡рд┐рд╕" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:
+1 рдХрд┐рд╕реА рднреА рд╕рдордЭрджрд╛рд░ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдЪрд┐рдд рдореЙрдбрд░реНрдирд╛рдЗрдЬреЗрд╢рди рдкрд░ ( рдХреЙрдордирдЬ, рдПрдПрдордбреА,
ES6)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЙрдордирдЬ рдФрд░ рдПрдПрдордбреА рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдмреА/рд╕реА рд╡реЗ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/4776#issuecomment -122990605ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ
рдкрд╛рд░рджрд░реНрд╢реА рдХрджрдоред
рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВред
рдХреНрдпрд╛ рдХреЛрдб рдмреЗрд╕ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд░рд┐рдПрдХреНрдЯрд░ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╣реИ?
рдирд╡реАрдирддрдо рдирд╣реАрдВ?
рдХреЙрдордирдЬ рд╕рд░рд▓ рд╣реИ рдФрд░ рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдкрд░ рдирд╣реАрдВ рдмрд┐рдХрд╛ рдХрд┐ 'рдирд╡реАрдирддрдо' === 'рдмреЗрд╣рддрд░'ред
ES6 [...] рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЧрд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛
рддреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдХреНрдпрд╛ рд╣рдо es6 рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЕрдЧрд░ рд╣рдо es6 рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдЧ es6 рдХреЛ PR'ing рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ @benadams рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ es6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдЧреИрд░-рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ 'рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо' рдФрд░ 'es6 рдлреАрдЪрд░реНрд╕' рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдЖрдк es6 рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЙрдордирдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕реЗ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмреНрд░рд╛рдЙрдЬрд░рд╛рдЗрдЬрд╝ / рдХреЙрдордирдЬ рдХреЗ рд▓рд┐рдП +1 - рдмреНрд░рд╛рдЙрдЬрд╝рд░рд┐рдлрд╝ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╕реАрдзрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЕрднреА рднреА рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╡реЗ рдЪрд╛рд╣реЗрдВ - рдпреВрдПрдордбреА рдпрд╣реА рд╣реИ, рдПрдПрдордбреА рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдВ (рдЬреИрд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ред рдЬреЗрдПрд╕), рдЬрд┐рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣рдо рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ CommonJS рдХреЛ (рдЬреИрд╕реЗ рдиреЛрдб + рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝) рдФрд░ рдПрдХ рд╡рд┐рдВрдбреЛ рдЧреНрд▓реЛрдмрд▓ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
PIXI.js рдЕрднреА-рдЕрднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╛рдЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рд╕рдм рдХреБрдЫ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ PIXI рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЙрдирдХрд╛ рд╕реЗрдЯрдЕрдк рдмрд╣реБрдд рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ @kumavis рджреВрд╕рд░реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВред
3D рдЗрдВрдЬрди рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рди рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реАрдлрд╛рдИ рдХрд░реЗрдВ рдФрд░ рди рд╣реА рдХреЙрдордирдЬ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрдбрд╝реА рдкрд╣реЗрд▓реА рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдШрдЯрдХреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдордирдорд╛рдиреА рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдбреЗрдЯрд╛ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд▓реЛрдбрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рд╛рде, рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдЙрдЯ-рдСрдл-рдХреЛрд░ рдШрдЯрдХ рдХреЛрдб рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХреА рдмрд╛рдд рд╣реЛрдЧреАред #6464 рдФрд░ #6557 рдореЗрдВ рдЗрди рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдордВрдерди рдХрд┐рдпрд╛ рдЧрдпрд╛ред
+1
+1
рдПрдХ рд╕рдВрдХрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ browserfy рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХ рддрдВрддреНрд░реЛрдВ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рддреЗрдЬреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ :) рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдмрджрд▓рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЖрдкрдХреЛ рдмрд╕ рд╣рд░ рдлрд╛рдЗрд▓ рдХреЗ рдКрдкрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ @requires
рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЧрд▓реНрдк рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдЦреБрдж рдХреА min.js рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд╛рдп рд╕рдм, рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╕реНрд╡рдЪреНрдЫ рдФрд░ рд╕рдВрд░рдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдордирдорд╛рдиреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░рдиреЗ рдХреА рд╕рдорд╛рди рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдореИрдВ рд╣рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛.рдЬреЗрдПрд╕ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред рдЗрд╕ рддрд░рд╣ рдореИрдВрдиреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдХреИрд╢рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП requ.js рдирд┐рд░реНрднрд░рддрд╛ рд╕рдорд╛рдзрд╛рди рдХреА рдЕрдиреБрдорддрд┐ рджреА .... рд╕рд╛рде рд╣реА рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╕рдВрд╕рд╛рдзрди 'рдмрдВрдбрд▓' рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдкрдиреА рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣рд╛рдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/wavesoft/three-bundles
(рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬрд▓реНрдж рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛)
рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЗрди рдкреНрд▓рдЧ-рдЗрди рдореЗрдВ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдЪрд░рдг рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛.рдЬреЗрдПрд╕ рдЕрдиреБрдХреВрд▓рдХ рдХреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдФрд░ рднреА рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓ рд╕рдХреЗред
рдЗрд╕ рдмрд╛рддрдЪреАрдд рдХреЛ рджреЗрдЦрдХрд░ https://twitter.com/defunctzombie/status/682279526454329344 рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ es6 рдореЙрдбреНрдпреВрд▓ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдорди рдореЗрдВ рдХреБрдЫ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред
рдореИрдВрдиреЗ рдХреЙрдордирдЬ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд┐рдПред
рдореЗрд░реЗ рдЕрдВрддрд┐рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░реАрдХреГрдд рдмрдВрдбрд▓ рдореЗрдВ src
рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╣рд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо 962K
рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ (рдореВрд▓ рдЕрдирдмреНрд░рд╛рдЙрдЬрд╝рд░реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг 885K
)ред
cloth
рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд▓рдХреНрд╖рд┐рдд рдирд┐рд░реНрдорд╛рдг рд╣реИ:
580K
(~44% рдЫреЛрдЯрд╛)431K
(~8% рдЫреЛрдЯрд╛) рдХреЗ рд╕рд╛рде рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛рдпрд╣рд╛рдБ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реИ: http://output.jsbin.com/yogoxawozuред рд░реЗрдВрдбрд░рд░реНрд╕ рдмрдВрдбрд▓ рдХрд╛ 40% рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ 10% рд╢реЗрдбрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмрдВрдбрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
instance of
рдЪреЗрдХ рдХреЛ рд╣рдЯрд╛рдирд╛ - рдЬрдм рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдм рднреА рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА type
- рд╣рдо рдЗрд╕реЗ рдкреВрд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредglslify
рджреЛ рдмрд╛рд░ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдЬрд┐рд╕реЗ рд╢реЗрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╢реЗрдбрд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдЖрдк рдкрд░рд┐рдгрд╛рдо рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
git clone --depth 1 --branch commonjs https://github.com/anvaka/three.js.git
cd three.js
npm i
# build backward compatible three.js library from commonjs modules.
# The output will be save into `build/three.min.js`. I'm using `.min.js` just
# to quickly verify examples. The actual file is not minified.
npm run build
# build cloth example
# the output is saved into ./examples/cjs/webgl_animation_cloth.bundle.js
npm run demo
рдРрд╕рд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ ES6 рдореЙрдбреНрдпреВрд▓ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдорди рдореЗрдВ рдХреБрдЫ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред
рдпрд╣ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХреЙрдордирдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рд╕рдорд░реНрдерди _never_ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЪреБрдирд╛рд╡ рдХреЗ рдмреАрдЪ рд╣реИ
D3 рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп ES6 рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдкрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ CommonJS рдореЙрдбреНрдпреВрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдиреЛрдб.рдЬреЗрдПрд╕ рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдереНрд░реА.рдЬреЗрдПрд╕ рдЬреИрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ), рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЫреЛрдЯреЗ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ https://github.com/rollup/three-jsnext рдкрд░ рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рд╣реИрдВ, рдФрд░ рдЬрдм рдпрд╣ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ (рдореБрдЭреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!) рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрдорд╛рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВред
рдореИрдВ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдмрдирд╛рдо es6 рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреЛрдЯ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдЪрд╛рд╣реЗ рдпрд╛
рд╡реЗ рдПрдХ рдорд╛рдирдХ рдирд╣реАрдВ рд╣реИрдВ, рд╡реЗ рдПрдХ рд╕рдореБрджрд╛рдп рдорд╛рдирдХ рд╣реИрдВред рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ
рдиреЛрдб рдореЗрдВ "рдореВрд▓ рд░реВрдк рд╕реЗ" рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдмреЗрдмреЗрд▓ рд╣реБрдХ рдХреЗ рд╕рд╛рде рджреЗрд╢реА рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЖрдкрдХреЗ рд░реЗрдкреЛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реВрдВрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЫреЛрдЯрд╛ рд╣реИ рдХреБрдЫ рдРрд╕рд╛ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд▓рд╛рдпрд╛ рдерд╛
рдпрд╣ рд╡рд╛рд░реНрддрд╛рд▓рд╛рдкред "рддреАрди.рдЬреНрдпрд╛рдорд┐рддрд┐" "рдЬреНрдпрд╛рдорд┐рддрд┐" рдмрди рдЬрд╛рддреА рд╣реИ рдЬреЛ рд╣реЛ рд╕рдХрддреА рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рдП" рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рд╕рд╛рде рд╣реА, рдЪреЗрдХ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЙрди рд╕рднреА рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реИ
рд╕рд╛рде рдореЗрдВред рдХреНрдпрд╛ . рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреА рднреАрдЦ рдирд╣реАрдВ рдорд╛рдВрдЧрдиреА рдЪрд╛рд╣рд┐рдП
рдпрд╣ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЪреАрдЬрд╝ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдлрд┐рд░ рдХреЛрдИ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдпрд╛ рдЯрд╛рдЗрдк рдЪреЗрдХ рдирд╣реАрдВ рд╣реИрдВред
1 рдЬрдирд╡рд░реА 2016 рдХреЛ рд░рд╛рдд 8:23 рдмрдЬреЗ, "рд░рд┐рдЪ рд╣реИрд░рд┐рд╕" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:
рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ es6 рдореЙрдбреНрдпреВрд▓ рдирд┐рдХрдЯ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
рднрд╡рд┐рд╖реНрдпред рдорди рдореЗрдВ рдХреБрдЫ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдПредрдпрд╣ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ CommonJS рдореЙрдбреНрдпреВрд▓
рд╕рдорд░реНрдерди _never_ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЪреБрдирд╛рд╡ рдмреАрдЪ рдореЗрдВ рд╣реИ
- рдПрдХ рдЧреИрд░-рдореЙрдбреНрдпреВрд▓рд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдПрдХ рддрджрд░реНрде рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд╣реИ
рдкреНрд░рдгрд╛рд▓реА, рдЬрд┐рд╕рдиреЗ рдЕрдм рддрдХ рддреАрди.рдЬреЗрдПрд╕ рдХреА рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рд╡рд┐рдХрд╛рд╕ рдкрд░ рдмреНрд░реЗрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ- рдХреЙрдордирдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЬрд┐рд╕рдореЗрдВ рдЪрдХреНрд░реАрдп рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдкреНрд░рд╡рдВрдЪрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ
рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдмрдбрд╝реЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ, рдпрд╛- ES6 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЬреЛ рддреАрди.js рдЬреИрд╕реЗ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ
рдЬрд┐рд╕рдореЗрдВ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ
рдЦрдирди рдпреЛрдЧреНрдп рдирд┐рд░реНрдорд╛рдг рд╕рдВрднрд╡ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрдиреНрд╣реЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рджреЗрдВрдЧреЗ,
рдФрд░ рд▓реЛрдбрд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╡рд┐рдЪрд┐рддреНрд░рддрд╛ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди
рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд▓реНрдкрдирд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рддреБрдЪреНрдЫ рд╣реЛрдЧреА
рдХреЙрдордирдЬреЗрдПрд╕ рдХреЛрдбрдмреЗрд╕ рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛редD3 рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп ES6 рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдкрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдХреЙрдордирдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдиреЛрдб.рдЬреЗрдПрд╕ рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЛ
рдереНрд░реА.рдЬреЗрдПрд╕ рдЬреИрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ), рдФрд░ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ
рдмрдирд╛рддрд╛ рд╣реИредрдореИрдВрдиреЗ at . рдкрд░ рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рд╣реИрдВ
https://github.com/rollup/three-jsnext , рдФрд░ рдЬрдмрдХрд┐ рдпрд╣ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рд╣реИ
рддреИрдпрд╛рд░ рд╣реИ (рдореБрдЭреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдЖрджрд┐ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!) UMD рдмрд┐рд▓реНрдб
рдпрд╣ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрдорд╛рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _smaller_ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/4776#issuecomment -168363092ред
рдХреНрдпрд╛ рдХреЙрдордирдЬреЗрдПрд╕ рдЕрднреА рднреА рдПрдХ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝рд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИ?
@cecilemuller рд╣рд╛рдБ - https://github.com/nolanlawson/rollup-comparison рджреЗрдЦреЗрдВред рдХреЙрдордирдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЖрдк рдкреНрд░рддрд┐-рдореЙрдбреНрдпреВрд▓ рд▓рд╛рдЧрдд рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВ (рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдкреВрд░реЗ рдмрдВрдбрд▓ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдЖрдпрд╛рдд рдХреЛ рдлрд┐рд░ рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓рд░ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рджрдВрдбрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдкреНрд░рддрд┐-рдмрдВрдбрд▓ рд▓рд╛рдЧрдд (рдЗрд╕реЗ рдПрдХ Node.js рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рдФрд░ рдЕрдиреНрдп рд▓рд╛рдЧрддреЗрдВ рдЬреИрд╕реЗ рдХрд┐ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБ рд╕рдВрдкрддреНрддрд┐ рдирд╛рдо рдЬреЛ ES6 рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдиреНрдпреВрдирддрдо рдЪрд░ рдирд╛рдо рд╣реЛрдВрдЧреЗред ES6 рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЛ рд╕рдЪрдореБрдЪ рд╢реВрдиреНрдп рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдореЗрдВ рдХреБрдЫ рдУрд╡рд░рд╣реЗрдб рд╣реЛрдЧрд╛ рддреЛ es5 рддрдХред рд╡рд░реНрддрдорд╛рди рдореЗрдВ,
рдореИрдВ рдмреЗрдмреЗрд▓ рдХреЗ рд╕рд╛рде рд╡реЗрдмрдкреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдмрд╣реБрдд рдХрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдкреНрд░рддрд┐ рдореЙрдбреНрдпреВрд▓ рд▓рд╛рдЧрдд рд╣реИ
рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ s рдлрдВрдХреНрд╢рди рдореЗрдВ рднреА рд▓рд┐рдкрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рдирд┐рд░реНрднрд░рддрд╛ рдлрд╛рдЗрдирд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ
рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдХреЛрдб, рддреЛ рдпрд╣ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдореВрд▓ рд░реВрдк рд╕реЗ 'рдЖрдпрд╛рдд' рд╕реЗ "var a=f(5)" рдЬреИрд╕рд╛ рдХреБрдЫ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛
"./geometry" рд╕реЗ рдЬреНрдпрд╛рдорд┐рддрд┐;'
рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рдФрд░ рднреА рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛
рдХреЛрдб рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рдЗрддрдирд╛ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред
2 рдЬрдирд╡рд░реА 2016 рдХреЛ рд╕реБрдмрд╣ 5:53 рдмрдЬреЗ, "рд░рд┐рдЪ рд╣реИрд░рд┐рд╕" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:
@cecilemuller https://github.com/cecilemuller рд╣рд╛рдВ - рджреЗрдЦреЗрдВ
https://github.com/nolanlawson/rollup-comparisonред рдХреЙрдордирдЬреЗрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде
рдЖрдк рдкреНрд░рддрд┐-рдореЙрдбреНрдпреВрд▓ рд▓рд╛рдЧрдд рдХрд╛ рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВ (рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ,
рдФрд░ рдкреВрд░реЗ рдмрдВрдбрд▓ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдЖрдпрд╛рддреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓рд░ рдХреЛрдбрдмреЗрд╕ рдХреЗ рд▓рд┐рдП рджрдВрдбрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдкреНрд░рддрд┐-рдмрдВрдбрд▓ рд▓рд╛рдЧрдд (рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдПрдХ Node.js рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рдФрд░ рдЕрдиреНрдп рд▓рд╛рдЧрддреЗрдВ рдЬреИрд╕реЗ рдХрд┐ рдЕрдЪреВрдХ
рд╡рд╕реНрддреБ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдЬреЛ ES6 рдореЗрдВ рдиреНрдпреВрдирддрдо рдЪрд░ рдирд╛рдо рд╣реЛрдВрдЧреЗ
рдореЙрдбреНрдпреВрд▓ред ES6 рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЛ рд╕рдЪрдореБрдЪ рд╢реВрдиреНрдп рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/4776#issuecomment -168394376ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдореЗрдВ рдХреБрдЫ рдУрд╡рд░рд╣реЗрдб рд╣реЛрдЧрд╛ рддреЛ es5
рдпрджрд┐ рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ import
рдФрд░ export
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреЛрдб рдХреЛ рдмреИрдмреЗрд▓ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдЕрдиреНрдп ES6 рд╕реБрд╡рд┐рдзрд╛рдУрдВ (рдЬреИрд╕реЗ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдмреНрд▓реЙрдХ рд╕реНрдХреЛрдкрд┐рдВрдЧ рдФрд░ рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдЗрддреНрдпрд╛рджрд┐) рдЬреЛрдбрд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП import
рдФрд░ export
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдУрд╡рд░рд╣реЗрдб рд╣реИред D3 рдФрд░ PouchDB рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рджреЛ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬреЛ import
рдФрд░ export
рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ Babel-less ES5 рд╣реИрдВ, рдФрд░ рддреАрди-jsnext рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рд╣рдо рд╕рднреА рдХрд╛ рдПрдХ рд╣реА рд╡рд┐рдЪрд╛рд░ рдерд╛ред рд▓реЙрд╢ рдЬреИрд╕реА рдХрд╣рд╛рдиреА рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ _foo_ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддреАрди-рд╡реЗрдХреНрдЯрд░ 2) рдХреЗ рд▓рд┐рдП рдПрдХ _three-foo_ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореЙрдбреНрдпреВрд▓рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреЛрдб рдореЗрдВ рд▓рдЧрднрдЧ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рднрд╛рд╡ рдХреЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЬреЛ рд▓реЛрдЧ npm рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░
рдореИрдВ рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЬрд░реВрд░рдд рд╣реИред рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИрдВред
рдХреЗрд╡рд▓ рдПрдХ рдмрдбрд╝рд╛ рд╕рдореБрджрд╛рдп рд╣реИ :)
рдореИрдВрдиреЗ рдХрд┐рд╕реА рдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реБрдП рдирд╣реАрдВ рджреЗрдЦрд╛:
рд▓реЙрд╢ рд▓реЛрдбрд╛рд╢ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рдХреЗ рддрд╣рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ; рдЖрдк рдХреИрдм
рдЗрд╕рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд▓реЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВред рддреАрдирдЬ рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдПрдХ рд╡реНрдпрд╛рдкрдХ . рд╣реИ
рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд╛рдХреА рдХреЗ рдмрд┐рдирд╛ рдмреЗрдХрд╛рд░ рд╣реИред рдХреБрдЫ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ
рдЬрд┐рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рд╣рдорд╛рд░реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ
рдЬреНрдпрд╛рдорд┐рддрд┐ рдЬрдирд░реЗрдЯрд░, рд▓реЗрдХрд┐рди рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдирд┐рдХрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ
рдореВрд▓ рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИ, рд╕рдВрднрд╡рддрдГ рд╕рдЯреАрдХ рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓рд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдирдХреА рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП
рдЖрдХрд╛рд░, рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдФрд╕рдд рджрд░реНрдЬреЗ рдХреЗ рд▓рд╛рдн рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдХрд╛ рд╕рд┐рд░рджрд░реНрдж рдкреИрджрд╛ рдХрд░реЗрдЧрд╛ред
рдХреНрдпрд╛ рд╢реНрд░реА рдбреВрдм рдХреЛ рдЙрд╕ рдкреНрд░рдХреГрддрд┐ рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдордВрдЬреВрд░реА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛
рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреБрдХреНрдд рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЕрдиреБрд░рдХреНрд╖рдХ рддреАрдиjs рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП-*
рдкреИрдХреЗрдЬред
рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореЙрдбреНрдпреВрд▓рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╕рдордЭрджрд╛рд░реА рд╣реИ
рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдгред рдЗрд╕рдХреЗ рд╕рд╛рде рдХрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдереЗ
рд▓рдХреНрд╖реНрдп, рд▓реЗрдХрд┐рди рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред
6 рдорд╛рд░реНрдЪ 2016 11:39 рдкреВрд░реНрд╡рд╛рд╣реНрди рдХреЛ, "рдЬрд┐рдпрд╛рдирд▓реБрдХрд╛ рдХрд╛рд╕рд╛рддреА" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:
рдареАрдХ рд╣реИ, рд╣рдо рд╕рднреА рдХрд╛ рдПрдХ рд╣реА рд╡рд┐рдЪрд╛рд░ рдерд╛ред рдРрд╕реА рдХрд╣рд╛рдиреА рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛
рд▓реЙрд╢рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ _foo_ (рдХреЗ рд▓рд┐рдП) рдХреЗ рд▓рд┐рдП рдПрдХ _three-foo_ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ
рдЙрджрд╛рд╣рд░рдг рддреАрди-рд╡реЗрдХреНрдЯрд░ 2) рдЬрд┐рд╕реЗ рдореЙрдбреНрдпреВрд▓рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓рдЧрднрдЧ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реИ
рдХреЛрдб, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рднрд╛рд╡ рдХреЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЬреЛ рд▓реЛрдЧ npm рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ @mrdoob . рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
https://github.com/mrdoob рдЪреВрдВрдХрд┐ рд╡рд╣ рдЗрд╕ рдорд╣рд╛рди рдХреГрддрд┐ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИрдВ
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╡рд╣ рдлрд┐рд░ рд╕реЗ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЬреИрд╕реЗ in
_babel_, рдкреНрд░рдХрд╛рд╢рдХ рдХреЛ рдЙрд╕реЗ рд▓рд┐рдП рдЧрдП npm рдирд╛рдо рд╕реНрдерд╛рди рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПредрдореИрдВ рдЙрди рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЬрд░реВрд░рдд рд╣реИред рдЪрд▓реЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИрдВред
рдХреЗрд╡рд▓ рдПрдХ рдмрдбрд╝рд╛ рд╕рдореБрджрд╛рдп рд╣реИ :)
-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/4776#issuecomment -192970867ред
@mattdesl : рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рддреАрди-рд╢реЗрдбрд░-рдПрдлрдПрдХреНрд╕рдПрдП рддреАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡реЗрдХреНрдЯрд░ 2 рдФрд░ рддреАрдиред рдмрдирд╛рд╡рдЯ,
@HMUDesign : рдореИрдВ рдЖрдкрдХреА рд╢рдВрдХрд╛рдУрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдореБрдЭреЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреА рд╕рд▓рд╛рд╣ рд╕реБрдиреВрдВрдЧрд╛, рдЧрд┐рдЯрд╣рдм рдпреВрдЖрд░рдПрд▓ рд╕реЗ рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЙрдиреНрд╣реЗрдВ рдкрд╡рд┐рддреНрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдпрд╛, рдЯреНрд░реИрдХрдмреЙрд▓ рдХрдВрдЯреНрд░реЛрд▓ рдлреЙрд░реНрдо рд╢реБрд░реВ рдХрд░рдирд╛ рдЬреЛ рд╡реЗрдХреНрдЯрд░ 2, рд╡реЗрдХреНрдЯрд░ 3, рдХреНрд╡рд╛рдЯрд░рдирд┐рдпрди рдЖрджрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рд╕рд░реНрдХреБрд▓рд░ рдбрд┐рдкреЛ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рдХреНрд╕ 4 рд╡реЗрдХреНрдЯрд░ 3 рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд)ред рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ lib (рдпрд╛рдиреА рддреАрдиjs) рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рдЕрдлрд╝рд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдкреИрдЯрд░реНрди рдЗрд╕рдХреЗ рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдЬреИрд╕реЗ svg.js, vvvvjs, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ x3dom рдХреЗ рд╕рд╛рде рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХ рдЗрд╕ рдХрдЯреНрдЯрд░рдкрдВрдереА рдкрд╕рдВрдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реИрдВ, рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрдкреИрдо рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛: рд╡реИрд╕реЗ рдореИрдВрдиреЗ рддреАрди-рдЯреНрд░реИрдХрдмреЙрд▓ рдирд┐рдпрдВрддреНрд░рдг рд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреАред
@fibo ES6 рдореЙрдбреНрдпреВрд▓ рдкреИрдЯрд░реНрди рдореЗрдВ
рдореИрдВ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реВрдВ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рд╣реИ: https://github.com/kamicane/three-commonjsify рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЖрдо рдЬреЗрдПрд╕ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ред
@drcmda рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рджреВрдВрдЧрд╛
рдореЙрдбреНрдпреВрд▓рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП +1ред
+1
+1
@drcmda рд╕рд╣реА рд╣реИред ES6 рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрдЯреЗрдк рдФрд░ рдПрдХ рдПрдХреНрдЬрд╝реАрдХреНрдпреВрдЯ рд╕реНрдЯреЗрдк рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕рд░реНрдХреБрд▓рд░ рд░реЗрдлрд░реЗрдВрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕реЗ рд╣реА рдЖрдк рд╕реАрдзреЗ рдореЙрдбреНрдпреВрд▓ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн (рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ) рд╕реЗ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд░рдирдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд╣рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рдиреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░реЗрдЧрд╛ред рдЬрдм рддрдХ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд░рдирдЯрд╛рдЗрдо рдирд┐рд╖реНрдкрд╛рджрди рдЖрджреЗрд╢ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ, рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдмрдЬрд╛рдп рд╡реЗрдмрдкреИрдХ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред
@gionkunz рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреИрдЯрд░реНрди рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдмреАрд╕реА рдореЗрдВ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрдн рд╣реИрдВ рдЬрд╣рд╛рдВ рд╕реНрдХреНрд░реИрдЪ рдЪрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реИ
рд╡реЗрдмрдкреИрдХ 2 рдХрд╛ рдмреАрдЯрд╛ рдЕрднреА рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (https://twitter.com/TheLarkInn/status/7479557230033322368/photo/1), рдЗрд╕рд▓рд┐рдП es6 рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреЛ рдмрдВрдбрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреЗрдбрд╝ рдХреЗ рд╣рд┐рд▓рдиреЗ рд╕реЗ рднреА рдлрд╛рдпрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
@mrdoob
рдХреНрдпрд╛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрдпрд╛рди рдЖрдпрд╛ рд╣реИ? рдХрдИ рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╣рдордиреЗ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ ES5 рдФрд░ рдЧреНрд▓реВ-рдХреЙрдиреНрд╕рдЯреНрд╕ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдлреА рдмреБрд░рд╛ рд╣реИ рдХрд┐ рдЖрдзреБрдирд┐рдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдереНрд░реА рдХрд┐рддрдирд╛ рд▓рд╛рдЗрди рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЬреЛ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рд╢рд╛рдпрдж рд╣рдо 10% рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рднреА рдпрд╣ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╢рд┐рдк рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдмрд╕реЗ рдмрдбрд╝реА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЬреАрдердм рдкрд░ _the_ рд╕рдмрд╕реЗ рдкрд╕рдВрджреАрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ - рдореБрдЭреЗ рдкреВрд░реА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╣рдореНрдо, рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдХреМрди рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреМрди рд╕реЗ рдирд╣реАрдВред рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рджрдВрдб рдХреНрдпрд╛ рд╣реИрдВред
рдЕрд╕рд▓ рдореЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд░реНрдерди рдПрдХ рдЧреИрд░-рдореБрджреНрджрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдЗрд╕рд╕реЗ рднреА рдХрдо рдЕрдм)ред рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдЙрд╕ ES6 рдХреЛрдб рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ es5 рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд░рддрд╛ рд╣реИ (рдХрднреА-рдХрднреА рдореВрд▓ ES5 рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИ)ред рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд╛рд░рджрд░реНрд╢реА рдЪреАрдЬреЗрдВ рдмрдбрд╝реА рд╣реЛрддреА рд╣реИрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ: рдЬреЗрдирд░реЗрдЯрд░ рдФрд░ рдПрд╕рд┐рдВрдХ рдлрд╝рдВрдХреНрд╢рди), рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЙрдирд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд╣ рджрдВрдб рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ @drcmda рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдЕрднреА рднреА рдПрдХ рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛ (рдФрд░ рдЙрд╕ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЬреЛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЙрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛), рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╣рдорд╛рд░реА рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬреЛ рдЬрд╝рд░реБрд░рдд рд╣реИред рдХрд╛ рдкреВрд░рд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрд┐, рдЕрдВрддрд░-рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордп рдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЬреЛ рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЖрдпрд╛рдд/рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд╕рд╛рде рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ (рд╡реЗ рдЕрднреА рднреА рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрднреА рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЧрдбрд╝рдмрдбрд╝ рдХрд░реЗрдВ)ред
рдХреБрдЫ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╣реИрдВред рдореЗрд░рд╛ рд╡реЛрдЯ рд╡реЗрдмрдкреИрдХ рд╣реЛрдЧрд╛ (рдЬреЛ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмреЗрдмреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред рдмреЗрдмреЗрд▓ рдХреЗ рд╕рд╛рде, рдЖрдк рдХрд╕реНрдЯрдо рд▓реЛрдбрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╢реЗрдбрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдП рдЪрдВрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ #include рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ glsl рдХреЛрдб рдореЗрдВ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рд╢реЗрдбреНрд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА)ред рдпрд╣ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдорд╛рди рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рдХреЛрдИ рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдирд╣реАрдВ), рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рдореИрдВ рдореЙрдбрд░реНрдирд╛рдЗрдЬреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд╕рдорд░реНрдерди (рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рд╣рд╛рдпрддрд╛) рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╣рдо рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдореЗрдВ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдпрд╣ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрд╕ рд╣рдж рддрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рддрдирд╛ рдЖрдк рдХрд░рддреЗ рд╣реИрдВред
рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд╛рд░рджрд░реНрд╢реА рдЪреАрдЬреЗрдВ рдмрдбрд╝реА рд╣реЛрддреА рд╣реИрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ: рдЬреЗрдирд░реЗрдЯрд░ рдФрд░ рдПрд╕рд┐рдВрдХ рдлрд╝рдВрдХреНрд╢рди), рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЙрдирд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд╣ рджрдВрдб рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред
рдХрд┐рддрдирд╛ рдмрдбрд╝рд╛?
рд╕рд╛рде рд╣реА, рдЖрдкрдиреЗ рдкреНрд░рджрд░реНрд╢рди рджрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХреАред рддреЛ рдХреНрдпрд╛ рдпрд╣ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ?
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, ES6 рдЖрдпрд╛рдд рдЕрднреА рднреА рдХрд┐рд╕реА рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ , рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЙрдбреНрдпреВрд▓ рд░рд┐рдлреИрдХреНрдЯрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рд╣реИ рдирд╛?
рд░реЛрд▓рдЕрдкрдЬ рдЬреИрд╕реЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЛ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реЗ рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рди рднреВрд▓реЗрдВ, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрди рд╕рднреА рдирд┐рд░реНрдпрд╛рддреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдЧрд╛ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред (рдЬреЛ JSPM рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ)
рдмреЗрдмреЗрд▓-рдкреЙрд▓реАрдлрд┐рд▓ рдкреИрдХреЗрдЬ, рдЬреЛ рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ
рдЬрдирд░реЗрдЯрд░ (рдЬреЛ рд╢рд╛рдпрдж рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рднреА рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛) рдпрд╛ async
рдХрд╛рд░реНрдп (рдЬреЛ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛
рдпрд╛ рддреЛ), рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд▓рдЧрднрдЧ 50k рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░, рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдкреНрд░рджрд░реНрд╢рди рдХреА рдмрд╛рдд рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреМрди рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддреАрд░ рдХреЗ рдХрд╛рд░реНрдп рдереЛрдбрд╝реЗ рдзреАрдореЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрд╛рдЗрдВрдб, рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдореЗрдВ рдереЛрдбрд╝реА рдзреАрдореА рд╣реЛрддреА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐
рддрддреНрдХрд╛рд▓ рд╕рдордп рд╕рдорд╛рди рд╣реИред https://kpdecker.github.io/six-speed/
ES6 рдЖрдпрд╛рдд/рдирд┐рд░реНрдпрд╛рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╣ рдПрдХ рдЧреИрд░-рдореБрджреНрджрд╛ рд╣реИред рдЙрддреНрдкрд╛рдж рдЙрддреНрдкрд╛рджрди рд╣реЛрдЧрд╛
рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреАрдЫреЗ рдХреА рдУрд░ рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг), рд▓реЗрдХрд┐рди
рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдФрд░ рдмрдирд╛ рджреЗрдЧрд╛
рдЖрдВрддрд░рд┐рдХ рдШрдЯрдХ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдпред
рдзреНрдпрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдФрд░ рдмрд╛рдд рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг рдЖрдХрд╛рд░ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЬреНрдпрд╛рдорд┐рддрд┐ рдЬреИрд╕реА рдЪреАрдЬреЗрдВ,
рд╕рд╛рдордЧреНрд░реА, рдореЗрд╖, рдЖрджрд┐ рддреАрди рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рдЬрдм рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛,
рддреАрди.рдЬреНрдпрд╛рдорд┐рддрд┐, рддреАрди.рд╕рд╛рдордЧреНрд░реА, рддреАрди.рдореЗрд╖ рдЖрджрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ
рдХреЛрдбред рдореЙрдбреНрдпреВрд▓рд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде, рдЙрди рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓реЗрдЧрд╛
var Geometry = require('./geometry');
рдлрд┐рд░ рдХреЗ рд╕рдВрджрд░реНрдн рд╣реИрдВ
рдкрд░рд┐рд╡рд░реНрддрдиреАрдп Geometry
рдмрд╛рдж рдореЗрдВред рдлрд┐рд░ рдорд┐рдиреАрдлреИрд╕рд┐рдЯреЙрди рдореЗрдВ, Geometry
рдФрд░ require
рджреЛрдиреЛрдВ рдХреЛ рдПрдХрд▓ рд╡рд░реНрдгреЛрдВ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, './geometry' рдХреЛ a . рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрдЦреНрдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрд╛рдлреА рдмрдЪрдд рд╣реЛрддреА рд╣реИред рдиреИрдкрдХрд┐рди рдЧрдгрд┐рдд: рдЫреЛрдЯрд╛
рдмрд┐рд▓реНрдб 511,794 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ 2942 рд╕рдВрджрд░реНрдн рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
THREE\.[A-Z][a-zA-Z]+
ред рдЗрди рд╕рднреА рдХреЛ рдПрдХ рд╣реА рд╡рд░реНрдг рд╕реЗ рдмрджрд▓рдирд╛
рд▓рдЧрднрдЧ 10% рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдореЗрдВ рдХрдореА (464,782 рддрдХ) рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдкред (рдж gziped
рдЖрдХрд╛рд░ рдХреНрд░рдорд╢рдГ 117,278 рдФрд░ 110,460 рд╣реИрдВ, 6% рдХреА рдХрдореА)ред рдирд┐рд░реНрдорд╛рдг
рдЗрд╕реЗ рдФрд░ рднреА рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд░реЛрд▓рдЕрдк (рдЬрд┐рд╕рдиреЗ рдЕрдВрддрд┐рдо рдмрд┐рд▓реНрдб рд╕реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рдХреЛрдб рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ
jspm рдХреЗ рд╕рд╛рде, webpack2 рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдЧрд╛ (рдФрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде)ред рдЕрдЧрд░ рдЪреАрдЬреЗрдВ рдореЙрдбреНрдпреВрд▓рд░ рд░реВрдк рд╕реЗ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╣реЛрдЧрд╛
рд╕рд╣рд╛рдпрдХ, рдпрджреНрдпрдкрд┐ред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрдм рддрдХ рдХреЛрдб рдХреЛ рдЯреНрд░рд╛рдВрд╕рдкрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдмреЗрдмреЗрд▓, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рд╕ glsl рд▓реЛрдбрд░ рдХрд╛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ
рдкрд╣рд▓реЗ рднреА рд╡реЗрдмрдкреИрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рдЧреБрд░реБ, рдкрд░ 1:28 PM рдкрд░ рдЬреБрд▓рд╛ 7, 2016 рдкрд░ Mr.doob notifications@github.com рд▓рд┐рдЦрд╛ рд╣реИ:
рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд╛рд░рджрд░реНрд╢реА рдЪреАрдЬреЗрдВ рдмрдбрд╝реА рд╣реЛрддреА рд╣реИрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ:
рдЬрдирд░реЗрдЯрд░ рдФрд░ рдПрд╕рд┐рдВрдХ рдлрд╝рдВрдХреНрд╢рди), рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЙрдирд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдЧрд╛
рд╡рд╣ рджрдВрдбредрдХрд┐рддрдирд╛ рдмрдбрд╝рд╛?
-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mrdoob/three.js/issues/4776#issuecomment -231197171,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe/AA71cqAqmgxsUjpvamnI_xyL2wpzeWrdks5qTWGBgaJpZM4B4aA7
.
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕реА рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ D3 рдХреЗ рд▓рд┐рдП рдЪрд░реНрдЪрд╛ рд╕реВрддреНрд░ рд╣реИ: https://github.com/d3/d3/issues/2220ред D3 4.0 рдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ES6 рдЖрдпрд╛рдд/рдирд┐рд░реНрдпрд╛рдд рдХреЛ рдЕрдкрдирд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА ES5 (https://github.com/d3/d3/issues/2220#issuecomment-111655235) рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИред
рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк @jpweeks!
рддреЛ... рдЗрд╕ рдЖрдпрд╛рдд/рдирд┐рд░реНрдпрд╛рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде... object instanceof THREE.Mesh
рдЬреИрд╕реА рд╕рд╛рдордЧреНрд░реА рдХреИрд╕реА рджрд┐рдЦреЗрдЧреА?
@mrdoob
import/export
рдореЙрдбреНрдпреВрд▓ рдШреЛрд╖рд┐рдд рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдб рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд / рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛:
src/рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕/Mesh.js
// Mesh class, stays the same as today (except the export part)
var Mesh = function ( geometry, material ) {
// ...
}
export default Mesh
рд╕реНрд░реЛрдд/рддреАрди.рдЬреЗрдПрд╕
// Library entry point, exports all files using som bundling tech
// In a "THREE" namespace for browsers
// As import three from 'three' in node
import Mesh from './objects/Mesh'
export {Mesh} // All three objects, such as Geometry, Material etc..
рдПрдкреНрд▓реАрдХреЗрд╢рди.рдЬреЗрдПрд╕
// In node
import {Mesh} from 'three'
var mesh = new Mesh(geo, mat)
console.log(mesh instanceof Mesh) // true
Client.js
// In a browser
var mesh = new THREE.Mesh(geo, mat)
console.log(mesh instanceof THREE.Mesh) // true
рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реИ @GGAlanSmithee! рдзрдиреНрдпрд╡рд╛рдж!
рдореИрдВ рдПрдХ рджреГрд╢реНрдп рд╡реНрдпрдХреНрддрд┐ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдЫрджреНрдо рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореБрдЭреЗ рдкрд╛рда рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭрд╛рддреЗ рд╣реИрдВ ЁЯШЕ
рдареАрдХ рд╣реИ, рддреЛ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ...
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?
рдареАрдХ рд╣реИ, рддреЛ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ...
рддреБрдо рдореБрдЭреЗ рдорд┐рд▓ рдЧрдП! рдЪреВрдВрдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдЬреАрд╡рдВрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рддреАрди-рдЬреЗрдПрд╕рдиреЗрдХреНрд╕реНрдЯ рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ KeyframeTrack
) рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЫреЛрдЯрд╛ рдирд┐рд░реНрдорд╛рдг рд╡рд░реНрддрдорд╛рди рд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ (рдпреВрдПрдордбреА рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдм рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИред
рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓рд╛ рд╣реИ: #9310
@mrdoob
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдХрдореЛрдмреЗрд╢ рддреАрди рдХреА рддрд░рд╣ рд╕рдВрд░рдЪрд┐рдд рд╣реИред рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рдореЙрдбреНрдпреВрд▓рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреЛрдбрдмреЗрд╕ ES6 рд╣реИ рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдкрдХреА рдЪрд┐рдВрддрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИред
рдЖрдк рдЗрд╕реЗ npm _as is_ рдкрд░ рд╢рд┐рдк рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ + рдПрдХ рд╕рдВрдХрд▓рд┐рдд рдЧреНрд▓реЛрдмрд▓-рдиреЗрдорд╕реНрдкреЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЛрдиреЛрд▓рд┐рде (рддреАрди.рдЬреЗрдПрд╕)ред рдЬрд┐рд╕реЗ рдЗрд╕рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд╣ рдмрдВрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
/src
classA.js
classB.js
classC.js
/index.js
/browser.js
index.js рдмрд╕ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ:
export ClassA from './src/classA';
export ClassB from './src/classB';
export ClassC from './src/classC';
рддреЛ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ npm lib рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдФрд░ рд╣рд▓рдЪрд▓ рдХреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
// all exports from index.js will be under: mylib.ClassA, etc.
import * as mylib from 'libname':
// selected exports from index.js
import { ClassA, ClassC } from 'libname';
// or, specific modules
import ClassB from 'libname/src/classB'
browser.js рдкреИрдХреЗрдЬ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдВрдХрд▓рд┐рдд рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛ред рдЖрдо рддреМрд░ рдкрд░ рдмреЗрдмреЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдИрдПрд╕ 5 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ-рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд░реЛрд▓рдЕрдк, рд╡реЗрдмрдкреИрдХ рдЖрджрд┐ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
@mrdoob рдпрд╣ рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╕рд╡рд╛рд░реА рд░рд╣реА
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рддреБрдо рдореБрдЭреЗ рдорд┐рд▓ рдЧрдП! рдЪреВрдВрдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдЬреАрд╡рдВрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рддреАрди-рдЬреЗрдПрд╕рдиреЗрдХреНрд╕реНрдЯ рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛
KeyframeTrack
) рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЫреЛрдЯрд╛ рдирд┐рд░реНрдорд╛рдг рд╡рд░реНрддрдорд╛рди рд╕реЗ рдЫреЛрдЯрд╛ рд╣реИ (рдпреВрдПрдордбреА рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрд▓рдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдм рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИред