Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Migration Guide

Michael Herzog edited this pageDec 12, 2025 ·784 revisions

⚠️When updating old projects, it's recommended to update the library in increments of 10⚠️
Updating in steps helps manage API changes, as deprecation warnings last for 10 releases

181 → 182

  • PCFSoftShadowMap is now deprecated. UsePCFShadowMap which is now soft as well.
  • ThecolorBufferType parameter ofWebGPURenderer has been renamed tooutputBufferType.getColorBufferType() has been renamed togetOutputBufferType().
  • VOXLoader.load() has been changed. The result object in theonLoad() callback now holds a scene with parsed meshes.#32488

180 → 181

  • The way indirect specular light for PBR materials is computed has been improved. This change slightly changes the overall appearance of PBR materials. More details in:#32054
  • PBR materials now better conserve energy, primarily rough materials (roughness > 0.5) which leads to more physically correct results. That means rough materials tend to be a bit brighter than in previous versions. More details in:#32072
  • PMREM reflections have been improved. More details in:#32102 and#32134.
  • renderAsync() andcomputerAsync() ofWebGPURenderer as well as other async methods likeclearAsync(),initTextureAsync() orhasFeatureAsync() have been deprecated. Before the sync versions of the methods can be called, the instance ofWebGPURenderer must be initialized. That happens automatically inside your animation loop defined viarenderer.setAnimationLoop() or manually if you callawait renderer.init(). The latter call might be necessary if you use on-demand rendering or perform feature detection.
  • waitForGPU() has been removed fromWebGPURenderer. Read#32012 for details.
  • KTX2Loader.detectSupportAsync() has been deprecated. UsedetectSupport() instead after the renderer has been initialized viaawait renderer.init().
  • The TSL objectPI2 has been renamed toTWO_PI.
  • The internal AO render target ofGTAONode has been optimized. The AO is now only accessible in ther channel. The AO blend on application level should use this formula now:vec4( scenePassColor.rgb.mul( aoPass.r ), scenePassColor.a );
  • The methodssetResolution() andgetResolution() ofPassNode have been renamed tosetResolutionScale() andgetResolutionScale().
  • Thedamp property ofAfterImageNode is now of typeNode<float>. When creating an effect node viaafterImage(), it is not required to pass in a number anymore. A node constant or a uniform node are accepted as well.
  • Theresolution property ofWaterMesh has been renamed toresolutionScale.
  • three.js has a new API documentation which is now generated based on JSDoc. The new documentation covers the entire API, provides a better search and better type information. However, i18n (internationalization) isn't supported anymore meaning the docs are only available in English.

179 → 180

  • DepthOfFieldNode has a new implementation with a new API. Please refer towebgpu_postprocessing_dof for a complete code example.
  • RGBELoader has been renamed toHDRLoader.
  • RGBMLoader has been removed. Please migrate to other HDR formats and useEXRLoader,HDRLoader,HDRCubeTextureLoader orUltraHDRLoader instead.
  • Theresolution properties ofReflectorNode,AnamorphicNode andGaussianBlurNode have been renamed toresolutionScale. Besides, they are now scalar values, notVector2 anymore.
  • TheUSE_REVERSEDEPTHBUF define inWebGLRenderer has been renamed toUSE_REVERSED_DEPTH_BUFFER.
  • TheUSE_LOGDEPTHBUF define inWebGLRenderer has been renamed toUSE_LOGARITHMIC_DEPTH_BUFFER.

178 → 179

  • TheTimer module has been moved into the core. There is no need to import the module as a separate add-on anymore since it is now accessible over theTHREE namespace.
  • USDZLoader has been deprecated. Please useUSDLoader instead.
  • TRAAPassNode node is nowTRAANode and requires a new setup. Please refer towebgpu_postprocessing_traa for a complete code example.
  • ThereverseDepthBuffer parameter inWebGLRenderer has been renamed toreversedDepthBuffer.
  • The TSL methodlabel() has been renamed tosetName().
  • GaussianBlurNode has now an improved blur with a less blocky appearance. Customsigma values must be doubled to restore the previous blur strength.

177 → 178

  • MultiplyBlending andSubtractiveBlending now requireMaterial.premultipliedAlpha set totrue.

176 → 177

  • ColorManagement.fromWorkingColorSpace() has been renamed toworkingToColorSpace().
  • ColorManagement.toWorkingColorSpace() has been renamed tocolorSpaceToWorking().
  • The version of the JSON Object Scene format has been increased from4.6 to4.7.
  • GLTFExporter pushes parent node indices first to the glTF JSON. Previously, they came last.
  • PeppersGhostEffect has been removed.

175 → 176

  • Thelength parameter ofCapsuleGeometry has been renamed toheight.
  • Support detection for WebP and AVIF has been removed fromGLTFLoader.
  • LottieLoader has been deprecated. Uselottie-web instead and create your animated texture manually.

174 → 175

  • AnimationClip.parseAnimation() has been deprecated.
  • ParametricGeometries has been renamed toParametricFunctions. The module only holds parametric functions now so the inner classes have been removed.
  • The constructor ofLUTImageLoader has changed. It only accepts a loading manager now. TheflipVertical parameter has been removed. If you need to vertically flip a LUT, set theflip property of the loader totrue.
  • The constructor ofSMAAPass has changed. Thewidth andheight property has been removed since they were redundant.
  • The constructor ofHalftonePass has changed. Thewidth andheight property has been removed since they were redundant.
  • Controls.connect() requires a DOM element now.

173 → 174

  • Timer no longer uses Page Visibility API automatically to avoid large time delta values in inactive tabs. To restore the previous behavior, you must call the new methodtimer.connect( document );. This has been changed to avoid side effects in the constructor.
  • RenderTarget.clone() now performs full structural clone without sharing texture resources.

172 → 173

  • MeshGouraudMaterial has been deprecated. UseMeshLambertMaterial instead.
  • InstancedPointsNodeMaterial has been removed. UsePointsNodeMaterial instead.
  • The TSL functionvarying() has been renamed totoVarying().
  • The TSL functionvertexStage() has been renamed totoVertexStage().

171 → 172

  • TextureNode.uv() has been renamed toTextureNode.sample().
  • The TSL functionrangeFog( color, near, far ) has been deprecated. Usefog( color, rangeFogFactor( near, far ) ) instead.
  • The TSL functiondensityFog( color, density ) has been deprecated. Usefog( color, densityFogFactor( density ) ) instead.
  • Thecenter property has been removed fromDotScreenNode.
  • The TSL objectmaterialAOMap has been renamed tomaterialAO.
  • The TSL objectshadowWorldPosition has been renamed toshadowPositionWorld.
  • PostProcessingUtils has been renamed toRendererUtils.

170 → 171

  • The imports in context ofWebGPURenderer have been updated:
    • Usethree/webgpu to import modules related toWebGPURenderer andNodeMaterial.
    • Usethree/tsl to import modules/functions related to TSL.
  • The TSL blending functionsburn(),dodge(),screen() andoverlay() have been renamed toblendBurn(),blendDodge(),blendScreen() andblendOverlay().
  • The TSL functionstorageObject() has been deprecated. Usestorage().setPBO( true ) instead.

169 → 170

  • Material.type is now a static property that can't be modified anymore by app-level code. This might effect projects which use custom materials oronBeforeCompile() and modify the type property to trigger/force uniforms updates.
  • Certain TSL modules have been moved from core to addons, seehttps://github.com/mrdoob/three.js/issues/29505.
  • Mipmaps are now always generated whenTexture.generateMipmaps is set totrue irrespective of the texture filter settings.
  • When exporting non-PBR materials withGLTFExporter, the value formetallicFactor is now0. The value ofroughnessFactor has been changed to1.
  • The MMD modules have been deprecated. Please migrate tohttps://github.com/takahirox/three-mmd-loader untilr172.
  • WebGLRenderer.copyTextureToTexture3D() has been deprecated. Please usecopyTextureToTexture() instead (it supports now 3D and array textures).
  • WebXRManager now honors the layers settings of the scene's camera, seehttps://github.com/mrdoob/three.js/pull/29742.
  • CinematicCamera has been removed.
  • The conditional line material type must not be injected intoLDrawLoader viasetConditionalLineMaterial() before loading assets.

168 → 169

  • TransformControls is now derived fromControls. Instead ofscene.add( controls ), the visual representation of the controls have to be added to the scene viascene.add( controls.getHelper() ) now.
  • EXRExporter.parse() is now async.
  • KTX2Exporter.parse() is now async.
  • LightProbeGenerator.fromCubeRenderTarget() is now async.
  • PackedPhongMaterial has been removed.
  • SDFGeometryGenerator has been removed.
  • TiltLoader has been removed.
  • GPUStatsPanel has been removed. Please use the packagestats-gl if you need more detailed performance monitoring.
  • The functions ofGeometryCompressionUtils accept geometries instead of meshes now.

