Skip to content

Migration

Mr.doob edited this page Sep 29, 2015 · 136 revisions

##r71 → r72

  • Renamed PointCloud to Point.
  • Removed computeTangents() from Geometry and BufferGeometry.
  • Moved all shadowMap* properties in WebGLRenderer to shadowMap.*.

##r69 → r70

##r68 → r69

  • WebGLRenderer's initMaterial was made private.
  • ColladaLoader now returns a Scene instead of an Object3D.

##r67 → r68

  • Object3D's position, rotation, quaternion and scale properties are now immutable.
  • BufferGeometry's addAttribute method now takes a BufferAttribute instead of the various attribute types (e.g., Int16Attribute, Float32Attribute).

##r66 → r67

  • Removed Face3's centroid.
  • Removed Geometry's computeCentroids().
  • Moved GeometryUtils's merge to Geometry.

##r65 → r66

  • Renamed CubeGeometry to BoxGeometry.
  • Removed dynamic property from BufferGeometry.

##r64 → r65

  • Removed physicallyBasedShading property from WebGLRenderer.

##r62 → r63

  • WebGLRenderer background to opaque (black) by default. Pass {alpha=true} when creating WebGLRenderer for previous default behaviour.

##r61 → r62

  • Particle removed. Use Sprite instead.
  • ParticleMaterial removed. Use ParticleSystemMaterial or SpriteMaterial.

##r59 → r60

  • Face4 removed. Use 2 Face3 to emulate it.
  • OrbitControls's zoomIn() and zoomOut() renamed to dollyIn() and dollyOut().

##r58 → r59

  • Object3D.rotation is now of type THREE.Euler.
  • Removed Object3D.useQuaternion. The library now uses quaternions by default. However, there is some magic in place to keep Object3D's rotation (Euler) working.
  • Moved Object3D.eulerOrder to Object3D.rotation.order.
  • Moved Object3D.defaultEulerOrder to Euler.DefaultOrder.
  • Removed setGeometry() and setMaterial() from Mesh.
  • Removed Vector3.setEulerFromRotationMatrix(), use Euler.setFromRotationMatrix() instead.
  • Removed Vector3.setEulerFromQuaternion(), use Euler.setFromQuaternion() instead.

##r57 → r58

  • Removed Matrix4's translate(), rotateX(), rotateY(), rotateZ(), rotateByAxis() and crossVector().
  • Removed setClearColorHex() from CanvasRenderer and WebGLRenderer. Use setClearColor() instead.
  • Renamed Matrix4's extractPosition() to copyPosition().
  • Renamed Matrix4's setRotationFrom*() to makeRotationFrom*().
  • Renamed Matrix4's compose() to makeFromPositionQuaternionScale().
  • Renamed Object3D's getChildByName() to getObjectByName().
  • Removed Object3D's matrixRotationWorld property.

##r56 → r57

  • For BufferGeometry
    • geometry.verticesNeedUpdate to geometry.attributes.position.needsUpdate
    • geometry.elementsNeedUpdate to geometry.attributes.index.needsUpdate
    • geometry.normalsNeedUpdate to geometry.attributes.normal.needsUpdate
    • geometry.uvsNeedUpdate to geometry.attributes.uv.needsUpdate
    • geometry.colorsNeedUpdate to geometry.attributes.color.needsUpdate
    • geometry.tangentsNeedUpdate to geometry.attributes.tangent.needsUpdate
    • * -> geometry.attributes.custom.needsUpdate
  • Removed Matrix4's rotateAxis. Use Vector3.transformDirection( matrix ) instead.
  • Removed AsteriskGeometry.
  • Removed Color's setHSV. Use ColorConverter.setHSV( color, h, s, v ) instead.
  • Renamed JSONLoader's createModel() to parse().

##r55 → r56

  • Removed getPosition() and getColumn*() from Matrix4
  • Color.setHSV() and Color.getHSV() replaced by .setHSL() and .getHSL()
  • Replaced ColorUtils.adjustHSV() with Color's .offsetHSL()
  • Renamed Box3/Line3/Plane/Ray/Sphere's .transform() to applyMatrix4()

##r54 → r55

  • Matrix3.multiplyVector3() changed to Vector3.applyMatrix3()
  • Matrix4.multiplyVector3() changed to Vector3.applyMatrix4() and Vector3.applyProjection()
  • 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()
    • .cross() to .crossVectors()
    • .crossSelf() to .cross()
    • .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()
  • Renamed Frustum methods:
    • .contains() to .intersectsObject()
  • Moved GeometryUtils.explode to ExplodeModifier
  • Moved GeometryUtils.tessellate to TessellateModifier
  • Moved ShaderUtils.lib to ShaderLib
  • Matrix4.makeTranslation and Matrix4.makeScale now take three scalars instead of Vector3.

##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.
  • Moved Ray casting methods to Raycaster.
  • Rectangle replaced with Box2.
  • UV replaced with Vector2. This means .u and .v are now .x and .y.
  • Matrix4.makeTranslation and Matrix4.makeScale now take Vector3 instead of three scalars.
  • Moved SubdivisionModifier out of the build to examples/js/modifiers.
  • Renamed and moved Renderer.deallocateObject() => Geometry.dispose() and BufferGeometry.dispose().
  • Renamed and moved Renderer.deallocateRenderTarget() => WebGLRenderTarget.dispose().

##r52 → r53

  • Sprite's size is no longer automatically based on the image size, use sprite.scale.set( imageWidth, imageHeight, 1.0 ) to achieve the old behavior
  • SceneLoader and 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.MeshFaceMaterial( [ 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 ).