Skip to content
mrdoob edited this page Jan 4, 2013 · 60 revisions

##r54 → r55dev

  • Matrix3.multiplyVector3() changed to Vector3.applyMatrix3()
  • Matrix4.multiplyVector3() changed to Vector3.applyMatrix4()
  • Matrix4.multiplyVector4() changed to Vector4.applyMatrix4()
  • Quaternion.multiplyVector3() changed to Vector3.applyQuaternion()
  • Renamed Color methods:
    • .lerpSelf() to .lerp()
  • Renamed Vector2, Vector3 and Vector4 methods:
    • .add() to .addVectors()
    • .addSelf() to .add()
    • .sub() to .subVectors()
    • .subSelf() to .sub()
    • .minSelf() to .min()
    • .maxSelf() to .max()
    • .clampSelf() to .clamp()
    • .lerpSelf() to .lerp()
  • Renamed Matrix4 methods:
    • .multiply() to .multiplyMatrices()
    • .multiplySelf() to .multiply()
  • Renamed Quaternion methods:
    • .multiply() to .multiplyQuaternions()
    • .multiplySelf() to .multiply()
  • Moved GeometryUtils.explode to ExplodeModifier
  • Moved GeometryUtils.tessellate to TessellateModifier

##r53 → r54

  • Sprite material properties are now in SpriteMaterial, used like this new THREE.Sprite( new THREE.SpriteMaterial( { color: 0xff0000, map: texture, alphaTest: 0.5 } ) ).
  • Renamed migrated sprite material properies: Sprite.affectedByDistance => SpriteMaterial.sizeAttenuation and Sprite.mergeWith3D => SpriteMaterial.depthTest
  • Renamed renderer.shadowMapCullFrontFaces => renderer.shadowMapCullFace (default value true => THREE.CullFaceFront, other option false => THREE.CullFaceBack).
  • Renamed color.getContextStyle to color.getStyle.
  • Rectangle replaced with Box2.
  • UV replaced with Vector2.
  • Matrix4.makeTranslation and Matrix4.makeScale now take Vector3 instead of three scalars
  • Moved SubdivisionModifier out of the build to examples/js/modifiers.

##r52 → r53

  • Sprite now doesn't get anymore size automatically from the image size, use sprite.scale.set( imageWidth, imageHeight, 1.0 ) to achieve the old behavior
  • SceneLoaderand scene format now use widthSegments, heightSegments, depthSegments instead of segmentsWidth, segmentsHeight, segmentsDepth for definitions of plane, cube and sphere geometries
  • SceneLoaderand scene format now use material property with single material id string instead of materials array for meshes
  • MeshPhongMaterial now uses perPixel = true by default
  • WebGLRenderer constructor doesn't use anymore maxLights parameter: shaders will be generated with the exact number of lights in the scene (it's now up to the application layer to make sure shaders compile on a particular system)
  • ColorUtils.rgbToHsv() got moved into Color.getHSV()
  • Geometry no longer has a materials property. MeshFaceMaterials usage is now like this: new THREE.Mesh( geometry, new THREE.MeshFaceMaterials( [ material1, material2 ] ) ). Meaning that face.materialIndex will map the array passed to MeshFaceMaterials.
  • Loader callbacks which previously only had geometry parameter, are now also passed a second one: materials: loader.load( 'file.js', function ( geometry, materials ) {} ).
  • GeometryUtils.clone() is now a method in Geometry.

##r51 → r52

  • ShaderExtras have been split in a different files. CopyShader, FXAAShader, NormalShader, etc
  • Replaced SceneUtils.traverseHierarchy with object.traverse.
  • Removed SceneUtils.showHierarchy. Use object.traverse( function ( child ) { child.visible = false } ) instead.
  • Moved *Controls to examples/js/controls.
  • Split SceneUtils.cloneObject into *.clone()

##r50 → r51

  • CameraHelper API changes: helper is not anymore child of camera, instead it uses reference to camera world matrix
  • texture uniform changes: texture units are now assigned automatically, texture object goes to value property instead of texture one { type: "t", value: 0, texture: map } => { type: "t", value: map }
  • normalScale uniform in normal map shader is now Vector2 (to be able to invert separately x and y to deal with different tangent bases)
  • CTMLoader.load and CTMLoader.loadParts now use single parameter object for useWorker and useBuffers: loader.load( url, callback, useWorker, useBuffers ) => loader.load( url, callback, { useWorker: true, useBuffers: true } )
  • CTMLoader now creates BufferGeometry by default, set useBuffers parameter to false if you need Geometry
  • type for non-procedural geometries changed in the scene format: ascii_mesh => ascii, bin_mesh => binary, embedded_mesh => embedded
  • UTF8Loader (and compressor) were changed to a newer version, supporting more recent version of UTF8 format (r100+); loader doesn't create anymore geometries but instead it returns hierarchy with potentially multiple meshes created per each material (or by splitting large model)

##r49 → r50

  • Vector3's .getRotationFromMatrix( matrix, scale ) to Vector3's .setEulerFromRotationMatrix( matrix, order ).
  • Vector3's .getEulerXYZFromQuaternion( quaternion ) and .getEulerYZXFromQuaternion( quaternion ) to .setEulerFromQuaternion( quaternion, order ).
  • DOMRenderer and SVGRenderer no longer included in common build.
  • texture coordinates aren't anymore flipped in the geometries, instead textures have flipY property (true by default); all models need to be re-exported / reconverted (tools have been updated as well).
    workaround: uv.v = 1 - uv.v;
  • PlaneGeometry changed back to vertical orientation (facing screen instead of laying on the ground).
    workaround: mesh.rotation.x = - Math.PI / 2; or geometry.applyMatrix( new THREE.Matrix4().makeRotationX( - Math.PI / 2 ) );
  • doubleSided / flipSided properties moved from Object3D to Material's side property (THREE.FrontSide, THREE.BackSide and THREE.DoubleSide).
  • objectMatrix in shaders was renamed to modelMatrix.
  • JIT caching removed from Animation.
  • geometry.dynamic is now true by default.
  • Three.js build renamed to three.min.js.

##r48 → r49

  • changed PlaneGeometry from vertical to horizontal orientation.
  • renamed __dirtyXXX attribute properties to xxxNeedUpdate.
  • removed Vertex class, use Vector3 instead.

##r47 → r48

  • Removed intersectScene from Ray. Use intersectObjects( array ) instead.

##r45 → r46

  • loader.load( { model: url, callback: callback } ) to loader.load( url, callback ).