167 → r168

  • In order to improve tree-shaking ofWebGPURenderer and TSL, certain chaining features of TSL have been removed. For example instead of doingoutputPass.fxaa() it is nowfxaa( outputPass ). Please have a look at#29187 for more information.
  • The TSL objectviewportTopLeft has been renamed toviewportUV.
  • The TSL objectviewportBottomLeft has been removed. UseviewportUV.flipY() instead.
  • The TSL functionuniforms() has been renamed touniformArray().
  • DragControls.activate() andDragControls.deactivate() have been renamed toconnect() anddisconnect().
  • DragControls.getObjects() andDragControls.setObjects() have been removed. Usecontrols.objects instead.
  • DragControls.getRaycaster() has been removed. Usecontrols.raycaster instead.
  • PointerLockControls.getObject() has been removed. Usecontrols.object instead.
  • LogLuvLoader has been removed. Consider to switch toUltraHDRLoader.

166 → r167

  • The imports ofWebGPURenderer and TSL have changed. Please readhttps://github.com/mrdoob/three.js/pull/28650 for all details.
  • HDRJPGLoader has been removed. UseUltraHDRLoader to load Ultra HDR .jpg files.
  • The scriptutils/packLDrawModel.js has been renamed toutils/packLDrawModel.mjs.

165 → r166

  • When adding a new geometry toBatchedMesh you must now calladdInstance to enable the object to render.

164 → r165

  • The signature ofWebGLRenderer.copyTextureToTexture() andWebGLRenderer.copyTextureToTexture3D() has changed. It is nowcopyTextureToTexture( srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0 ). For more information, check out the exampleswebgl_materials_texture_partialupdate andwebgl2_materials_texture3d_partialupdate.
  • The signature ofWebGLRenderer.copyFramebufferToTexture() has changed. It is nowcopyFramebufferToTexture( texture, position = null, level = 0 ). For more information, check out the examplewebgl_framebuffer_texture.

163 → r164

  • LWOLoader uses a new conversion from left to right-handed coordinate system now. That means imported LWO assets will be oriented differently than before. Check out#28029 to see how the official example was updated to restore the previous look.
  • The async parse method ofUSDZLoader has been renamed toparseAsync(). The newparse() method can be used with classic callbacks.
  • The shader chunklightmap_fragment has been removed. If your custom material relies on it, you have to inline the GLSL code into your shader.
  • The legacyWebGLNodeBuilder class has been removed which enabled a limited node material usage withWebGLRenderer. The node material can only be used withWebGPURenderer now.

162 → r163

  • WebGLRenderer no longer supports WebGL 1.
  • Thestencil context attribute ofWebGLRenderer is nowfalse by default for performance reasons. If you use stencil related logic in your app, you have to enablestencil explicitly now. The correspondingstencil property ofWebGPURenderer is nowfalse by default as well.
  • Theheight parameter ofTextGeometry has been renamed todepth.
  • To attenuateScene.environment, use the new propertyScene.environmentIntensity. TheenvMapIntensity property ofMeshStandardMaterial andMeshPhysicalMaterial now attenuate only the material'senvMap.

r161 → r162

  • WebGLMultipleRenderTargets has been removed. Use the newcount property of the render target classes for MRT usage.
  • Hand-Tracking is not requested as an optional feature by default anymore. You have to do this manually on app level now like demonstrated in the relatedexamples.
  • The API ofInteractiveGroup has been changed. You have to use the new methodslistenToXRControllerEvents() andlistenToPointerEvents() to register the internal event listeners.
  • When using an instance ofHTMLImageElement for a texture, the renderer uses nownaturalWidth andnaturalHeight instead ofwidth andheight for computing the image dimensions. This enables simplifications on app level if the images are part of the DOM and resized with CSS.

r160 → r161

  • The build filesbuild/three.js andbuild/three.min.js have been removed. Please use ES Modules or alternatives:https://threejs.org/docs/index.html#manual/en/introduction/Installation
  • WebGLRenderer now specifies precision qualifiers for all GLSL sampler types.
  • GroundProjectedSkybox has been replaced withGroundedSkybox.
  • When using equirectangular environment maps,WebGLRenderer automatically converts to the cube map format with a larger texture size now. This avoids undersampling resulting in blurry output but it requires more memory. If you encounter performance issues, decrease the resolution of your equirectangular environment map.

r159 → r160

  • HBAOPass has been replaced withGTAOPass.
  • Triangle.getBarycoord() andTriangle.getInterpolation() now returnnull if the triangle is degenerate. (For degenerate triangles, thetarget parameter is set to the zero-vector).

r158 → r159

  • BatchedMesh.applyGeometry() has been replaced withaddGeometry().
  • BufferAttribute.updateRange andInterleavedBuffer.updateRange have been replaced withupdateRanges. You can manage multiple update ranges with the new methodsaddUpdateRange() andclearUpdateRanges().
  • SkinnedMesh is not supported with WebGL 1 anymore.

157 → 158

  • Quaternions are now expected to be normalized.
  • The material propertybumpScale is now invariant to the scale of texture coordinates. That means bump maps look now the same regardless of the texture UV scale in world space. If you are using bump mapping, you likely have to update thebumpScale value to achieve a similar look like before. More details inhttps://github.com/mrdoob/three.js/pull/26899.

156 → 157

  • AmbientLightProbe andHemisphereLightProbe have been removed. UseAmbientLight orHemisphereLight, instead.
  • The GLSL structGeometricContext has been removed from the GLSL code base to make materials more compatible with Adreno mobile GPUs. When you patch shaders viaonBeforeCompile() or reuse shader chunks with custom materials, you potentially have to remove references toGeometricContext similar tohttps://github.com/mrdoob/three.js/pull/26805.
  • AnimationUtils.arraySlice() has been removed. Internal code uses the nativeTypedArray.slice() method instead.

155 → 156

  • The constructor ofFilmPass has been changed. The parametersscanlinesIntensity andscanlinesCount have been removed.
  • The constructor ofSAOPass has been changed. The parametersuseDepthTexture anduseNormals have been removed.
  • SSAOPass requires now the usage of a priorRenderPass.

154 → 155

  • WebGLRenderer.useLegacyLights is now set tofalse by default and deprecated. Please read the following topic at the three.js forum for more information:Updates to lighting in three.js r155
  • The inline tone mapping controlled viaWebGLRenderer.toneMapping only works when rendering to screen now (similar toWebGLRenderer.outputColorSpace). In context of post processing, useOutputPass to apply tone mapping and color space conversion.
  • The constructor ofOutputPass has no parameters anymore. Color space and tone mapping settings are now extracted from the renderer.

153 → 154

  • The shader chunkencodings_fragment has been renamed tocolorspace_fragment.
  • The shader chunkoutput_fragment has been renamed toopaque_fragment.

152 → 153

  • WebGL 1 support inWebGLRenderer is now deprecated and will be removed in r163.
  • The default render target texture type in context of post-processing (EffectComposer) is nowTHREE.HalfFloatType.
  • AdaptiveToneMappingPass has been removed. Consider to use the newOutputPass for tone mapping and color space conversion.
  • ColladaExporter has been removed.
  • PRWMLoader has been removed.
  • LightningStrike andLightningStorm have been removed.
  • CubeTextureLoader loads cube textures in sRGB color space by default now.

151 → 152

  • The naming convention ofuv buffer attributes has been changed.uv,uv2,uv3 anduv4 are nowuv,uv1,uv2 anduv3.
  • WebGLRenderer.outputEncoding has been replaced withWebGLRenderer.outputColorSpace withTHREE.SRGBColorSpace as the default value.
  • Texture.encoding has been replaced withTexture.colorSpace withTHREE.NoColorSpace as the default value.
  • THREE.sRGBEncoding is nowTHREE.SRGBColorSpace.
  • THREE.LinearEncoding is nowTHREE.LinearSRGBColorSpace.
  • THREE.ColorManagement.enabled is nowtrue by default.
  • It's now necessary to define therenderOrder property for loaded shapes viaSVGLoader.

For more information, please see theUpdates to Color Management in three.js r152 guide.

150 → 151

  • Float16BufferAttribute now automatically converts values to and from half float in its setters/getters.
  • SkinnedMesh.boneTransform() has been renamed toapplyBoneTransform().
  • InstancedMesh.frustumCulled is nowtrue by default sinceInstancedMesh now supports bounding volume computations. If you update the transformation of your instances, make sure to callcomputeBoundingSphere() to recompute the bounding sphere which is required for correct view frustum culling and ray casting.
  • MapControls is now located in its own module filethree/addons/controls/MapControls.js.
  • Tween.js is now imported viaimport TWEEN from 'three/addons/libs/tween.module.js';.
  • Triangle.getUV() has been renamed toTriangle.getInterpolation().
  • GroundProjectedEnv has been renamed toGroundProjectedSkybox.
  • BufferGeometryUtils.mergeBufferAttributes() has been renamed toBufferGeometryUtils.mergeAttributes().
  • BufferGeometryUtils.mergeBufferGeometries() has been renamed toBufferGeometryUtils.mergeGeometries().
  • The editor now uses the physically correct lighting mode (WebGLRenderer.useLegacyLights = false).
  • Points now supports texture coordinates. When auv attribute is present in the geometry, the shader will use it to sample the color or alpha value frommap oralphaMap for a single point. Without auv attribute, point clouds are rendered as before.
  • ShaderMaterial.forceSinglePass is nowtrue by default.
  • aoMap andlightMap no longer useuv2. Setmaterial.lightMap.channel to0 foruv and1 foruv2. Consequently, theuv2_* shader chunks have been removed.

149 → 150

  • The build filesbuild/three.js andbuild/three.min.js are deprecated with r150+, and will be removed with r160. Please use ES Modules or alternatives:https://threejs.org/docs/index.html#manual/en/introduction/Installation
  • BasisTextureLoader has been removed. Use Basis Universal compression in KTX2 (.ktx2) files withKTX2Loader instead.
  • ColorManagement.legacyMode=false is nowColorManagement.enabled=true.
  • WebGLRenderer.physicallyCorrectLights = true is nowWebGLRenderer.useLegacyLights = false.

148 → 149

  • Euler.DefaultOrder has been renamed toEuler.DEFAULT_ORDER.
  • Euler.RotationOrders has been removed.
  • Object3D.DefaultUp has been renamed toObject3D.DEFAULT_UP.
  • Object3D.DefaultMatrixAutoUpdate has been renamed toObject3D.DEFAULT_MATRIX_AUTO_UPDATE.
  • Object3D.DefaultMatrixWorldAutoUpdate has been renamed toObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE.
  • ViewHelper.controls has been removed. Use the newcenter property to define the helper's center.
  • THREE.TwoPassDoubleSide has been removed. Double-sided, transparent materials are now rendered with two draw calls by default. This behavior can be disabled by settingMaterial.forceSinglePass totrue.

147 → 148

  • Theexamples/js directory has been removed. Addons likeGLTFLoader orOrbitControls are now only available as ES6 modules in theexamples/jsm directory. Certain library files fromexamples/js/libs are moved toexamples/jsm/libs. Users of ammo.js, Draco and Basis have to update their import paths (e.g. from/examples/js/libs/draco/ to/examples/jsm/libs/draco/). Also check out theInstallation guide in the documentation if you are using ES6 modules for the first time.
  • The defaultradial values ofCircleGeometry,RingGeometry,CylinderGeometry,ConeGeometry andTorusGeometry have been increased.
  • GLTFLoader now ensures the node order in loaded scenes matches the node order in the glTF asset.
  • Material.side = DoubleSide no longer renders a transparent object in separate front and back passes. UseTwoPassDoubleSide for two-pass transparent rendering.

146 → 147

  • Thedecay property ofPointLight andSpotLight has now a physically correct default value (2). This change will affect all scenes using point and spot lights with no defineddecay. Set the property back to1 if you want to restore the previous behavior.
  • BufferAttribute.onUploadCallback() is now executed every time buffer data are transferred to the GPU.
  • Support for theKHR_materials_pbrSpecularGlossiness extensions has been removed fromGLTFLoader andGLTFExporter. Older glTF assets should be losslesslyconverted from spec/gloss to metal/rough.
  • PixelShader has been removed. Usepostprocessing/RenderPixelatedPass instead.
  • numConstructionSteps andconstructionStep ofLDrawLoader have been renamed tonumBuildingSteps andbuildingStep.

145 → 146

  • Theresolution constructor parameter ofBloomPass has been removed.
  • Thewidth andheight settings of theparams constructor parameter ofBokehPass have been removed.
  • BufferGeometryUtils.mergeBufferGeometries() does not honorBufferGeometry.userData anymore.
  • Thecube shader inShaderLib has different uniforms now.envMap is nowtCube,flipEnvMap is nowtFlip and all other uniforms except ofopacity have been removed.

144 → 145

  • ThetruncateDrawRange option has been removed fromGLTFExporter.parse().
  • FlyControls andFirstPersonControls have been moved to Pointer Events API.
  • TheBufferGeometry alias for geometry generators has been deprecated. Use e.g.BoxGeometry instead ofBoxBufferGeometry.

143 → 144

  • BufferGeometry.merge() has been removed. UseBufferGeometryUtils.mergeBufferGeometries() instead.
  • copyColorsArray(),copyVector2sArray(),copyVector3sArray() andcopyVector4sArray() have been removed fromBufferAttribute.
  • MeshLambertMaterial now uses per-fragment shading. Use the newMeshGouraudMaterial inexamples/jsm/materials if you need per-vertex shading.
  • BufferAttribute getters and setters (getX,setX, etc) now respect the normalized flag and transform values to and from normalized values when reading and writing to the underlying array.
  • Scene.autoUpdate has been replaced withObject3D.matrixWorldAutoUpdate.
  • ThenoHoles parameter ofShapePath.toShapes() has been removed.

142 → 143

  • When importingAnimationUtils fromsrc/animation/AnimationUtils.js (instead ofthree.module.js), the import is nowimport * as AnimationUtils from '/src/animation/AnimationUtils.js';.
  • PCDLoader now always uses white as the default material color.

141 → 142

  • When importingDataUtils fromsrc/extras/DataUtils.js (instead ofthree.module.js), the import is nowimport * as DataUtils from '/src/extras/DataUtils.js';.

140 → 141

  • TheembedImages option ofGLTFExporter.parse() has been removed.
  • Legacy code is going to be removed from the core after ten releases now. If you plan to upgradethree.js in an existing project, try to avoid too large upgrade steps. For example don't upgrade fromr70 tor140 but do it in a more incremental fashion instead (r70 ->r80 ->r90 etc.).
  • The parameterselectionBox has been removed fromSelectionHelper's constructor.
  • The defaulttype ofDepthTexture is nowUnsignedIntType.
  • Theurl parameter ofPCDLoader.parse() has been removed. The loader does not extract the file name from the URL anymore.
  • The deprecatedGeometry class has been removed.

139 → 140

  • SkinnedMesh requires floating point vertex textures now.
  • Thefog property has been moved from the abstractMaterial class to materials which actually support it.

138 → 139

  • CubeUVRefractionMapping andMeshStandardMaterial.refractionRatio have been removed. Use the transmission related properties ofMeshPhysicalMaterial if you want to model refraction with a PBR material.

137 → 138

  • WebGLMultisampleRenderTarget has been removed. To use multisampling as before, useWebGLRenderTarget and set the newsamples property to a value greater0.
  • The node material inexamples/jsm/nodes has been replaced with a new implementation.
  • ColladaLoader,KMZLoader andPLYLoader require a sRGB workflow now.
  • OBJExporter,ColladaExporter andPLYExporter produce assets with sRGB encoded colors now.
  • VRMLoader has been removed. Usethree-vrm instead.
  • The second argument ofGLTFLoader'sparser.loadTextureImage() has been changed from image source definition to image source index.
  • Euler.toVector3() has been removed. UseVector3.setFromEuler() instead.
  • DataTexture3D has been renamed toData3DTexture.
  • DataTexture2DArray has been renamed toDataArrayTexture.
  • WebGLRenderTarget.setTexture() has been removed.
  • The import ofCurveExtras has been changed. It is nowimport * as Curves from ... instead ofimport { Curves } from ....

136 → 137

  • WebGLRenderer now creates the WebGL context with an alpha channel regardless of the value ofalpha passed in the constructor. However, the value ofalpha is still used by the renderer when clearing the context first thing every frame.
  • RGBFormat has been removed. Please useRGBAFormat instead.
  • RGBIntegerFormat has been removed. Please useRGBAIntegerFormat instead.
  • UnsignedShort565Type has been removed. Please useUnsignedShort5551Type instead.
  • BasisTextureLoader has been deprecated. Please useKTX2Loader instead.
  • TheSRGB8_ALPHA8_ASTC* texture formats have been removed. If you want to use sRGB ASTC formats, use the regularRGBA_ASTC_* formats and set theencoding texture property tosRGBEncoding.
  • With WebGL 2 uncompressed sRGB encoded textures have to use theRGBAFormat withUnsignedByteType now.
  • RoughnessMipmapper has been removed.
  • Material.format has been removed.
  • GLTFExporter does not supportRGBFormat anymore. Please useRGBAFormat instead.
  • The default texture format ofVideoTexture is nowRGBAFormat (instead ofRGBFormat).
  • sRGB decode in GLSL has been removed. sRGB texture always have to useRGBAFormat +UnsignedByteType format now.
  • The ES6 import ofthree.js andexamples/jsm modules in web sites now requires the usage of an import map to resolve thethree bare import specifier.
  • The ES6 import ofexamples/jsm andexamples/fonts in certain bundlers like esbuild now requires an extension on filenames.
  • OBJ/MTLLoader requires a sRGB workflow now.
  • ChangingMaterial.transparent after its initial use requires settingneedsUpdate totrue.

135 → 136

  • HDR workflows with WebGL 1 now require half float texture extension support (OES_texture_half_float/OES_texture_half_float_linear).
  • If you create an instance ofDataTexture,DataTexture2DArray orDataTexture3D, you have to setneedsUpdate totrue as soon as the texture data are ready.
  • WebGLRenderer.copyFramebufferToTexture() has to be used with the new classFramebufferTexture now.
  • ETC1 texture compression can now only be used with a WebGL 1 rendering context.
  • Thekeydown event listener ofArcballControls has been removed. You have to implement it on app level if necessary.
  • ArcballControls.setTarget() has been removed. Update thetarget property instead.
  • When changingWebGLRenderer.toneMapping, it is no longer necessary to setMaterial.needsUpdate totrue.
  • EXRLoader no longer supports the data typeUnsignedByteType. Use the default data typeHalfFloatType instead.
  • PMREMGenerator now uses half float render targets internally, and no longer usesRGBEEncoding.
  • RGBM7Encoding andRGBM16Encoding have been removed. It is still possible to load RGBM texture as FP16 or FP32 textures. The defaulttype isHalfFloatType.
  • RGBEEncoding andRGBEFormat have been removed.RGBELoader andHDRCubeTextureLoader no longer support the data typeUnsignedByteType. It is still possible to load RGBE texture as FP16 or FP32 textures. The defaulttype isHalfFloatType.
  • RGBDEncoding has been removed.
  • WebGLRenderer.gammaFactor andTHREE.GammaEncoding have been removed. Please use post processing (a gamma correction pass) if you need a special gamma color space.

134 → 135

  • dat.gui has been replaced withlil-gui.
  • The dimensions, format and type of a texture cannot be changed after the initial use now.
  • GLTFExporter.parse() has a new signature. The third parameter is now an error callback. The exporter options are now passed in as the fourth argument.
  • LogLuvEncoding has been removed. Please use the newLogLuvLoader for loading Logluv TIFF HDR images as (half precision) floating point textures.

133 → 134

  • DeviceOrientationControls has been removed.
  • ImmediateRenderObject has been removed.
  • OrbitControls no longer supports zooming (via mouse wheel) while rotating.
  • FileLoader now usesfetch instead ofXMLHttpRequest.

132 → 133

  • Therecursive parameter ofRaycaster.intersectObject() andRaycaster.intersectObjects() is nowtrue by default.
  • Some default values ofExtrudeGeometry's parameters have changed.depth is now1,bevelThickness is now0.2 andbevelSize is nowbevelThickness - 0.1.
  • ParametricGeometry has been removed from core. It is now located inexamples/jsm/geometries/ParametricGeometry.js.
  • TextGeometry has been removed from core. It is now located inexamples/jsm/geometries/TextGeometry.js.
  • FontLoader andFont have been removed from core. Both classes are now located inexamples/jsm/loaders/FontLoader.js.

131 → 132

  • BufferGeometryUtils is now imported using this pattern:import * as BufferGeometryUtils from './jsm/utils/BufferGeometryUtils.js';
  • KTX2Loader requires an updated version of the Basis Universal transcoder fromexamples/js/libs/basis
  • MeshPhysicalMaterial.sheen has been renamed tosheenTint.
  • BufferGeometry.computeFaceNormals() has been removed. The method was not implemented and just a stub. Calling it did not affect the geometry.
  • MeshStandardMaterial andMeshPhysicalMaterial shaders are now more correct and may result in less shiny renders for models using rough materials.

130 → 131

  • ThemorphTargets andmorphNormals property of materials has been removed.
  • MeshStandardMaterial.vertexTangents has been removed.
  • The defaultwidthSegments andheightSegment properties ofSphereGeometry have been increased to32 and16.
  • The default type of textures loaded withRGBELoader,HDRCubeTextureLoader andEXRLoader is nowTHREE.HalfFloatType.
  • TheenvMap property ofMeshStandardMaterial andMeshPhysicalMaterial is now internally converted to a PMREM. It might be necessary to update the scene's lighting if no PMREM was previously used.

129 → 130

  • Controls no longer callpreventDefault() on pointer and mouse events.
  • DragControls,OrbitControls andTrackballControls now use pointer events for touch interaction.

128 → 129

  • The backward compatibility for the deprecated third and forth argumentsrenderTarget andforceClear ofWebGLRenderer.render() has been removed.
    • UseWebGLRenderer.setRenderTarget() andWebGLRenderer.clear() instead.
  • Theskinning property of materials has been removed.
    • The same material can now be reused betweenMesh andSkinnedMesh.
  • Matrix4.makeShear() has a new signature. Please make a note of it.

127 → 128

  • All central engine components likeObject3D,BufferGeometry orShaderMaterial are now ES6 classes.
    • This might impact your application if you derive custom classes fromthree.js classes via ES5 syntax. In this case, you have to upgrade your code to ES6 or transpilethree.js to ES5.
  • The JavaScript code inexamples/js generated from modules inexamples/jsm is now based on ES6.
    • If you need ES5 code in your project, update the configuration in.babelrc.json and regenerateexamples/js by usingnpm run build-examples. However, the better solution is to upgrade your code to ES6.
  • NPM: ES6 modules inexamples/jsm now import using the bare specifierthree.
  • XLoader has been removed.

r126 → r127

  • Controls no longer usestopPropagation() in their event listeners. In certain use cases event listeners on application level are now able to process events (which was not possible before).
  • Scene.background no longer supports instances ofWebGLCubeRenderTarget. Please assign thetexture property of render targets.
  • WebGLRenderer.setFramebuffer() has been removed.
  • AssimpLoader has been removed.
  • Plane.intersectLine() now returnsnull when no intersection was found.
  • WebGLRenderer.maxMorphTargets andWebGLRenderer.maxMorphNormals have been removed.
  • When usingEventDispatcher,event.target is only valid for the duration of the listener callback now.

r125 → r126

  • TypeScript type declaration files have been moved tothree-types/three-ts-types.
  • Face3 has been removed from core. It is now located inexamples/jsm/deprecated/Geometry.js.
  • Ocean andOceanShaders have been removed.
  • polyfills.js has been removed. The polyfills forArray.from(),Function.name,Number.EPSILON,Number.isInteger,Math.log2,Math.sign andObject.assign() need to be added at application level for IE11 support:misc_legacy.
  • CSS3DRenderer no longer supports IE11.
  • WebGLRenderer now setsgl.UNPACK_COLORSPACE_CONVERSION_WEBGL togl.NONE. Embedded color space data (ICC-profiles) in texture images will now be ignored.

r124 → r125

  • Geometry has been removed from the core. It is now located inexamples/jsm/deprecated/Geometry.js.
  • Geometry generators likeBoxGeometry now produce aBufferGeometry.
  • Mesh,Line andPoints no longer support raycasting withGeometry.
  • Line.computeLineDistances() no longer supportsGeometry.
  • Exporters no longer supportGeometry.
  • DecalGeometry,EdgesGeometry,WireframeGeometry,Projector,LineGeometry,LineSegmentsGeometry,ConvexHull,EdgeSplitModifier andTessellateModifier no longer supportGeometry.
  • ConvexBufferGeometry has been removed. Similar toDecalGeometry,ConvexGeometry is now derived fromBufferGeometry.
  • TeapotBufferGeometry has been renamed toTeapotGeometry.
  • RoundedBoxBufferGeometry has been renamed toRoundedBoxGeometry.
  • 3MFLoader,AMFLoader,EXRLoader,FBXLoader,KMZLoader,NRRDLoader,TiltLoader andVTKLoader now depend onfflate. Other decompression libs (JSZip andZLib) are no longer used.
  • SubdivisionModifier has been removed.
  • SimplifyModifier no longer supportsGeometry and now relies onBufferGeometryUtils.
  • OBJLoader2 has been removed. If you still need it, use thisrepository.
  • OrbitControls no longer listens to key events by default. You have to callOrbitControls.listenToKeyEvents() if your app requires key controls.
  • BufferGeometryUtils.computeTangents() has been moved into the core. You can now useBufferGeometry.computeTangents().
  • RectAreaLightHelper.update() has been removed.

r123 → r124

  • ColladaLoader stores animation clips incollada.scene.animations now.
  • WebGLRenderer.getClearColor() now expects a target argument.
  • TypedArrayUtils andwebgl_nearestneighbour demo have been removed.
  • The converter scriptsfbx2three andobj2three have been removed.

r122 → r123

  • Matrix3/4.getInverse() has been deprecated. Please use the new method.invert() with this pattern:matrixInv.copy( matrix ).invert();.
  • Quaternion.inverse() has been renamed toQuaternion.invert().
  • The optionforcePowerOfTwoTextures has been removed fromGLTFExporter.
  • The first parameter ofDRACOExporter.parse() is now of typeMesh orPoints.
  • DragControls now use Pointer Events. This change might require that you move your custom event listeners to Pointer Events, too.

r121 → r122

  • ExplodeModifier has been removed.
  • Fire and the respectivewebgl_fire example have been removed.

r120 → r121

  • Thedetail parameter ofPolyhedronGeometry is now more fine-grained. Meaning it can produce now more different subdivisions.
  • LightShadow has been removed from the public API. If you need to configure a custom shadow frustum for spot lights, use the newSpotLightShadow.focus property.
  • Geometry generator classes are now located in their own files. For exampleBoxGeometry andBoxBufferGeometry no longer share a single file and are now located insrc/geometries/BoxGeometry.js andsrc/geometries/BoxBufferGeometry.js.
  • WebGLCubeRenderTarget.texture is now of typeCubeTexture.
  • TimelinerController and the respective examplemisc_animation_authoring have been removed.
  • TypedGeometryExporter has been removed.
  • A performance improvement forDRACOLoader required an update of the DRACO library.

r119 → r120

  • Scene.dispose() has been removed.
  • WebGLRenderTarget.stencilBuffer andWebGLCubeRenderTarget.stencilBuffer are now false by default. Enable the buffer by settingstencilBuffer: true in the constructor options.
  • When usingShaderMaterial andRawShaderMaterial, it's now necessary to set the newglslVersion property toTHREE.GLSL3 if you want to write GLSL 3.0 shader code. The GLSL version directive is not allowed in custom shader code anymore. It's always added automatically by the engine.
  • SpotLightShadow andDirectionalLightShadow have been removed from the public API.
  • CannonPhysics has been removed.
  • OrbitControls,TrackballControls andTransformControls now use Pointer Events. This change might require that you move your custom event listeners to Pointer Events, too.

r118 → r119

  • MeshPhysicalMaterial.transparency has been renamed toMeshPhysicalMaterial.transmission.

r117 → r118

  • SphericalReflectionMapping is no longer supported. Consider using a Matcap texture withMeshMatcapMaterial instead.
  • WebGLRenderer.toneMappingWhitePoint has been removed.
  • Uncharted2ToneMapping has been removed. However, it's now possible to define your own custom tone mapping function by usingCustomToneMapping. Check out thetone mapping example for more information.
  • WebGLRenderer automatically creates a WebGL 2 rendering context now (and fallbacks to WebGL 1 if necessary). If your project can only use WebGL 1, you can useWebGL1Renderer.
  • The default value ofOrbitControls.screenSpacePanning is nowtrue.
  • Water can only be used when settingWebGLRenderer.outputEncoding toTHREE.LinearEncoding.
  • shininess,specular andspecularMap have been removed fromMeshToonMaterial.

r116 → r117

  • The TypeScript declaration forTexture.mipmaps is nowany[] instead ofImageData[].
  • InstancedBufferGeometry.maxInstancedCount has been renamed toInstancedBufferGeometry.instanceCount.
  • The constructor ofCubeCamera has changed. It now expects an instance of WebGLCubeRenderTarget as third parameter. The fourth parameteroptions has been removed.

r115 → r116

  • The default value ofWebGLRenderer.toneMapping is nowNoToneMapping.
  • Sphere.empty() has been renamed toSphere.isEmpty().
  • TranslucentShader has been renamed toSubsurfaceScatteringShader.
  • PDBLoader no longer returns raw bonds data in the JSON result.
  • Theoptions parameter ofVRButton.createButton() has been removed. Please set the reference space type viaWebGLRenderer.xr.setReferenceSpaceType() instead.

r114 → r115

  • ThethrowOnDegenerate parameter ofMatrix3.getInverse() andMatrix4.getInverse() has been removed. In addition, the methods now return the zero matrix if one tries to invert a matrix having a determinant of zero.
  • The TypeScript declaration forGeometry.boundingBox andGeometry.boundingSphere is now nullable, as it actually be.
  • The shader syntax#pragma unroll_loop is now deprecated. Use#pragma unroll_loop_start /end instead.

r113 → r114

  • Material.vertexColors is now a boolean. The default value isfalse.
  • Raycaster honors now invisible 3D objects in intersection tests. Use the new propertyRaycaster.layers for selectively ignoring 3D objects during raycasting.
  • GLTFLoader now returns an instance ofGroup instead ofScene.
  • GLTFLoader now setsdepthWrite tofalse for transparent materials.
  • TheOBJ andFBX converters now require theesm npm package.

r112 → r113

  • Math has been renamed toMathUtils, and/examples/js/utils/MathUtils.js has been promoted to the core.
  • WebGLRenderTargetCube has been renamed toWebGLCubeRenderTarget, and the constructor signature is nowWebGLCubeRenderTarget( size, options ).
  • Geometry.applyMatrix() has been renamed toGeometry.applyMatrix4().
  • BufferGeometry.applyMatrix() has been renamed toBufferGeometry.applyMatrix4().
  • Object3D.applyMatrix() has been renamed toObject3D.applyMatrix4().
  • LineSegmentsGeometry.applyMatrix() has been renamed toLineSegmentsGeometry.applyMatrix4().
  • Frustum.setFromMatrix() has been renamed toFrustum.setFromProjectionMatrix().
  • RaytracingRenderer has been removed.
  • WebGLDeferredRenderer has been removed.
  • GammaCorrectionShader converts tosRGB now.
  • The color of the default material forMesh,Points,Line, and all derived classes, is now white.

r111 → r112

  • PMREMGenerator has a new implementation and is now part of the core library. Check out thewebgl_loader_gltf example to understand the new workflow.
  • WebGLRenderer.gammaInput has been removed. Set the encoding for textures viaTexture.encoding instead.
  • WebGLRenderer.gammaOutput has been removed. Please useWebGLRenderer.outputEncoding instead.
  • MeshToonMaterial does not support environment maps anymore.
  • Mesh.drawMode andMesh.setDrawMode() have been removed.WebGLRenderer does render meshes always withTHREE.TrianglesDrawMode now. Please useBufferGeometryUtils.toTrianglesDrawMode() to transformTHREE.TriangleStripDrawMode andTHREE.TriangleFanDrawMode of existing geometries toTHREE.TrianglesDrawMode.
  • TerrainShader,SkinShader andCarControls have been removed.
  • WebVR support has been removed. Please useWebXR instead.
  • The default value ofMeshStandardMaterial.roughness has changed from0.5 to1.
  • The default value ofMeshStandardMaterial.metalness has changed from0.5 to0.
  • FaceNormalsHelper,LightProbeHelper,PositionalAudioHelper,RectAreaLightHelper,VertexNormalsHelper andVertexTangentsHelper are now part of the examples.
  • Instances ofBufferGeometry require at least a position attributeor index now.

r110 → r111

  • The semantics ofMaterial.needsUpdate has changed. Setting it totrue now increases the internal version counter (similar toTexture orBufferAttribute). It's not possible anymore to useMaterial.needsUpdate in conditional statements.
  • LegacyGLTFLoader andLegacyJSONLoader have been removed.
  • WebVRManager.setPoseTarget() has been removed.
  • WebVRManager andWebXRManager do no longer modify the camera when not presenting.
  • The default value ofRay.direction is now( 0, 0, - 1).
  • Instances ofBufferGeometry require at least a position attribute now.

r109 → r110

  • BufferAttribute.dynamic andBufferAttribute.setDynamic() have been deprecated. Please useBufferAttribute.usage andBufferAttribute.setUsage() instead.
  • BufferGeometry.addAttribute() has been renamed toBufferGeometry.setAttribute().
  • BufferGeometry.removeAttribute() has been renamed toBufferGeometry.deleteAttribute().
  • CubemapGenerator has been removed. Please useWebGLRenderTargetCube.fromEquirectangularTexture() instead.
  • EquirectangularToCubeGenerator has been removed. Please useWebGLRenderTargetCube.fromEquirectangularTexture() instead.
  • The second constructor parameterdomElement ofOrbitControls,TrackballControls,TransformControls,FlyControls,PointerLockControls andFirstPersonControls is now mandatory.
  • OrbitControls andTrackballControls do not supportdocument as an argument fordomElement anymore. Please use the canvas element of the renderer (renderer.domElement) instead.
  • Audio.startTime has been removed. Please useAudio.play( delay ) instead.
  • When loading aDataTexture viaDataTextureLoader, it's defaultminFilter value is nowLinearFilter.
  • AssimpJSONLoader has been removed. Please useAssimpLoader instead.
  • SoftwareRenderer has been removed.

r108 → r109

  • Loader.Handler has been removed. UseLoadingManager's.addHandler(),.removeHandler() and.getHandler() instead.
  • BabylonLoader has been removed.
  • PlayCanvasLoader has been removed.
  • AWDLoader has been removed.
  • SEA3DLoader has been removed.
  • EditorControls is now located ineditor/js.
  • OrthographicTrackballControls has been removed.TrackballControls now supports orthographic cameras.
  • BufferAttribute.setArray() has been removed.
  • Displacement maps do not ignore the transformation of texture coordinates anymore.
  • It's not necessary anymore to set.needsUpdate totrue when creating aDataTexture (assuming the data are provided at construction time as a constructor parameter).
  • BoxGeometry andBoxBufferGeometry are now ES6 classes (except inthree.js andthree.min.js).

r107 → r108

  • CTMLoader has been removed.
  • InMeshPhysicalMaterial, renamed.clearCoat to.clearcoat and.clearCoatRoughness to.clearcoatRoughness.
  • Removed.initMaterials() and.createMaterial() fromLoader.
  • The obsolete callbacksonLoadStart(),onLoadProgress() andonLoadComplete() have been removed fromLoader.
  • DRACOLoader.setDecoderPath() andDRACOLoader.setDecoderConfig() are now instance methods.

r106 → r107

  • In the Texture Filter Constants,MipMap is nowMipmap. For example,THREE.LinearMipMapLinearFilter is nowTHREE.LinearMipmapLinearFilter.
  • RenamedWebGLRenderer.getActiveMipMapLevel() toWebGLRenderer.getActiveMipmapLevel().
  • WEBGL (the namespace fromexamples/js/WebGL.js) is now in theTHREE namespace.
  • WEBVR (the namespace fromexamples/js/vr/WebVR.js) is now in theTHREE namespace.
  • The moduleMapControls is now part ofOrbitControls. Check out the officialexample for more information.
  • OrbitControls andMapControls now have a new default value fordampingFactor.
  • WebGLRenderer.context has been removed. Please useWebGLRenderer.getContext() instead.
  • FBXLoader now correctly sets the texture encoding. When using FBX assets in your scene, you have to setrenderer.gammaOutput = true; (unless you need post-processing in linear colorspace).
  • When loading an FBX asset with TGA textures,FBXLoader requires now the following setup:THREE.Loader.Handlers.add( /\.tga$/i, new TGALoader() );.

r105 → r106

  • All examples now use ES6 modules.
  • VRMLLoader has a new implementation. It's necessary now to includechevrotain.min.js into your code. Check out theofficial example for more details.
  • The optionalupdate arg has been removed from the public API of the following methods:Euler.setFromRotationMatrix( m, order ),Euler.setFromQuaternion( q, order ), andQuaternion.setFromEuler( e ).
  • GPUParticleSystem has been removed.
  • DracoExporter has been renamed toDRACOExporter.
  • Objects of typeLOD are now updated automatically byWebGLRenderer. SetLOD.autoUpdate tofalse if you want to perform the update by yourself.
  • MTL related functions like.loadMtl() have been removed fromOBJLoader2. Please useMTLLoader andMtlObjBridge as shown in basic obj2 example.
  • OBJLoader2 has been removed fromexamples/js/loaders. Please use the module version inexamples/jsm/loaders.

r104 → r105

  • WebGLRenderer.debug.checkShaderErrors is nowtrue by default.
  • EffectComposer.setSize() now respects the pixel ratio. An instance ofEffectComposer can now be resized with the samewidth andheight values likeWebGLRenderer.
  • RenamedQuickHull toConvexHull. The file is now located inexamples/js/math.
  • SimplexNoise andImprovedNoise are now in theTHREE namespace and located inexamples/js/math.
  • AnimationClipCreator andTimelinerController are now located inexamples/js/animation.
  • ParametricGeometries is now located inexamples/js/geometries.
  • hilbert2d andhilbert3D were removed. Please useGeometryUtils.hilbert2D() andGeometryUtils.hilbert3D() instead.

r103 → r104

  • For performance reasons,WebGLRenderer does no longer perform error checking and reporting when shader programs are being compiled. You have to setrenderer.debug.checkShaderErrors totrue to restore the previous behavior.
  • Object3D.applyMatrix() now updates the local matrix ifObject3D.matrixAutoUpdate is set totrue.

r102 → r103

  • Thenpm scriptnpm run editor was removed. The editor is now a Progressive Web App (PWA).
  • The callback parameter ofSVGLoader.onLoad() is now an object (data) containing the root node of the SVG document and an array ofShapePath objects. Also, all paths are returned now (not only the ones withfill color)
  • Removed.allocTextureUnit(),.setTexture2D(),.setTexture() and.setTextureCube() fromWebGLRenderer. These methods were never intended to be part ofWebGLRenderer's public API and are now private (as a part ofWebGLTexture).

r101 → r102

  • RemovedrenderTarget andforceClear parameters fromWebGLRenderer.render(). Please use.setRenderTarget() and.clear() instead before you perform the rendering. Be aware that it's now necessary to executerenderer.setRenderTarget( null ) in order to unset an active render target.
  • Removed.activeCubeFace and.activeMipMapLevel fromWebGLRenderTargetCube. They are now parameters ofWebGLRenderer.setRenderTarget().
  • InWebGLRenderer.setViewport() andWebGLRenderer.setScissor(),(x, y) is the coordinate of thelower left corner of the rectangular region.
  • WebGLRenderer.getSize() now requires aVector2 argument.
  • WebGLRenderer.getCurrentViewport() now requires aVector4 argument.

r100 → r101

  • AddedFirstPersonControls.lookAt().lat,lon,phi,theta andtarget were removed from the public API.FirstPersonControls also respects the initial camera orientation now.
  • MeshStandardMaterial andMeshPhysicalMaterial now preserve energy for IBL lighting, resulting in brighter, more accurate colors for metallic materials with high roughness values when lit via a map generated by PMREMGenerator.

r99 → r100

  • Octree has been removed.
  • RemovedGeometry support fromMesh.updateMorphTargets(). UseBufferGeometry instead.
  • The default orientation ofRectAreaLight has changed. It now looks along the negative z-axis.

r98 → r99

  • WebGLRenderTarget.texture.generateMipmaps is now set tofalse by default.
  • There is a new (not backwards compatible) implementation forSSAOShader andSSAOPass.
  • JSONLoader has been removed from core. It is now located inexamples/js/loaders/deprecated/LegacyJSONLoader.js.
  • RemovedGeometry support fromObjectLoader. You have to includeLegacyJSONLoader if you still want to load geometry data of typeGeometry.
  • RemovedGeometry support fromSkinnedMesh. UseBufferGeometry instead.
  • RemovedSkinnedMesh.initBones(). TheSkinnedMesh constructor does not build the bone hierarchy anymore. You have to do this by yourself and then callSkinnedMesh.bind() in order to bind the prepared skeleton.

r97 → r98

  • RenamedObjectLoader.setTexturePath() toObjectLoader.setResourcePath(). AddedObjectLoader.setPath().
  • CanvasRenderer has been removed.
  • The order ofLoadingManager's callbacks has changed.onError() is now called beforeonLoad().

r96 → r97

  • RemovedBinaryLoader.
  • WebGLRenderer.clearTarget() is now deprecated. UseWebGLRenderer.setRenderTarget() in combination withWebGLRenderer.clear() instead.
  • RenamedJSONLoader.setTexturePath() toJSONLoader.setResourcePath().
  • RenamedMTLLoader.setTexturePath() toMTLLoader.setResourcePath().
  • GLTFLoader.setPath() is now used for the original glTF file. UseGLTFLoader.setResourcePath() if you want to change the path for resources like textures.
  • TDSLoader.setPath() is now used for the original 3DS file. UseTDSLoader.setResourcePath() if you want to change the path for resources like textures.
  • RefactoredPointerLockControls. Please have a look at theofficial example to see the new API.
  • Detector.js was refactored toWebGL.js.

r95 → r96

  • Object3D.lookAt() now supports rotated parents.
  • EquirectangularToCubeGenerator constructor args have changed.

r94 → r95

  • OrbitControls.mouseButtons key-value pairs have been renamed. Please make a note of it if you wish to change the mouse button bindings.
  • BufferSubdivisionModifier has been removed. UseSubdivisionModifier instead.
  • Sprites are now rendered concurrently with opaque and transparent objects.
  • Keyframe tracks are no longer automatically validated and optimized. Users need to explicitly call.validate/optimize().
  • Renamed shader chunklights_pars_maps toenvmap_physical_pars_fragment.

r93 → r94

  • TDSLoader now producesBufferGeometry.
  • MD2Loader now producesBufferGeometry.
  • XLoader now producesBufferGeometry.
  • Removed deprecated CTM, FBX, msgpack and UTF8 converters.
  • Removed deprecatedUTF8Loader.
  • RenamedEquiangularToCubeGenerator toEquirectangularToCubeGenerator.
  • Removed deprecatedVRControls andVREffect.
  • DaydreamController andGearVRController are now deprecated. The new directory of these file isexamples/js/vr/deprecated/.

r92 → r93

  • Renamed optionamount todepth inExtrudeBufferGeometry.
  • The Blender exporter has been removed. See#12903 and#14117 for more information. Also have a look at the new guideLoading 3D models.
  • STLBinaryExporter has been removed. It's now part ofSTLExporter.
  • RenamedWebGLRenderer.animate() toWebGLRenderer.setAnimationLoop().

r91 → r92

  • Removed optionframes fromExtrudeBufferGeometry.
  • Removed.getArrays() fromExtrudeBufferGeometry.
  • Removed.addShapeList() fromExtrudeBufferGeometry.
  • Removed.addShape() fromExtrudeBufferGeometry.
  • ExtrudeGeometry.WorldUVGenerator is now private.
  • SVGLoader now parses SVG input and returns an array ofShapePath objects.

r90 → r91

  • Geometry.center() andBufferGeometry.center() now returnthis instead ofoffset.
  • optionalTargets are now mandatory method parameters (with exception of curve classes).
  • SplitShaderChunk.lights_pars intoShaderChunks.lights_pars_begin andShaderChunks.lights_pars_maps.
  • SplitShaderChunk.lights_template intoShaderChunks.lights_fragment_begin,ShaderChunnks.lights_fragment_maps andShaderChunks.lights_fragment_end.
  • SplitShaderChunk.normal_fragment intoShaderChunks.normal_fragment_begin andShaderChunks.normal_fragment_maps.
  • The semantics ofAnimationAction.repetition has changed. The first run of the animation is now taken into account.
  • RemovedcopyIndicesArray() fromBufferAttribute.
  • RemovedgetWorldRotation() fromObject3D.
  • RenamedTriangle.area() toTriangle.getArea().
  • RenamedTriangle.barycoordFromPoint() toTriangle.getBarycoord().
  • RenamedTriangle.midpoint() toTriangle.getMidpoint().
  • RenamedTriangle.normal() toTriangle.getNormal().
  • RenamedTriangle.plane() toTriangle.getPlane().
  • Removed optionsmaterial andextrudeMaterial fromExtrudeGeometry.
  • Removedvertices fromrenderer.info.render.
  • BasicDepthPacking: Depth values at the near plane are now encoded as white. Depth values at the far plane as black.

r89 → r90

  • Lensflare has been moved out of the core. Please useexamples/js/objects/Lensflare.js if you need lens flares in your scene. Also have a look at the officialexample to see the new usage ofLensflare.
  • SceneUtils has been moved out of the core. It is now located atexamples/js/utils/SceneUtils.js.
  • Removed.shadowMap.renderReverseSided fromWebGLRenderer. SetMaterial.shadowSide instead.
  • Removed.shadowMap.renderSingleSided fromWebGLRenderer. SetMaterial.shadowSide instead.
  • Removed.setFaceCulling() fromWebGLRenderer.
  • Removed the JSON exporters for Maya and 3ds Max.
  • Removed.computeLineDistances() fromGeometry. UseLine.computeLineDistances() instead.

r88 → r89

  • ImageUtils has been removed.
  • RemovedextractUrlBase() fromLoader. UseLoaderUtils.extractUrlBase() instead.
  • ShapeUtils.triangulateShape() uses a new and more robust polygon triangulation algorithm now.
  • ShapeUtils.triangulate() has been removed.
  • Reflector,Refractor,Water andWater2 accept now any planar geometry and not only rectangular ones. The respective constructors have a new signature.

r87 → r88

  • CombinedCamera has been removed.
  • ColladaLoader2 has replacedColladaLoader.
  • VRMLLoader now producesBufferGeometry.
  • OBJLoader2 has a new dependencyLoaderSupport (seeexample).
  • WebVR.js was rewritten. Check out the correspondingexamples to see the new API.
  • RenamedCatmullRomCurve3'stype tocurveType.
  • RemovedcreatePointsGeometry() fromCurvePath. Check out thisexample to see how to create a geometry from a series of points.
  • RemovedcreateSpacedPointsGeometry() fromCurvePath.
  • RemovedcreateGeometry() fromCurvePath.
  • RenamedPath'sfromPoints() tosetFromPoints().
  • RemovedextractAllPoints() fromShape.
  • RenamedMirror toReflector.
  • RenamedlengthManhattan() ofVector2,Vector3 andVector4 tomanhattanLength().
  • RenameddistanceToManhattan() ofVector2 andVector3 tomanhattanDistanceTo().
  • RenamedAxisHelper toAxesHelper.

r86 → r87

  • GLTF2Loader has replacedGLTFLoader.
  • The result of theonLoad callback ofPDBLoader has changed. Please have a look at the correspondingexample.
  • AssimpLoader now usesLoadingManager.
  • RemovedsetPreferredShading() fromColladaLoader.

r85 → r86

  • Removed deprecatedAnimation,AnimationHandler andKeyFrameAnimation
  • Swapped y in setViewport() and setScissor()

r84 → r85

  • MultiMaterial has been removed. Use an Array instead.
  • RemovedmultiplyToArray() fromMatrix4.
  • Removed deprecatedSceneLoader.
  • BoxHelper update() no longer has arguments. Use.setFromObject() to assign a different object to the helper.
  • BoxHelper no longer supports objects of typeBox3.
  • DecalGeometry now produces aBufferGeometry.

r83 → r84

  • RemovedapplyToVector3Array() fromMatrix3.
  • RemovedapplyToVector3Array() fromMatrix4.
  • RemovedSpline. UseCatmullRomCurve3 instead.
  • RemovedSplineCurve3. UseCatmullRomCurve3 instead.
  • RemovedapplyProjection() fromVector3. UseapplyMatrix4() instead.
  • RenamedVector2'sfromAttribute() tofromBufferAttribute().
  • RenamedVector3'sfromAttribute() tofromBufferAttribute().
  • RenamedVector4'sfromAttribute() tofromBufferAttribute().
  • RenamedBinaryTextureLoader toDataTextureLoader.
  • ChangedMatrix4'smakeFrustum() tomakePerspective().

r82 → r83

  • STLLoader now produces aBufferGeometry.
  • PDBLoader now produces aBufferGeometry.
  • AssimpJSONLoader now produces aBufferGeometry.
  • RenamedMatrix3'sapplyToBuffer() toapplyToBufferAttribute().
  • RenamedMatrix4'sapplyToBuffer() toapplyToBufferAttribute().
  • BoundingBoxHelper has been removed. UseBoxHelper instead.
  • RenamedXHRLoader toFileLoader.

r81 → r82

  • PLYLoader now produces aBufferGeometry.
  • Thetaper parameter inTubeGeometry has been removed.

r80 → r81

  • RenamedBox2'scenter() togetCenter().
  • RenamedBox2'ssize() togetSize().
  • RenamedBox3'scenter() togetCenter().
  • RenamedBox3'ssize() togetSize().
  • RenamedLine3'scenter() togetCenter().

r76 → r77

  • THREE.GridHelper:setColors() removed, pass them in the constructor instead:new THREE.GridHelper( size, step, color1, color2 ).

r75 → r76

  • THREE.Audio.load deprecated, use newTHREE.AudioLoader instead.
  • Uniforms no longer need a.type property.
  • The uniformboneGlobalMatrices has been renamed toboneMatrices.

r74 → r75

  • ChangedVector3'ssetFromMatrixColumn(index, m) tosetFromMatrixColumn(m, index).
  • RemovedWebGLRenderTarget'sshareDepthFrom.

r73 → r74

  • RenamedenableScissorTest tosetScissorTest.
  • RenamedshadowBias toshadow.bias.
  • RenamedshadowMapWidth toshadow.mapSize.width.
  • RenamedshadowMapHeight toshadow.mapSize.height.
  • RenamedshadowCameraNear toshadow.camera.near.
  • RenamedshadowCameraFar toshadow.camera.far.
  • RenamedshadowCameraFov toshadow.camera.fov.
  • RemovedshadowDarkness. Add aTHREE.AmbientLight to your scene instead.
  • RemovedClosedSplineCurve3. UseCatmullRomCurve3 withclosed set totrue.
  • RemovedMeshPhongMaterial'smetal.
  • RenamedBox2'sempty() toisEmpty().
  • RenamedBox3'sempty() toisEmpty().

r72 → r73

  • RemovedmorphColors fromGeometry.
  • RemovedclampBottom fromMath.
  • FontUtils andTextGeometry moved out of core.
  • shadowDarkness default value is now1.

r71 → r72

  • RenamedPointCloud toPoints.
  • RenamedPointCloudMaterial toPointsMaterial.
  • RemovedcomputeTangents() fromGeometry andBufferGeometry.
  • Moved allshadowMap* properties inWebGLRenderer toshadowMap.*.
  • RemovedBufferGeometry'sdrawcall.index.
  • LineSegments( geometry, material ) should now be used instead ofLine( geometry, material, THREE.LinePieces ).

r70 → r71

  • Removedambient fromMaterial.
  • Removedrecursive parameter fromgetObjectBy*().

r69 → r70

  • RemovedsortParticles fromPointCloud.
  • RemovedrenderDepth fromObject3D.
  • UVMapping,CubeReflectionMapping,CubeRefractionMapping,SphericalReflectionMapping andSphericalRefractionMapping are no longer functions.

r68 → r69

  • WebGLRenderer'sinitMaterial was made private.
  • ColladaLoader now returns aScene instead of anObject3D.

r67 → r68

  • Object3D'sposition,rotation,quaternion andscale properties are now immutable.
  • BufferGeometry'saddAttribute method now takes aBufferAttribute instead of the various attribute types (e.g.,Int16Attribute,Float32Attribute).

r66 → r67

  • RemovedFace3'scentroid.
  • RemovedGeometry'scomputeCentroids().
  • MovedGeometryUtils'smerge toGeometry.

r65 → r66

  • RenamedCubeGeometry toBoxGeometry.
  • Removeddynamic property fromBufferGeometry.

r64 → r65

  • RemovedphysicallyBasedShading property fromWebGLRenderer.

r62 → r63

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

r61 → r62

  • Particle removed. UseSprite instead.
  • ParticleMaterial removed. UseParticleSystemMaterial orSpriteMaterial.

r59 → r60

  • Face4 removed. Use 2Face3 to emulate it.
  • OrbitControls'szoomIn() andzoomOut() renamed todollyIn() anddollyOut().

r58 → r59

  • Object3D.rotation is now of typeTHREE.Euler.
  • RemovedObject3D.useQuaternion. The library now uses quaternions by default. However, there is some magic in place to keepObject3D'srotation (Euler) working.
  • MovedObject3D.eulerOrder toObject3D.rotation.order.
  • MovedObject3D.defaultEulerOrder toEuler.DefaultOrder.
  • RemovedsetGeometry() andsetMaterial() fromMesh.
  • RemovedVector3.setEulerFromRotationMatrix(), useEuler.setFromRotationMatrix() instead.
  • RemovedVector3.setEulerFromQuaternion(), useEuler.setFromQuaternion() instead.

r57 → r58

  • RemovedMatrix4'stranslate(),rotateX(),rotateY(),rotateZ(),rotateByAxis() andcrossVector().
  • RemovedsetClearColorHex() fromCanvasRenderer andWebGLRenderer. UsesetClearColor() instead.
  • RenamedMatrix4'sextractPosition() tocopyPosition().
  • RenamedMatrix4'ssetRotationFrom*() tomakeRotationFrom*().
  • RenamedMatrix4'scompose() tomakeFromPositionQuaternionScale().
  • RenamedObject3D'sgetChildByName() togetObjectByName().
  • RemovedObject3D'smatrixRotationWorld property.

r56 → r57

  • ForBufferGeometry
    • geometry.verticesNeedUpdate togeometry.attributes.position.needsUpdate
    • geometry.elementsNeedUpdate togeometry.attributes.index.needsUpdate
    • geometry.normalsNeedUpdate togeometry.attributes.normal.needsUpdate
    • geometry.uvsNeedUpdate togeometry.attributes.uv.needsUpdate
    • geometry.colorsNeedUpdate togeometry.attributes.color.needsUpdate
    • geometry.tangentsNeedUpdate togeometry.attributes.tangent.needsUpdate
    • * ->geometry.attributes.custom.needsUpdate
  • RemovedMatrix4'srotateAxis. UseVector3.transformDirection( matrix ) instead.
  • RemovedAsteriskGeometry.
  • RemovedColor'ssetHSV. UseColorConverter.setHSV( color, h, s, v ) instead.
  • RenamedJSONLoader'screateModel() toparse().

r55 → r56

  • RemovedgetPosition() andgetColumn*() fromMatrix4
  • Color.setHSV() andColor.getHSV() replaced by.setHSL() and.getHSL()
  • ReplacedColorUtils.adjustHSV() with Color's.offsetHSL()
  • RenamedBox3/Line3/Plane/Ray/Sphere's.transform() toapplyMatrix4()

r54 → r55

  • Matrix3.multiplyVector3() changed toVector3.applyMatrix3()
  • Matrix4.multiplyVector3() changed toVector3.applyMatrix4() andVector3.applyProjection()
  • Matrix4.multiplyVector4() changed toVector4.applyMatrix4()
  • Quaternion.multiplyVector3() changed toVector3.applyQuaternion()
  • RenamedColor methods:
    • .lerpSelf() to.lerp()
  • RenamedVector2,Vector3 andVector4 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()
  • RenamedMatrix4 methods:
    • .multiply() to.multiplyMatrices()
    • .multiplySelf() to.multiply()
  • RenamedQuaternion methods:
    • .multiply() to.multiplyQuaternions()
    • .multiplySelf() to.multiply()
  • RenamedFrustum methods:
    • .contains() to.intersectsObject()
  • MovedGeometryUtils.explode toExplodeModifier
  • MovedGeometryUtils.tessellate toTessellateModifier
  • MovedShaderUtils.lib toShaderLib
  • Matrix4.makeTranslation andMatrix4.makeScale now take three scalars instead ofVector3.

r53 → r54

  • Sprite material properties are now inSpriteMaterial, used like thisnew THREE.Sprite( new THREE.SpriteMaterial( { color: 0xff0000, map: texture, alphaTest: 0.5 } ) ).
  • Renamed migrated sprite material properies:Sprite.affectedByDistance =>SpriteMaterial.sizeAttenuation andSprite.mergeWith3D =>SpriteMaterial.depthTest
  • Renamedrenderer.shadowMapCullFrontFaces =>renderer.shadowMapCullFace (default valuetrue =>THREE.CullFaceFront, other optionfalse =>THREE.CullFaceBack).
  • Renamedcolor.getContextStyle tocolor.getStyle.
  • MovedRay casting methods toRaycaster.
  • Rectangle replaced withBox2.
  • UV replaced withVector2. This means.u and.v are now.x and.y.
  • Matrix4.makeTranslation andMatrix4.makeScale now takeVector3 instead of three scalars.
  • MovedSubdivisionModifier out of the build toexamples/js/modifiers.
  • Renamed and movedRenderer.deallocateObject() =>Geometry.dispose() andBufferGeometry.dispose().
  • Renamed and movedRenderer.deallocateRenderTarget() =>WebGLRenderTarget.dispose().

r52 → r53

  • Sprite's size is no longer automatically based on the image size, usesprite.scale.set( imageWidth, imageHeight, 1.0 ) to achieve the old behavior
  • SceneLoader and scene format now usewidthSegments,heightSegments,depthSegments instead ofsegmentsWidth,segmentsHeight,segmentsDepth for definitions of plane, cube and sphere geometries
  • SceneLoaderand scene format now usematerial property with single material id string instead ofmaterials array for meshes
  • MeshPhongMaterial now usesperPixel = true by default
  • WebGLRenderer constructor doesn't use anymoremaxLights 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 intoColor.getHSV()
  • Geometry no longer has amaterials property.MeshFaceMaterials usage is now like this:new THREE.Mesh( geometry, new THREE.MeshFaceMaterial( [ material1, material2 ] ) ). Meaning thatface.materialIndex will map the array passed toMeshFaceMaterials.
  • Loader callbacks which previously only hadgeometry parameter, are now also passed a second one:materials:loader.load( 'file.js', function ( geometry, materials ) {} ).
  • GeometryUtils.clone() is now a method inGeometry.

r51 → r52

  • ShaderExtras have been split in a different files.CopyShader,FXAAShader,NormalShader, etc
  • ReplacedSceneUtils.traverseHierarchy withobject.traverse.
  • RemovedSceneUtils.showHierarchy. Useobject.traverse( function ( child ) { child.visible = false } ) instead.
  • Moved*Controls toexamples/js/controls.
  • SplitSceneUtils.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 tovalue property instead oftexture one{ type: "t", value: 0, texture: map } =>{ type: "t", value: map }
  • normalScale uniform in normal map shader is nowVector2 (to be able to invert separatelyx andy to deal with different tangent bases)
  • CTMLoader.load andCTMLoader.loadParts now use single parameter object foruseWorker anduseBuffers:loader.load( url, callback, useWorker, useBuffers ) =>loader.load( url, callback, { useWorker: true, useBuffers: true } )
  • CTMLoader now createsBufferGeometry by default, setuseBuffers parameter tofalse if you needGeometry
  • 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 ) toVector3's.setEulerFromRotationMatrix( matrix, order ).
  • Vector3's.getEulerXYZFromQuaternion( quaternion ) and.getEulerYZXFromQuaternion( quaternion ) to.setEulerFromQuaternion( quaternion, order ).
  • DOMRenderer andSVGRenderer no longer included in common build.
  • texture coordinates aren't anymore flipped in the geometries, instead textures haveflipY 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; orgeometry.applyMatrix( new THREE.Matrix4().makeRotationX( - Math.PI / 2 ) );
  • doubleSided /flipSided properties moved fromObject3D toMaterial'sside property (THREE.FrontSide,THREE.BackSide andTHREE.DoubleSide).
  • objectMatrix in shaders was renamed tomodelMatrix.
  • JIT caching removed fromAnimation.
  • geometry.dynamic is nowtrue by default.
  • Three.js build renamed tothree.min.js.

r48 → r49

  • changedPlaneGeometry from vertical to horizontal orientation.
  • renamed__dirtyXXX attribute properties toxxxNeedUpdate.
  • removedVertex class, useVector3 instead.

r47 → r48

  • RemovedintersectScene fromRay. UseintersectObjects( array ) instead.

r45 → r46

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

Clone this wiki locally


[8]ページ先頭

©2009-2025 Movatter.jp