JavaScript 3D library.

Overview

three.js

NPM Package Build Size NPM Downloads Language Grade

JavaScript 3D library

The aim of the project is to create an easy to use, lightweight, cross-browser, general purpose 3D library. The current builds only include a WebGL renderer but WebGPU (experimental), SVG and CSS3D renderers are also available in the examples.

ExamplesDocumentationWikiMigratingQuestionsForumSlackDiscord

Usage

This code creates a scene, a camera, and a geometric cube, and it adds the cube to the scene. It then creates a WebGL renderer for the scene and camera, and it adds that viewport to the document.body element. Finally, it animates the cube within the scene for the camera.

import * as THREE from './js/three.module.js';

let camera, scene, renderer;
let geometry, material, mesh;

init();

function init() {

	camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
	camera.position.z = 1;

	scene = new THREE.Scene();

	geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
	material = new THREE.MeshNormalMaterial();

	mesh = new THREE.Mesh( geometry, material );
	scene.add( mesh );

	renderer = new THREE.WebGLRenderer( { antialias: true } );
	renderer.setSize( window.innerWidth, window.innerHeight );
	renderer.setAnimationLoop( animation );
	document.body.appendChild( renderer.domElement );

}

function animation( time ) {

	mesh.rotation.x = time / 2000;
	mesh.rotation.y = time / 1000;

	renderer.render( scene, camera );

}

If everything went well, you should see this.

Cloning this repository

Cloning the repo with all its history results in a ~2 GB download. If you don't need the whole history you can use the depth parameter to significantly reduce download size.

git clone --depth=1 https://github.com/mrdoob/three.js.git

Change log

Releases

Comments
  • Transform `examples/js` to support modules

    Transform `examples/js` to support modules

    The main source code has recently been ported to ES2015 modules (see #9310); however, some parts are still relying on global namespace pollution and have thus become unusable.

    Specifically the things in /examples/js/ haven't been transformed to support modules yet; this makes them currently unusable from within environments such as webpack or SystemJS.

    Edit, 11-20-2016: They can be used, but it requires a lot of setup: SystemJS, webpack. If you need assistance with these: Sorry, but this is the wrong thread to announce it! 😄

    Enhancement 
    opened by kdex 339
  • HLS on Safari / IOS now not working

    HLS on Safari / IOS now not working

    I apologise if there is nothing you can do. I am very certain in my tests HLS has been working and suddenly is now not.

    I am using the CORS proxy hack here so CORS isn't a problem. I don't need to use the CORS proxy in WebView IOS apps and even there rendering is an issue.

    Is there a WebGL fix that can be applied to get HLS rendering in WebGL ? I will try the canvas renderer to see if it helps. I know there is a requirement for double drawing of the canvas to get a frame up when using drawImage but this isn't an issue with Mp4 files.

    The example is here

    http://dev.electroteque.org/threejs/

    opened by danrossi 237
  • Automatic Geometry instancing

    Automatic Geometry instancing

    When I first started using three.js I read that it supported instancing. It wasn't until I'd been using it for a while that I realised that you were supposed to use InstancedBufferGeometry to enable instancing. However, the issue with that is that your instances aren't actually part of the normal scene work-flow, it's pretty complicated for most users.

    This on the other hand is turned on by default. Geometry will be batched and submitted to the GPU in one go as long as a browser supports the necessary extensions. An "instancing texture" is used (world and normal matrices encoded) when floating point vertex-shader accessible textures are available. On systems that don't support this, then the number of available uniforms will be detected and the necessary matrices will be pushed as arrays.

    I've tried to be careful not to break backwards compatibility. The only slight issue will be for those whom are using their own shaders. They'll want to add:

    #include <common_vertex>
    

    to the top their vertex shader main function. This has been done already for all built-in shaders.

    EDIT: ... unless they're using dynamic uniforms (object render callbacks), in which case the implementation will detect that and won't turn on instancing for that object, so the user will be unaffected.

    Instancing is turned on by default for opaque objects, but off for transparent ones. This is because in-order to effectively batch geometry you don't want to worry about z-sorting. Batching can be enabled for transparent objects if desired.

    Performance can be tweaked by increasing the instancing texture size (setInstancingTextureSize( size ). By default it's 64x64, which gives you batches of size 585. Bumping it to 128x128 will use ever so slightly more VRAM, but will allow for 2340 instances per batch.

    The increased VRAM is pretty negligible, but pushing a larger texture can itself be less performant than a smaller one if most of your geometry only has a few instances. For this reason, there's minInstancingBatchSize which will cause geometry to be rendered without batching (no texture pushing) if there's less than minInstancingBatchSize instances viewable in a given frame.

    These properties can be changed safely between rendering frames if desired.

    Sensible defaults have been chosen.

    Of course, instancing can be disabled altogether by setting autoInstancing to false.

    opened by Benjamin-Dobell 174
  • NodeMaterial

    NodeMaterial

    Hi.

    I started developing of a THREE.NodeMaterial to reconcile the differences materials between 3D authoring software. In SEA3D Studio has options to create layers in Albedo with mask and various blend modes, Rim shader and others without need custom shader code. I would like to bring this to Three.JS with node shader.

    I think that MeshPhongMaterial, MeshPhysicalMaterial and others can easily be based on NodeMaterial through of a interface for backward compatibility or proxy only.

    UPDATED http://sunag.github.io/sea3d/Labs/Three.JS-NodeMaterial/webgl_materials_nodes.html http://sunag.github.io/sea3d/Labs/Three.JS-NodeMaterial/webgl_postprocessing_nodes.html

    Syntax example for uses UV1 or UV2 for texture:

    var usesUv2 = true;
    var isLightmap = false;
    
    var t = new THREE.NodeTexture( texture, new THREE.NodeUV( usesUv2 ) );
    
    var nodemat = new THREE.NodePhongMaterial();
    if (isLightmap) nodemat.light = t;
    else nodemat.color = t;
    nodemat.build(); // build shader
    

    I am making an editor too, currently this would be the interface. Color is albedo and transform is the vertex position. editor

    I am also taking care that it can be used in a deferred shading. Now I will create reflection and refraction inputs.

    Will be sharing the news to the PR, suggestions, tests and enhancement are welcome :+1:

    Enhancement 
    opened by sunag 165
  • Moving to ES6 Classes

    Moving to ES6 Classes

    Hi all,

    I felt it appropriate to create a new issue (instead of continuing #11552) to further aid everyone in keeping track and update-to-date on the issues and progress surrounding the move to ES6 classes. This should also come in handy for the release doc.

    To those wishing to help, look through the list below and let us know what you'd like to work on. A PR per class is favoured however some folders can be done all at once. If a particular file cannot be converted, make a note at the top of the file, or ping me from your PR and I'll note it below.

    Notes:

    • Keep the Class.prototype.is** properties
    • class fields are also available if appropriate #20395 (dicussion here)
    • new this.contructor() != new Foo() ... related discussion.
    • Will tick after merged and complete.

    Part 1: src

    • [x] src
      • [x] animation ( #19964, #20014, #20016 , #20013 )
      • [x] audio ( #19975, #20003 )
      • [x] cameras ( #20102, #21623 )
      • [x] core ( #19976, #19977, #19978, #19984, #20008, #21635, #21646 )
      • [x] extras ( #19979, #21624 )
      • [x] geometries ( #19994 )
      • [x] helpers ( #19996 )
      • [x] lights ( #21231, #21232 )
      • [x] loaders ( #19985, #21622 )
      • [x] materials ( #20100, #21626, #21626 )
      • [x] math ( #19980, #19997, #20076, #20089, #21628)
      • [x] objects ( #21266, #21625 )
      • [x] renderers ( #21053 )
        • [x] ~~webgl~~
        • [x] webxr ( #21646, #21648 )
      • [x] scenes ( #20007 )
      • [x] textures ( #20009 )

    Part 2: examples

    • [x] examples
      • [x] animation ( #21596 )
      • [x] cameras ( #21589 )
      • [x] controls (#21629, #21644)
      • [x] curves ( #21593 )
      • [x] effects ( #21610 )
      • [x] environments ( #21585 )
      • [x] exporters ( #21605 )
      • [x] geometries ( #21589 )
      • [x] helpers ( #21583 )
      • [x] interactive ( #21592 )
      • [x] lights ( #21592 )
      • [x] lines ( #21599 )
      • [x] loaders ( #21616, #21614, #21612 )
      • [x] math ( #21598 )
      • [x] misc ( #21618 )
      • [x] modifiers ( #21604 )
      • [x] ~~nodes~~
      • [x] objects ( #21600 )
      • [x] postprocessing ( #21621 )
      • [x] renderers ( #21601 )
      • [x] shaders ( #21619 )
      • [x] textures
      • [x] utils ( #21611 )
      • [x] webXR ( #21586 )
    Enhancement Design 
    opened by DefinitelyMaybe 159
  • make logging optional for webgl renderer

    make logging optional for webgl renderer

    Adds a logging parameter to the WebGL renderer.

    Useful for situations where you don't want logging at all such as production or in a testing environment. Retains true as default but would think falsewould be a better option?

    opened by JackCA 158
  • Moving to a modular architecture

    Moving to a modular architecture

    Browserify Moving to this architecture has advantages and disadvantages. Please add your thoughts.

    Note: this does not require three.js consumers to use browserify.

    Suggestion 
    opened by kumavis 153
  • Making 'three' tree-shakeable

    Making 'three' tree-shakeable

    The goal with tree-shaking here is I should be able to import a class from 'three', and only get the classes needed. In my test bundle importing only Vector2 is producing a 295 KB (uncompressed) file still with lots of remaining side-effects even after r141 and all the work done on #24006 (down from a 1 MB bundle in r140).

    I'm opening this issue to resolve the remaining side-effects, which is do-able with some more work, and we have a couple ways of testing that.

    Also to make the claim that 'three' is finally fully tree-shakeable, we'll need to verify that in the most popular bundlers. I'll start with Rollup, Webpack, Parcel and esbuild. Open to suggestions of other bundlers and configurations, and will start with a simple test of importing only Vector2.

    Steps to reproduce the behavior:

    import { Vector2 } from 'three';
    
    console.log(new Vector2(0, 1));
    

    And with agadoo:

    npx agadoo
    ...
    Failed to tree-shake build/three.module.js
    

    It's worth noting that importing from the source files with agadoo also fails, and is something I can look into as well.

    npx agadoo src/Three.js
    ...
    Failed to tree-shake src/Three.js
    

    The expected behavior, regardless of agadoo, is simply looking at the output bundle. If I import Vector2, I'm expecting only the @license header comment, and Vector2, nothing else.

    References:

    • https://twitter.com/MarcoGomezGT/status/1520866649485754372
    • mrdoob/three.js#24006
    Enhancement 
    opened by pschroen 122
  • Textures Rendered as Black on (some?) devices with Android 7+

    Textures Rendered as Black on (some?) devices with Android 7+

    Description of the problem

    Three.js Standard Material textures are rendered as solid black. eg https://threejs.org/docs/scenes/material-browser.html#MeshStandardMaterial doesn't work with the inital settings (appears all black).

    screenshot from 2018-05-24 14 19 45

    Changing background color to something other than black reveals the object as a black silhouette (despite it's initial material being set to a non-black color).

    screenshot from 2018-05-24 14 21 43

    Interesting, changing the material to have an emissive color seems to work fine

    screenshot from 2018-05-24 14 22 31

    Not sure if this is problem caused by one of the two texture warnings I'm seeing? (visible in those screenshots' consoles)

    three.min.js:35 THREE.WebGLRenderer: WEBGL_depth_texture extension not supported.
    three.min.js:35 THREE.WebGLRenderer: OES_texture_float_linear extension not supported.
    

    This doesn't appear to be a problem with all WebGL texturing, though -- https://fltr.world/ (simple texture demo implemented with three.js shaders) works fine, as does https://webglsamples.org/aquarium/aquarium.html

    I'm seeing this using Chrome 66.0.3359.158 with LG's stock Android 7.0 (version M21010v; January 1, 2018 security update) with on both my LG Aristo (LG-M210) and my LG Fiesta (LG L63BL)

    Also reported in A-frame here: https://github.com/aframevr/aframe/issues/3523 And here: https://stackoverflow.com/questions/40010080/scene-rendering-black-when-entering-vr-mode-in-a-frame

    Browser

    I've only tested on Android's Chrome, but it has also been reported on (the Android version of) Firefox and the default Android browser: https://github.com/aframevr/aframe/issues/3523#issuecomment-391611976

    OS

    Android 7+

    Hardware Requirements (graphics card, VR Device, ...)

    Relevant Android device running Android 7+. Reported to be reproducible on:

    Edit: if this is indeed the same issue as that reported in #12679, then the following devices also exhibit the problem:

    And the following do not:

    • Huaweï P8 Lite (Android 6 + EMUI 5.1)
    • Huaweï P9
    • HTC Nexus 9 (Android 7.1.1)
    • Galaxy Tab A 2016 ( Android 7)

    However the issue does not seem to appear on:

    I have several devices that exhibit the failure. Happy to either run test cases or supply one to test if someone wants to work on this who is located in the SF Bay area.

    In searching, also found this issue: react-community/react-native-webgl#21 It has similar symptoms (black textures on Android), but pretty sure it's a different root problem

    Device Issue 
    opened by gabrielgrant 116
  • SkinnedMesh bug when far from scene root (0,0,0)

    SkinnedMesh bug when far from scene root (0,0,0)

    I think I found a bug about your SkinnedMesh (tested on iPhone 6 & 8).

    If this is already reported, I'm sorry, I didn't find it in the issue list :(

    It seems the gpu skinning is not working correctly and getting crazy on mobile. When a SkinnedMesh is moving or moved at high value positions (ex: x:0, y:0, z:1000), the skinning is not accurate anymore and starts spider dance.

    The scale of the mesh is affecting the bug. Bigger the scale is, lesser the bug.

    It seems the skeleton bones values are not calculated correctly at each frame and the bonesTexture/bonesMatrix on the skinning shader is pushing vertices at wrong place. This is just my feeling of course.

    I ran many tests before posting this... looking for a clue in my animated exports but I found the bug is happening with any kind of formats (GLTF, FBX, Collada, JSON, ...) and models from ThreeJS repo.

    That's very annoying because that means we are unable to develop a simple runner game with an avatar running (avatar.position.z increasing then) without having this issue :(( I still don't know how I'll manage it as morphTargets is not an option :(

    Hope you guys can help here.

    I made clear examples with clean source to expose the problem. It's quite easy to verify it on a smart phone:

    Appearing only on mobile (z=10000): http://cornflex.org/webgl/skinning-bug.html

    With floatVertexTextures set to false (z=10000): http://cornflex.org/webgl/skinning-bug2.html

    Getting worse with distance (z increasing): http://cornflex.org/webgl/skinning-bug3.html

    Very very far from center (z=70000000) > bug also appearing on desktop but certainly due to float precision issue: http://cornflex.org/webgl/skinning-bug4.html

    Video Preview in my game environment: This is a realistic scale world (1.0m = 1.0 threejs unit). Bug is appearing only after 50-60m from scene root and getting worse with distance: http://cornflex.org/webgl/skin-bug.mp4

    VERY IMPORTANT The mesh used from the ThreeJS repo is way too big. It's like 20m tall. That's why the z value has to be bigger to see the bug. If this mesh is scaled down at realistic size, then the bug starts to appear even at 100m.

    Three.js version
    • [x] Dev
    • [x] r89
    • [x] ...
    Browser
    • [ ] All of them
    • [ ] Chrome
    • [ ] Firefox
    • [ ] Internet Explorer
    • [x] Safari
    OS
    • [ ] All of them
    • [ ] Windows
    • [ ] macOS
    • [ ] Linux
    • [ ] Android
    • [x] iOS
    Hardware Requirements (graphics card, VR Device, ...)

    iPhone 6, 8

    Bug 
    opened by qornflex 114
  • Modules

    Modules

    Bear with me, this PR is a bit of an epic...

    Following the discussion on https://github.com/mrdoob/three.js/issues/4776, this PR converts the Three.js codebase to ES2015 modules, and updates the build process to use Rollup (full disclosure – I'm the author of Rollup).

    The resulting build/three.js file is functionally identical to the existing one – the examples continue to work* without modification – albeit slightly smaller when minified, because the various modules can now refer to e.g. Mesh instead of THREE.Mesh, meaning everything gets mangled properly by UglifyJS.

    Apart from the many advantages discussed in https://github.com/mrdoob/three.js/issues/4776 (easier development, better linting, simpler build process, etc), a great thing about using ES modules is that people will be able to do this sort of thing in their apps...

    import * as THREE from 'three';
    
    const mesh = new THREE.Mesh();
    // ...
    

    ...and rather than including the entire library in the resulting bundle, ES-module aware tools that can do tree-shaking will be able to discard unused parts of the library.

    Changes

    The nice thing about using modules is that you no longer have to specify the order in which files should be included. The frustrating thing about modules is that you lose control over the order in which files are included.

    Specifically, when you have cyclical dependencies – which Three.js has a few of – you're at the mercy of the topological sorting algorithm (per the ECMAScript spec). If you have a file like KeyframeTrack which depends on the various subclasses in animation/tracks, each of which depend on KeyframeTrack, you end up with a situation in which the prototypes of the subclasses don't inherit from the parent because the execution order is all wrong. The solution I've used here is to put the KeyframeTrack prototype and constructor function in separate files, which allows for a stable sort. A similar thing was necessary with Shape and Path.

    I also moved all the constants like THREE.CullFaceNone into a separate constants.js module so that other files in the codebase can refer to them without introducing a cyclical dependency.

    Similarly, the various cases of object instanceof THREE.Mesh and so on have been replaced with object && object.isMesh (and the relevant constructors have been augmented such that this.isMesh is true for all instances of Mesh. This also eliminates some nasty cyclical dependencies.

    Finally, THREE.AudioContext is a bit tricky because it's a getter: with modules, THREE is just a namespace rather than an object, and while an object can have getters a namespace can't. So internally, AudioListener etc do this.context = getAudioContext() rather than this.context = AudioContext. For the UMD build, the getter is added to the export, so as far as consumers of the library are concerned THREE.AudioContext will continue to behave exactly as before.

    Next steps

    If you merge this (and I hope you do, but will understand if it's a bit of a leap and needs some work first!), it will pave the way for further optimisations. For example, there are lots of places where IIFEs are used to avoid polluting the global namespace – with modules, that's not necessary (everything is local), so it's possible to get rid of those. I didn't do any of that stuff with this PR because most of the changes were generated by a script (in https://github.com/rollup/three-jsnext).

    Eventually this should make it easier to move certain parts out of the core library and into separate plugin repos, if that's your intention.

    Let me know what you think, and thanks for reading this far!


    *actually that's not quite true – the mirror / nodes example is giving me a 'Shader couldn't compile' error... I wasn't quite able to figure out what's going on, but maybe it's obvious to someone else?

    opened by Rich-Harris 112
  • Editor: Set ColorManagement.legacyMode = false

    Editor: Set ColorManagement.legacyMode = false

    The <input type="color"> HTML element provides an sRGB color picker1, and the preview swatches shown in the picker reflect that, but the Editor does not. I think it would be best to account for the color space when working in the Editor. This allows, for example, setting #1A7FEB anywhere in the Editor and seeing the color consistently in the HTML picker, MeshBasicMaterial color, Fog color, and so on.

    Related:

    • https://discord.com/channels/685241246557667386/1059601330211131402/1059601330211131402

    1 By default in Safari and Firefox, and with no other options in Chrome. The option to reach Linear-sRGB ("Rec. ITU-R BT.709-5") in Safari and Firefox is pretty hard to find, and I doubt we can expect users to do so. That option does not affect the value returned to the page, which appears to be sRGB in any case.

    Enhancement Editor 
    opened by donmccurdy 6
  • node material not working with shadowmap.enabled = true

    node material not working with shadowmap.enabled = true

    Description

    it will cause an error when setting a uniform value specific to MeshDistanceMaterial: Cannot read properties of undefined (reading 'value') at https://github.com/mrdoob/three.js/blob/master/src/renderers/webgl/WebGLMaterials.js#L665

    that is because the node builder overwrites it here: https://github.com/mrdoob/three.js/blob/master/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js#L96

    which happens because of this: https://github.com/mrdoob/three.js/blob/master/examples/jsm/renderers/webgl/nodes/WebGLNodes.js#L13

    the fix is to just overwrite onBuild again for MeshDistanceMaterial.

    THREE.MeshDistanceMaterial.prototype.onBuild = () => undefined;
    

    or disabling shadowmap...

    Reproduction steps

    n/a

    Code

    n/a

    Live example

    n/a

    Screenshots

    No response

    Version

    145

    Device

    Desktop

    Browser

    Chrome

    OS

    Windows

    opened by patricklx 0
  • MeshDepthMaterial with alphaTest not working

    MeshDepthMaterial with alphaTest not working

    Description

    Trying to cast a shadow with alphaTest using a customDepthMaterial appears not to be working since ~r0.132. I've provided a link to a sandbox example that is working correctly, but selecting a later version of the library causes it to break.

    I have found that if the customDepthMaterial is also set as the material of the mesh, then the customDepthMaterial does work (somewhat), although changing this at runtime has different results than doing so before the mesh gets rendered.

    Reproduction steps

    1. create a scene with a mesh and shadow-casting light
    2. assign a customDepthMaterial with a map and some value of alphaTest to the mesh.

    Code

    const loader = new THREE.TextureLoader();
    const texture = loader.load("/whatever.png");
    const shadowCasterGeometry = new THREE.PlaneGeometry(10, 10);
    const shadowCasterMaterial = new THREE.MeshStandardMaterial({
      color: "#fff",
      side: THREE.DoubleSide,
      map: texture,
      transparent: true
    }) as THREE.Material;
    const shadowCaster = new THREE.Mesh(shadowCasterGeometry, shadowCasterMaterial);
    shadowCaster.customDepthMaterial = new THREE.MeshDepthMaterial(
      {
        map: texture,
        alphaTest: 0.6,
        depthPacking: THREE.RGBADepthPacking,
        transparent: false
      }
    );
    

    Live example

    Screenshots

    image image

    Version

    r>131

    Device

    Desktop

    Browser

    Chrome

    OS

    No response

    opened by xinaesthete 1
  • GLTFLoader: Non-deterministic order of children

    GLTFLoader: Non-deterministic order of children

    Description

    Recent changes to GLTFLoader no longer loads child objects in an predictable order.

    Object hierarchies from GLB files have loaded in predictable order for a few versions. That is no longer the case.

    We now need to interrogate the properties of each sub object in an array to correctly assign meshes and bones. Not sure if this should have been the case and I have been relying on undocumented behaviour by assuming consistent indexes and ordering of components in arrays.

    Recent optimisations in loading are great but I've lost more cycles interrogating each node in the hierarchy than I've saved.

    Reproduction steps

    1. load a model with GLTFLoader on r147 with 2 children, mesh and bones
    2. assign mesh and skeleton using the predictable indexes of the children, in this case 0 = mesh, 1 = skeleton
    3. confirm working correctly
    4. upgrade to r148 and load the same object using the updated GLTFLoader
    5. note skeleton is now index 0, mesh is index 1 in the children array
    6. assign the wrong objects to the wrong values, embrace sadness

    Code

    // issue
    this.armature = {'some object loaded with r148'}
    this.mesh = this.armature.children[1];  // indexes are no longer predictable could be 1 or 0
    this.skeleton = this.armature.children[0]; // its a 50/50 guess now
    
    // fix 
    this.mesh = expensiveTraversalAndChecksForMesh(this.armature.children); 
    this.skeleton = expensiveTraversalAndChecksForSkeleton(this.armature.children);
    

    Live example

    • i don't have a live example

    Screenshots

    No response

    Version

    r148

    Device

    Desktop

    Browser

    Chrome

    OS

    Windows

    Regression Loaders 
    opened by epreston 2
  • Docs/Examples/Manual: Keep focus when clear search input.

    Docs/Examples/Manual: Keep focus when clear search input.

    This was constantly annoying me, especially on mobile[^1]... [^1]: especially on mobile because we cannot ctrl+a easily with the virtual keyboard. But tbh loosing focus was also annoying me on desktop if using the X button

    BEFORE: In the search field, when clearing my query (with the X button), I lost the focus and have to click on the field again (at 00:07 in the 1st screencast) to type another query

    https://user-images.githubusercontent.com/76580/209435321-b43b99a1-da6a-4653-8fc3-bf3f67f726e0.mp4

    AFTER: I keep the focus and can continue typing a different query

    https://user-images.githubusercontent.com/76580/209435347-d4ed24f8-4c5e-4d2c-8239-0e98ed77e0aa.mp4

    NB: I've renamed (in a separate commit) the X button from exitSearchButton to clearSearchButton just to better reflect what it is now doing

    opened by abernier 2
Releases(r148)
  • r148(Dec 22, 2022)

    • Global
      • Unify userData check in toJSON(). #25026, #25085 (@Hoodgail, @Mugen87)
      • Change defaults of geometry generators to match Blender. #25086 (@Dannie226)
    • BufferAttribute
      • Make normalized parameter optional. #25046 (@linbingquan)
    • BufferGeometry
      • Clean up. #25045 (@linbingquan)
    • Material
      • Add TwoPassDoubleSide. #25165 (@Mugen87)
    • Mesh
      • Add getVertexPosition(). #25049 (@elalish)
    • Object3D
      • Ensure localToWorld() uses the updated world matrix. #25097 (@WestLangley)
      • Add getObjectsByProperty(). #25006 (@ANFADEV)
    • ObjectLoader
      • Honor Texture.generateMipmaps. #25109, #25110 (@Hoodgail)
    • WebGLBackground
      • Don't tone map sRGB backgrounds. #25134 (@elalish)
    • WebGLRenderer
      • Force highp for uv computation in bilinearCubeUV(). #25121 (@Mugen87)
      • Remove all( bvecN( ... ) ) workaround. #25119 (@LeviPesin)
    • WebGLShadowMap
      • Properly honor customDepthMaterial. #25137 (@WestLangley)
    • WebGLTextures
      • Only use anistropic filtering with certain minFilter/magFilter combinations. #25068 (@hybridherbst)
    • WebGLUniformsGroups
      • Fix programs sharing multiple UBO and support array uniforms. #25084 (@RenaudRohlinger)

    Documentation

    • Clean up. #25141 (@Mugen87)
    • Improve ColladaExporter page. #25066 (@atul-mourya)
    • Improve PointLight page. #25136 (@marquizzo)
    • Support unicode links. #25099 (@bergden-resonai)
    • Improve Italian translation. #25160 (@AngyDev)
    • Replace inline links for template version. #25152 (@bergden-resonai)
    • Refactor link generation to allow more natural mouse interaction. #23071 (@gero3)

    Manual

    • Correct material table. #25087 (@Mugen87)

    Examples

    • Clean up #25057, #25151 (@LeviPesin, @WestLangley)
    • Remove examples/js. #25043 (@Mugen87)
    • Remove obsolete dependency. #25051, #25052, #25053 (@Mugen87)
    • Unify default options pattern in exporters. #25060 (@Mugen87)
    • Remove customDistanceMaterial from webgl_shadowmap_pointlight example. #25091 (@WestLangley)
    • Add rotation/translation to webgl_lines_fat_raycasting example. #25042 (@bergden-resonai)
    • Throw exception when processing textures with no image data in exporters. #25093, #25100, #25106 (@Mugen87)
    • Hide scrollbars in webgl_effects_ascii example. #25047 (@linbingquan)
    • Improve webgl_buffergeometry_compression example. #25118 (@WestLangley)
    • Port webgl_materials_lightmap to NodeMaterial. #25123 (@sunag)
    • Make some examples more mobile friendly. #25145, #25146 (@Mugen87)
    • Updated lil-gui to 0.17.0. #25147 (@linbingquan)
    • Add pixel frustum alignment in webgl_postprocessing_pixel example. #25140 (@zalo)

    • ColladaLoader

      • Change file version printing to debug rather than log level. #25143 (@wxmerkt)
    • CSMShader

      • Fix shadows with spotlights. #25116 (@titansoftime)
    • GLTFLoader

      • Clean up skeleton binding. #25033 (@takahirox)
      • Clean up node hierarchy build. #25058 (@takahirox)
      • Fix regression in normalized attributes. #25076 (@donmccurdy)
      • Add loadNode() hook. #25077 (@takahirox)
      • loadNode() dependency request optimization. #25079 (@takahirox)
    • GroundProjectedEnv

      • Clean up. #25107 (@WestLangley)
    • LineSegments2

      • Fix raycasting when the geometry has instanceCount set. #25032 (@MixMasterMitch)
    • MMDLoader

      • Set material type to MMDToonMaterial. #25117 (@WestLangley)
    • NodeMaterial

      • Clean up. #25075 (@sunag)
      • Implement CacheNode. #25041 (@sunag)
      • Added FogExp2. #25073 (@sunag)
      • Improve syntax in ShaderNode (fluent interface). #25074 (@sunag)
    • PackedPhongMaterial

      • Simplify and update shader. #25127 (@WestLangley)
    • SSAARenderPass

      • Fix blending equation. #25089 (@skillbert)
    • SVGLoader

      • Fix hole identifier. #25065 (@Ttommeke)
    • TransformControls

      • Fix position of AXIS handle. #25080 (@Mugen87)
    • WebGPURenderer

      • Fix binding size. #25072 (@sunag)
      • Support AmbientLight, DirectionalLight and SpotLight. #25150 (@sunag)

    Editor

    • Fix usage of USDZExporter. #25055 (@Mugen87)

    Benchmarks

    • Fix rotation setup in updateMatrixWorld() test. #25112, #25122 (@diarmidmackenzie)
    Source code(tar.gz)
    Source code(zip)
  • r147(Nov 30, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r146--r147 https://github.com/mrdoob/three.js/milestone/60?closed=1

    • Color
      • Update the default color space settings. #24965 (@WestLangley)
    • CubeCamera
      • Orient cameras right-side-up. #24921 (@WestLangley)
    • FileLoader
      • Add X-File-Size header support. #24971 (@mxsxs2)
    • Helpers
      • Add missing type definitions. #24159 (@Heaust-ops)
      • Ensure light helpers are not frame-late. #21427 (@Mugen87)
    • InstancedBufferGeometry
      • Remove unused argument from super.toJSON(). #24948 (@ycw)
      • Remove redundant clone() code. b58ecfd1701f29b1bac486f36c2d624cda3ef79a (@mrdoob)
    • Lights
      • Change default decay to 2. #23897, #24941, #24942 (@mrdoob, @Mugen87)
    • LOD
      • Add hysteresis option. #14566 (@donmccurdy)
    • Matrix3
      • Added 2D transform methods. #24985 (@WestLangley)
    • ObjectLoader
      • Call onError() if no metadata found in JSON. #24891 (@frading)
    • Scene
      • Add backgroundIntensity. #24876 (@WestLangley)
    • Shaders
      • Remove outdated code. #24977 (@WestLangley)
    • Texture
      • Add DEFAULT_ANISOTROPY. #25015 (@WestLangley)
    • WebGLAttributes
      • Call onUploadCallback() again after updating a buffer. #24912 (@luisfonsivevo)
    • WebGLLights
      • Remove outdated comment. #24966 (@WestLangley)
    • WebGLRenderer
      • Remove deprecated code. #24867 (@Mugen87)
      • Enable rendering without vertex data. #24179 (@filonik)
      • Consider .outputEncoding for background, clear color, and fog. #23937 (@donmccurdy)
    • WebGLShadowMap
      • Support material.map with alphaTest. #25000 (@WestLangley)
    • WebGLState
      • Assign boolean to currentPremultipledAlpha. #24955 (@ycw)
    • WebGLUtils
      • Move RedFormat to WebGL 2 section. #24945 (@LeviPesin)
    • WebXRManager
      • Add AR plane detection. #24855 (@richardanaya)
      • Fix hand joints not being initialized when hand connected. #24827 (@DevPika)

    Documentation

    • Clean up. #24911, #24953, #24954, #24994, 25036 (@Mugen87, @bergden-resonai)
    • Improve BufferGeometryUtils page. #24874, #24875 (@Mugen87)
    • Improve Material page. #24931 (@WestLangley)
    • Improve MeshPhysicalMaterial page. #24917 (@WestLangley)
    • Improve OrbitControls page. #24951 (@Draichi)
    • Improve PointLightShadow page. #24927 (@Mugen87)
    • Improve WebGLProgram page. #24889 (@Mugen87)
    • Improve Color Management guide. #24929 (@donmccurdy)
    • Improve Installation guide. #24579, #24887 (@LeviPesin, @Mugen87)
    • Improve Libraries and Plugins guide. #24947 (@mallsoft)
    • Improved French translation. #24928 (@xMael-Kehl)
    • Improve Italian translation. #24882, #24885, #24905 (@AngyDev)
    • Started Russian translation. #24896 (@bad4iz)

    Manual

    • Clean up. #24901 (@nmattia)
    • Improve Chinese translation. #24884, #24907 (@mk965)
    • Improved French translation. #24913 (@Lecrapouille)
    • Change examples to addons. #24888 (@LeviPesin)
    • Fix code error in load-gltf.html. #24976 (@thelostword)

    Examples

    • Clean up. #24869, #24881, #24880, #25018 (@Mugen87, @linbingquan, @WestLangley)
    • Improve GUI of pathtracer demo. #24862 (@Mugen87)
    • Add new pixelization effect. #24873 (@KodyJKing, @Mugen87)
    • Fix raycasting in webgl_lines_fat_raycasting example. #23690 (@gkjohnson)
    • Add WebGPU flag tip message for Chrome. #24892 (@sunag)
    • Simplify calls to lookAt(). #24909 (@WestLangley)
    • Updated external subdivision demo. #24930 (@stevinz)
    • Update WebGPU examples to honor new decay value. #24981 (@sunag)
    • Allow passing GLTFLoader into OculusHandModel/XRHandMeshModel. #25013, 8422f325cabf2afb6b327a172b7e73fae1989c52 (@hybridherbst, @Mugen87)

    • CCDIKSolver

      • Make .createHelper() compatible with generic SkinnedMesh. #24988 (@abernier)
    • ColladaLoader

      • Fix line rendering with incompatible materials. #25017 (@Mugen87)
    • FBXLoader

      • Add warning about unsupported polygons. #25030, #25035 (@Mugen87)
    • GLTFExporter

      • Remove KHR_materials_pbrSpecularGlossiness support. #24950 (@donmccurdy)
    • GLTFLoader

      • Honor extras in light definitions. #24897 (@Mugen87)
      • Support accessors with no bufferView. #24904 (@Mugen87)
      • Add getDependency( type, index ) implementation. #24252 (@hybridherbst)
      • Remove KHR_materials_pbrSpecularGlossiness support. #24950 (@donmccurdy)
      • Make navigator access more robust. #24989 (@Hoodgail)
      • Clean up loadSkin(). #25007 (@takahirox)
      • Fix exception when a texture can't be fetched/created. #25014 (@hybridherbst)
      • Update comment. #25034 (@takahirox)
    • LDrawLoader

      • Include building step count in model. #24868 (@sbgib)
    • LineSegments2

      • Fix raytracing when the mesh has a transformation applied. #24405 (@MixMasterMitch)
    • NodeMaterial

      • Fix WebGPUNodeBuilder.repeatWrapping(). #24922 (@sunag)
      • Add ViewportNode. #24934 (@sunag)
      • Add audio processing using ShaderNode. #24918 (@sunag)
      • Fix OperatorNode. #24970 (@LeviPesin)
      • Fix ConvertType. #24967 (@LeviPesin)
      • Move ShaderNode internals to a Node class. #24961 (@LeviPesin)
      • Add support to material.vertexColors. #25002 (@sunag)
      • Fix _listeners warning. #25003 (@sunag)
    • OrbitControls

      • Enable keyboard rotation with modifier keys. #24974 (@nikolas)
    • PCDLoader

      • Remove unnecessary escape character. #24960 (@puxiao)
    • PLYLoader

      • Allow custom attributes. #25001 (@alankalb)
    • SVGLoader

      • Use new 2D Matrix3 transform methods. #24987 (@WestLangley)
    • USDZExporter

      • Add anchoring support. #22854, #24865 (@aleneum, @Mugen87)
      • Fix default plane anchoring orientation and add precision specifiers. #25012 (@hybridherbst)
    • USDZLoader

      • Fix loading files exported with USDZExporter. #25023 (@hybridherbst)
    • WebGPURenderer

      • Add textured background support. #24986 (@sunag)

    Tests

    • Implement Object3D inheritance tests. #25009 (@ANFADEV)
    Source code(tar.gz)
    Source code(zip)
  • r146(Oct 27, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r145--r146 https://github.com/mrdoob/three.js/milestone/59?closed=1

    • AudioContext
      • Use class syntax. #24840 (@linbingquan)
    • CompressedArrayTexture
      • Add new class for supporting compressed texture arrays. #24745 (@RenaudRohlinger)
    • Earcut
      • Upgrade to version 2.2.4. #24760 (@yanranxiaoxi)
    • InstancedMesh
      • Use renderable instanceMatrix default. #24749 (@CodyJasonBennett)
    • Material
      • Fix attenuationDistance in toJSON(). #24798 (@davcri)
    • Ray
      • Improve readability in intersectBox(). #24790 (@Mugen87)
    • Scene
      • Add backgroundBlurriness. #24752 (@Mugen87)
    • Sphere
      • Simplify some methods. #24721 (@WestLangley)
    • WebGLRenderer
      • Remove unnecessary if statement. #24816 (@linbingquan)
      • Refactor background shaders. #24805 (@WestLangley)
    • WebGLRenderTarget
      • Use default parameters for dimensions. #24747 (@Mugen87)
    • WebGLTextures
      • Make userAgent test more robust. #24717 (@linev)
      • Fix warning when using 3D Textures. #24753 (@clemenssielaff)
    • WebGLUniforms
      • Improve setValueV2/3/4(u)i functions. #24784 (@Mugen87)

    Documentation

    • Clean up. #24734, #24735, #24813, #24848 (@AngyDev, @Mugen87, @jynxio)
    • Improve Chinese translation. #24814, #24841, #24852 (@jynxio, @callmegaga, @xlsfs)
    • Improve French translation. #24824 (@Mael-Kehl)
    • Improve Italian translation. #24782, #24850 (@AngyDev)
    • Improve GLTFLoader page. #24808 (@Mugen87)
    • Improve MeshLambertMaterial page. #24847 (@ianklatzco)
    • Improve MeshPhysicalMaterial page. #24836 (@Mugen87)
    • Improve Object3D page. #24726 (@0xAxiome)
    • Improve Scene page. #24831 (@Mugen87)
    • Improve Triangle page. #24837 (@Borodin)
    • Improve VideoTexture page. #24768 (@Mugen87)
    • Fix raycast() return type. #24741 (@Mugen87)

    Manual

    • Improve Chinese translation. #24761 (@MongooseSong)

    Examples

    • Clean up. #24737, #24738, #24793, #24859 (@StrandedKitty, @WestLangley, @Mugen87, @linbingquan)
    • Implement dispose() in post processing passes. #24724 (@Mugen87)
    • Add setSize() to more post-processing passes. #24744 (@Mugen87)
    • Improve webgl_lights_spotlight example. #24751 (@WestLangley)
    • Use ESM version of lottie. #24763 (@Mugen87)
    • Add space character support for search. #24775 (@sunag)
    • Add external three-gpu-pathtracer example. #24803 (@gkjohnson)
    • Improve webgl_tonemapping example. f3b1f55d6ba3a2e467e017ab9e3aead9e441f64a (@mrdoob)
    • Add VelocityShader and update webgl_materials_channels example. #23784 (@bhouston)
    • Improve webgpu_equirectangular mouse drag interaction. #24844 (@sunag)
    • Simplified webgl_nodes_loader_gltf_sheen example. ddaf9ea688ec051005341605d19b86ca357b3310 (@mrdoob)

    • BufferGeometryUtils

      • Skip .userData in .mergeBufferGeometries(). #24754 (@donmccurdy)
    • EffectComposer

      • Add dispose(). #24712 (@Mugen87)
    • FBXLoader

      • Refactor material index warning. #24742 (@Mugen87)
    • GLTFLoader

      • Add EXT_mesh_gpu_instancing built-in plugin. #24528 (@takahirox, @shantzis1962)
      • Allow JOSN objects in parse(). #24801 (@Hoodgail)
      • Use source name for texture if available. #24849 (@Mugen87, @donmccurdy)
    • HTMLMesh

      • Delete canvas from internal weak map in dispose(). #24779 (@jrjdavidson)
    • KTX2Loader

      • Make _createTexture() async for better error handling. #24810 (@jameszhong2008)
    • MaterialXLoader

      • Add new loader. #24707 (@sunag)
    • NodeMaterial

      • Add triplanar texture mapping. #24714 (@sunag)
      • Fix support for extended classes. #24723 (@sunag)
      • Add posterize() and reciprocal() for ShaderNode. #24767 (@sunag)
      • Change static string style. #24807 (@sunag)
      • Move generate() to construct(). #24823 (@sunag)
      • Optional varying interpolation #24821 (@sunag)
      • Add equirectUV(). #24825 (@sunag)
    • SceneUtils

      • Add sortInstancedMesh(mesh, fn). #24113, #24833 (@donmccurdy)
      • Add reduceVertices(). #22742 (@elalish)
    • SVGLoader

      • Implement ellipse transformations. #24750 (@nkrkv)
      • Support arbitrary arcs transforms. #24778 (@nkrkv)
    • USDZExporter

      • Add camera support. #24854 (@Vochsel)
    • WebGPURenderer

      • Move .init() to private scope and add .setAnimationLoop(). #24755 (@sunag)

    Editor

    • Remove UIListbox namespace from ListboxItem. #24765 (@puxiao)
    • Add transmissionMap and thicknessMap support. #24791 (@davcri)
    • Improved Chinese translation. #24795, #24804 (@linbingquan)
    • Add backgroundBlurriness support. #24783 (@Mugen87)
    • Fix drag'n'drop in outliner when using Chrome. #24802 (@Mugen87)
    • Add sheen support. #24835 (@Mugen87)
    Source code(tar.gz)
    Source code(zip)
  • r145(Sep 29, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r144--r145 https://github.com/mrdoob/three.js/milestone/58?closed=1

    • Global
      • Add .dispose() to helpers. #24655, #24666, #24668, #24669, #24670 (@WestLangley, @sunag, @Mugen87)
    • LightShadow
      • Improve .updateMatrices(). #24675 (@WestLangley)
    • MeshPhysicalMaterial
      • Match behavior of attenuationDistance to KHR_materials_volume. #24622 (@zach-capalbo)
    • PropertyBinding
      • Fix map property binding regression. #24603 (@hybridherbst)
    • ShaderChunks
      • Remove obsolete comment. #24608 (@Mugen87)
      • Remove legacy workaround for Adreno bug. #24611 (@WestLangley)
    • Sphere
      • Fix expandByPoint() with empty spheres. #24694 (@gkjohnson)
      • Fix union() with empty spheres. #24701 (@gkjohnson)
      • Clean up. #24704 (@WestLangley)
    • WebGLState
      • Fix setting of NeverDepth. #24628 (@mrxz)
      • Minimize gl.activeTexture() calls. #24492 (@snagy)
    • WebGLTextures
      • Store source version in properties object. #24599 (@Mugen87)
      • Force linear encoding for WebXR render targets. #24698, bcdc5c5432dd338ab2b3fe9951d614711ba4f449 (@cabanier, @mrdoob)
    • WebGLUniforms
      • Cache texture unit values when setting texture array uniforms. #24637 (@snagy)

    Documentation

    • Rename WebXR basics link to have perfect match name. #24601 (@AngyDev)
    • Honor blendMode in animation pages. #24614 (@Mugen87)
    • Clarify .dispose() methods. #24654, #24667 (@WestLangley)
    • Improve BufferGeometry page. #24616 (@erasta)
    • Improve CapsuleGeometry page. #24626 (@mkeblx)
    • Improve PointsMaterial page. #24695 (@AngyDev)
    • Improve SpotLight page. #24606, #24615 (@V-R-Dighe, @WestLangley)
    • Improve French translation. #24598, #24651 (@AlexandreAllard)
    • Improve Italian translation. #24592, #24619, #24640, #24687 (@AngyDev)

    Examples

    • Clean up. #24590, #24686 (@kintel, @Mugen87)
    • Add license for nurbs.fbx. #24602 (@LouisBrunner)
    • Fix animation speed in webgl_multiple_elements_text example. #24596 (@CalebBabin)
    • Export helper classes from ConvexHull module. #24594 (@erasta)
    • Add new webgl_animation_skinning_ik example. #24652 (@abernier)
    • Move remaining controls to Pointer Events. #24693 (@Mugen87)
    • Fixed webxr_vr_layers example. #24691 (@sigmaxipi)
    • Explicitly use event in onPointerUp(). #24708 (@LukasSchmid97)

    • BufferGeometryUtils

      • Fix mergeVertices() with normalized vertex attributes. #24577 (@donmccurdy)
    • CSM

      • Ensure remove() removes light targets, too. #24658 (@yoshikiohshima)
    • GLTFExporter

      • Remove truncateDrawRange option. #24625 (@Mugen87)
    • HTMLMesh

      • Fix canvas cache usage. #24650 (@Degubi)
    • InteractiveGroup

      • Use getBoundingClientRect() when computing pointer. #24586 (@werto165)
    • NodeEditor

      • UX updates. #24573 (@sunag)
    • NodeMaterial

      • Add RemapNode and BlendModeNode. #24649 (@sunag)
      • Various updates and fixes. #24662 (@sunag)
      • Add three/nodes export to package.json. #24660 (@LeviPesin)
      • Add TangentNode and BitangentNode. #24672 (@sunag)
      • Add frameId to ShaderNode. #24680 (@sunag)
      • Add luminance() and lumaCoeffs to ShaderNode. #24682 (@sunag)
      • Add MaterialX procedural functions and overloading support to ShaderNode. #24699 (@sunag)
    • OctreeHelper

      • Add update(). #24641 (@erasta)
    • OutlinePass

      • Fix shader compilation error. #24681 (@TobyGilbert)
    • TrackballControls

      • Fix multi-touch in onTouchEnd(). #24631 (@Fly-in-Free)
    • TransformControls

      • Fix eye vector computation. #24583 (@Mugen87)
    • USDZLoader

      • Support files created with USDZExporter. 73581817a19c75b0c68efe468a3888cbd20c380b (@mrdoob)
      • Added normals handling. f82bbc9c0d64e5fba89175cf58089c3891fb73b3 (@mrdoob)
      • Added transforms support. 141011da4aa278babb9175999e7d619999ee69d1 (@mrdoob)
      • Improved geometry and material parsing. b72144efe0d6ec083b17c5fe8c0d0582806c60d7 (@mrdoob)
      • Handle mesh names. 8938d338bc3ff4fc38f466158a50040251c0b772 (@mrdoob)
      • Improved texture support. d190283b1059c22b6f0bb61916cfcc7d8a0cf5c3 (@mrdoob)
      • Clean up. 3ab8b6a0100aa2ea5b34f9c689fd9244999e50b6, 12b970fe21ea16bd97532317f59adcfb3f8b15dc (@mrdoob)
    • VRMLLoader

      • Process Anchor node as grouping node. #24645 (@Mugen87)

    Editor

    • Add secure headers and clean up. #24217 (@LeviPesin)
    Source code(tar.gz)
    Source code(zip)
  • r144(Aug 31, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r143--r144 https://github.com/mrdoob/three.js/milestone/57?closed=1

    • Global
      • Remove legacy code. #24400, #24426, #24424, #24431 (@LeviPesin, @gero3)
      • Deprecate legacy BufferGeometry nomenclature for built-in geometries. #24352 (@WestLangley)
    • AnimationAction
      • Ensure startAt() works with clampWhenFinished set to true. #24434 (@gero3)
    • BufferAttribute
      • Support (de)normalization in accessors. #22874, #24511, #24526 (@donmccurdy, @gkjohnson)
      • Remove type specific copy methods. #24550 (@Mugen87)
    • BufferGeometry
      • Remove merge(). #24454 (@Mugen87)
      • Account for PRIMITIVE_RESTART_FIXED_INDEX in .setIndex(). #24569 (@Mugen87, @donmccurdy)
    • Color
      • Support HSL(A) with decimal percentage values. #24461 (@Mugen87)
    • MaterialLoader
      • Add missing glslVersion field to parse(). #24402 (@Marco-Ct)
    • MeshLambertMaterial
      • Convert to per-fragment shading. #24452, #24482 (@WestLangley, @Mugen87)
    • MeshToonMaterial
      • Add antialiasing to shader. #24406 (@RenaudRohlinger)
    • Object3D
      • Move Scene.autoUpdate to Object3D.matrixWorldAutoUpdate. #24028, 7ca0bb679cc4b8d4f590af475cf4e550e07724fe, 757dadf2333b5a62f75b1263acf0007abe2bb5b3, c6e93866b79044690ed1ddf9279d9062dac2059d (@CodyJasonBennett, @mrdoob)
    • PolarGridHelper
      • Allow zero radials or zero circles. #24509, #24533 (@JeremieBourque1)
    • PropertyBinding
      • Allow map as target object. #24537 (@Mugen87)
    • ShapePath
      • Remove noHoles parameter. #24560 (@Mugen87)
    • SpotLight
      • Enable textured lighting. #21944, #24557, #24558, 599e0e280a6721ec14506b0792ea614e7781635c (@mbredif, @mrdoob)
    • WebGLPrograms
      • Fix broken fog check. #24439 (@Mugen87)
    • WebGLRenderer
      • Move transmission properties to Material struct. #24435 (@sunag)
      • Use prefix in cube_uv_reflection_fragment defines. #24470 (@CodyJasonBennett)
      • Fix flow accordance of roughness used in transmission. #24433 (@sunag)
      • Remove unnecessary shader chunks. #24475 (@WestLangley)
      • Avoid multiple map lookups. #24457, #24534, #24535 (@jhurliman, @Degubi)
      • Honor transparent, double-sided materials in .compile(). #22266 (@Mugen87)
    • WebXRManager
      • Set stencilBuffer property of WebGLRenderTarget. #24488 (@mrxz)
      • Fix local transform properties of XR camera. #22362 (@zalo)

    Documentation

    • Clean up. #24458, #24494, #24508, #24553 (@Mugen87, @0xlain, @AlexandreAllard)
    • Improve BufferGeometry page. #24496 (@erasta)
    • Improve BufferGeometryUtils page. #24446 (@Mugen87)
    • Improve Creating a scene page. #24497 (@Abhiram-Gullapalli)
    • Improve Installation page. #24408 (@AngyDev)
    • Improve PCDLoader page. #24417 (@Mugen87)
    • Improve Useful links page. #24445 (@Mugen87)
    • Improve WebGLRenderer page. #24489 (@mrxz)
    • Add missing constants. #24422, #24423, #24428, #24430, #24427, #24419, #24447 (@gero3, @Mugen87)
    • Improve Chinese translation. #24513 (@JasonWu008)
    • Improve French translation. #24516, #24552 (@AlexandreAllard)
    • Improve Italian translation. #24455, #24483, #24544, #24561 (@AngyDev)
    • Improve Portuguese translation. #24380, #24514 (@geankaminski)

    Manual

    • Improve Chinese translation. #24415 (@MongooseSong)
    • Fix zh side navigation. #24548 (@gausszhou)

    Examples

    • Clean up. #24463, #24478, #24503 (@davidfitzgibbon, @gero3, @WestLangley)
    • Remove unused Collada file. #24490 (@Stonelinks)
    • Fix behavior of physics_ammo_instancing example with high FPS. #24425, 61907845df5b0881e7c690518c1454771313024e (@CalebBabin, @mrdoob)
    • Update meshopt_decoder module to latest. #24491 (@zeux)
    • Add note about WebP support in webgl_materials_matcap example. #24502 (@WestLangley)
    • Remove imageOrientation: “none” from webgl_loader_imagebitmap example. d0af538927212eb04c0ed9ce3d42a75ce3b5f523 (@mrdoob)
    • Add webgl_modifier_subdivision example. #24397 (@stevinz)
    • Change alias three-nodesthree/nodes. #24413 (@donmccurdy)
    • Add three/addons/* alias. #23406 (@marcofugaro)
    • Simplify webgl_decals example. #24555 (@Mugen87)

    • ColorConverter

      • Remove CMYK conversion formulas. #24495 (@WestLangley)
    • FBXLoader

      • Handle invalid material indices. #24436 (@Mugen87)
      • Fix euler parsing. #24542 (@Mugen87)
    • GLTFLoader

      • Update MeshoptDecoder support to support WebWorkers. #24460 (@zeux)
    • GPUComputationRenderer

      • Add dispose(). #24414 (@Mugen87)
      • Add WebXR compatibility. #24554 (@pigloo)
    • KTX2Loader

      • Support ZSTD-compressed DataTexture and DataTexture3D. #24398 (@donmccurdy)
      • Remove UMD version again, fix typo in denylist. #24540 (@donmccurdy)
    • MeshGouraudMaterial

      • Add new material class. #24467, c5ab44c468a8e861bb53cf97890bda10c083aaf0 (@WestLangley, @mrdoob)
    • MMDPhysics

      • Use CapsuleGeometry. #24448 (@Mugen87)
    • NodeMaterial

      • Remove workaround for Adreno GPUs in MathNode. #24399 (@sunag)
      • Add iridescence support. #24401 (@sunag)
      • Implement .getCacheKey(). #24442 (@sunag)
      • Fix atan2. #24464 (@miko3k)
      • New WebGLNodeBuilder and transmission support. #24453 (@sunag)
      • Add MaterialX noise functions lib. #24504, #24505 (@sunag)
    • OutlinePass

      • Add support for InstancedMesh. #24440 (@TobyGilbert)
    • PLYExporter

      • Add support for point clouds. #24487 (@Mugen87)
    • Reflector/Refractor

      • Change render target setups. #24386 (@Mugen87)
    • RoomEnvironment

      • Add .dispose() method. #24556 (@donmccurdy)
    • SVGLoader

      • Properly handle missing y-value in translate transform. #24395 (@nkrkv)
    • TIFFLoader

      • Add new loader for loading TIFF textures. #24420 (@Mugen87)
    • USDZLoader

      • New loader. #24568 (@mrdoob)

    Editor

    • Do not call .update() for skeleton helpers. #24532 (@Mugen87)
    Source code(tar.gz)
    Source code(zip)
  • r143(Jul 28, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r142--r143 https://github.com/mrdoob/three.js/milestone/56?closed=1

    • Global
      • Remove deprecated code. #24286, #24307, #24292 (@Mugen87)
      • Improve tree-shaking. #24337, #24336 (@pschroen)
    • FileLoader
      • Add response to error object. #24296 (@JacobMuchow)
    • LatheGeometry
      • Fix normals of default shape. #24308 (@Mugen87)
    • PlaneHelper
      • Simplify implementation. #24378 (@WestLangley)
    • WebGLRenderer
      • Clean up. #24392 (@WestLangley)
      • Add support for Uniform Buffer Objects. #21558 (@Mugen87)
      • Rename linearToRelativeLuminance() function. #24347 (@WestLangley)
      • Remove workaround for Adreno GLSL bug. #24390 (@WestLangley)

    Documentation

    • Improve EffectComposer page. #24288 (@iuriiiurevich)
    • Improve Installation page. #24334, #24353 (@Mugen87, @FelipeCortez)

    Examples

    • Fix crossfade bug in webgl_animation_skinning_additive_blending example. #24287 (@mudroljub)
    • Fix title of webgl_modifier_simplifier example. #24324 (@stevinz)
    • Dispose of render targets in webgl_shaders_ocean example. #24327 (@Mugen87)
    • Remove webgl_instancing_modified example. #24335 (@Mugen87)
    • Remove remaining usage of *BufferGeometry geometry generator names. #24349 (@WestLangley)
    • Add support for ground projected environment maps. #24311, #24367, #24368, #24372, 384e5d6ef5b4d819ae985cccdac44c2fba4c6889, b23ae34c02284b3defe6e6566c4ebc809f17649c (@FarazzShaikh, @Mugen87, @mrdoob)
    • Clean up node material examples. #24394 (@mrdoob)

    • ColladaLoader

      • Add warning when converting up axis. #24338 (@Mugen87)
    • GLTFLoader

      • Don't force matrixAutoUpdate to true for animated nodes. #24284 (@snagy)
    • NodeMaterial

      • Add .onInit() method to ComputeNode. #24363 (@sunag)
      • Add MeshPhysicalNodeMaterial. #24385, #24389 (@sunag)
      • Rename NodeVary* to NodeVarying*. #24388 (@sunag)
    • OrbitControls

      • Remove duplicate code. #24333 (@shawn0326)
    • PCDLoader

      • Always use white as default color. #24339 (@Mugen87)
      • Parse intensity field. #24350 (@Mugen87)
      • Parse label field. #24381 (@Mugen87)
    • SelectionHelper

      • Improve display style settings of DOM element. #24322 (@linbingquan)
    • SVGLoader

      • Fix float precision in round join computation. #24314 (@slecorne)
      • Make createShapes() usable for other modules. #24293 (@Mugen87)
    • USDZExporter

      • Fix import. #24366 (@Mugen87)
    • WebGPURenderer

      • Fix render pipeline selection. #24373 (@Mugen87)
      • Introduce WebGPUUtils. #24379 (@Mugen87)
      • Fix computation of the camera frustum planes. #24383 (@WestLangley)

    Editor

    • Improve "compute vertex normals" button. #24309 (@Mugen87)
    • Improve Chinese translation. #24313, #24323 (@linbingquan)
    • Enable centering geometries. #24315 (@Mugen87)
    Source code(tar.gz)
    Source code(zip)
  • r142(Jun 29, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r141--r142 https://github.com/mrdoob/three.js/milestone/55?closed=1

    • Global
      • Improve tree shaking. #24207, #24209, #24210, #24218, #24221, #24094 (@pschroen, @marcofugaro)
      • Make vector and matrix .is* property non-enumerable. #24219 (@marcofugaro)
    • CameraHelper
      • Add .setColors(). #24235 (@Mugen87)
    • InterleavedBufferAttribute
      • Fix typos. #24195 (@Dannie226)
    • Material
      • Remove deprecated vertexTangents. #24136 (@LeviPesin)
    • WebGLRenderer
      • Support more texture types in initTexture(). #24245 (@action-script)
    • WebGLShadowMap
      • Fix enabling VSM. #24223 (@Mugen87)
      • Make test for clipping planes more robust. #24144 (@lumebot)
    • WebXRManager
      • Disable sRGBA format for projection layer. #24222 (@cabanier)
      • Fix input sources being sent to wrong controllers (touch AR). #23188 (@marwie)
      • Fix wrong ray space for Vive OpenXR Runtime. #24056 (@saitonakamura)
      • Remove input source on XR session end. #24269 (@marwie)

    Documentation

    • Improve AmbientLight page. #24273 (@hanisko)
    • Improve BufferGeometry page. #24254, #24256 (@Mugen87, @WestLangley)
    • Improve How to update things guide. #24192 (@Mugen87)
    • Improve Matrix4 page. #24279 (@hanisko)
    • Improve Path page. #24224 (@dummyx)
    • Improve WebGLRenderer page. #24161 (@Strepto)
    • Improve WebGLRenderTarget page. #24230 (@TomHsiao1260)
    • Improve Chinese translation. #24166, #24244, #24282 (@jovey-zheng, @linbingquan, @luoxuhai)
    • Improve map description of materials. #24134 (@ggPeti)

    Manual

    • Fix “morph targets with colors” demo. #24255 (@Mugen87)
    • Improve Setup page. #24266 (@gh0sstt)

    Examples

    • Clean up. #24181, #24190, #24270 (@LeviPesin)
    • Fix webgl2_multiple_rendertargets example for iOS. #24141 (@RenaudRohlinger)
    • Fix URL in webgl_loader_gltf_iridescence example. #24138 (@cx20)
    • Improve molecule demos. #24153 (@Mugen87)
    • Improve webgl_raycast_texture example. #24157 (@Mugen87)
    • Remove CameraControls. #24185, #24232 (@Mugen87)
    • Add webgpu_cubemap_adjustments example. #24206 (@sunag)
    • Add webgpu_particles example. #24247, #24275 (@sunag)
    • Add webgl_raycaster_bvh example. #23907 (@gkjohnson)
    • Renamed some raycaster examples. #24280 (@mrdoob)
    • Added external tag. #24281 (@mrdoob)

    • ArcballControls

      • Use dispose() in makeGizmos(). #24241 (@Mugen87, @Vlad-Apostolov)
    • GLTFExporter

      • Fixed buildMetalRoughTexture() #24197 (@mrdoob)
      • Convert sRGB to Linear in buildMetalRoughTexture(). #24198, 64ac0a2e24a0c02d25ce973611808f9f59ca0e37 (@mrdoob)
    • KTX2Loader

      • Support loading uncompressed DataTexture and Data3DTexture. #24129, #24260, #24260 (@donmccurdy)
    • LDrawLoader

      • Fix two bugs and add seven improvements. #24257 (@yomboprime)
    • MaterialLoader

      • Update static function using ES6 style. #24238 (@sunag)
    • MMDToonShader

      • Add /* glsl */ annotations. #24274 (@ycw)
    • NodeMaterial

      • Add .scaleNode property and support to sprite.center for SpriteNodeMaterial. #24158 (@sunag)
      • Fix unnecessary swizzle in SplitNode. #24170 (@sunag)
      • Fix native renderer.toneMapping usage in WebGLNodeBuilder. #24211 (@sunag)
      • Add RangeNode. #24240 (@sunag) -Fix and improve ReflectVectorNode. #24265 (@sunag)
    • OBJLoader

      • Refactor line parsing. #24175 (@Degubi)
    • OculusHandPointerModel

      • Fix pointer duplication issue. #24142 (@dmliao)
    • OutlinePass

      • Correct gaussian probability density function input. #24262 (@ingun37)
    • PCDLoader

      • Get the byte length of the field correctly. #24278 (@luoxuhai)
    • PLYLoader

      • Fix for line splitting on universal newlines. #24264 (@05gash)
    • ShadowMesh

      • Prevent shadow overlap. #24180 (@N8python)
    • SimplifyModifier

      • Add check if face is not undefined. #24169 (@Suprhimp)
    • SVGLoader

      • Honor styles in svg tag. #24263 (@Mugen87)
    • TransformControls

      • Improve gizmo rendering with orthographic cameras. #24242 (@Mugen87, @WestLangley)
    • USDZExporter

      • Log warning when material.side === THREE.DoubleSide. #24214 (@mrdoob)
    • WebGPURenderer

      • Fix wrong auto dimension on MacOS while generate MipMaps #24135 (@sunag)
      • Update to latest API. #24186, #24233 (@Mugen87, @sunag)
      • Add support for .backgroundNode. #24213 (@sunag)
    Source code(tar.gz)
    Source code(zip)
  • r141(May 26, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r140--r141 https://github.com/mrdoob/three.js/milestone/54?closed=1

    • Global
      • Remove legacy code below r130. #24034 (@Mugen87)
      • Avoid unnecessary prototype access. #24036, #24060, #24069, #24061, #24047, #24092, #24105 (@marcofugaro, @Mugen87)
      • Move deprecated properties and methods to classes. #24040, #24044 (@Mugen87)
    • DepthTexture
      • Change default type to UnsignedIntType. #24019 (@wmcmurray)
    • ExtrudeGeometry
      • Fix .toJSON() when using extrudePath. #24013 (@Mugen87)
    • Interpolant
      • Remove beforeStart_() and afterEnd_() alias definitions. #24076 (@Mugen87)
    • MeshPhysicalMaterial
      • Support iridescence / thin-film materials. #23869, e60a8027463e04b0a6b060c3537798e599086c58 (@PascalSchoen, @mrdoob)
    • Object3D
      • Honor recursive parameter of copy() in subclasses. #24119 (@frading)
    • ObjectLoader
      • Check type of Source.data for loading images. #24067 (@fluxxu)
    • WebGLRenderer
      • Stop checking for FramebufferTexture in .copyFramebufferToTexture(). #23964 (@chubei-oppen)
      • Listen to webglcontextcreationerror event. #24091 (@mrdoob)
    • WebGLMultipleRenderTargets
      • Add multisampling support. #24001(@RenaudRohlinger)
    • WebGLProgram
      • Improve error logging.#24130, #24131 (@LeviPesin, @marcofugaro)
    • WebGLTextures
      • Avoid redundant calls of texStorage2D(). #24095 (@Mugen87)
    • WebXRManager
      • Add undefined check in onSessionEnd(). #23984, #24015 (@kalegd, @Mugen87)
      • Fix caching of baseReferenceFrame and teleport example. #24058 (@richardanaya)
      • Support more than two views. #23972 (@CodyJasonBennett)

    Documentation

    • Add support for code highlighting. #24079 (@sunag)
    • Improve Chinese translation. #23985, #24070 (@linbingquan, @qq284590533)
    • Improve Texture page. #24041 (@dghez)
    • Improve WebGLRenderer page. #24008, #24054 (@Mugen87)
    • Improve Creating a scene guide. #24120, #24126 (@oskar1233, @Mugen87)
    • Improve How to run things locally guide. #24097 (@donmccurdy)
    • Improve FAQ. #24116 (@Mugen87, @looeee)

    Manual

    • Improve Responsive page. #24023 (@exxnnonymous)
    • Improve Primitives page. #24026 (@taenykim)
    • Improve Chinese translation. #24000, #24012, #24063, #24132 (@writey, @MongooseSong)
    • Improve Korean translation. #23977 (@nerdchanii)

    Examples

    • Clean up. #23993, #24121, #24118, b5ec27609676f3caac48434302d3fb296553572a (@jkristensen, @LeviPesin, @Mugen87, @mrdoob)
    • Added webgpu_cubemap_mix example. #24059 (@sunag)
    • Remove deprecated Geometry class and all legacy checks. #24009 (@Mugen87)
    • Added webgl_loader_gltf_iridescence example. c26896dfaececdd007c5f04b1b6de0275172b093 (@mrdoob)
    • Unified MRT examples. 764cf0fa5919e891bc259253e0464dc8033d5fcd (@mrdoob)

    • 3DMLoader

      • Remove usage of THREE namespace. #24075 (@Mugen87)
    • CSS2DRenderer

      • Remove position rounding for Safari. #24122 (@fanciful-marmot)
    • DDSLoader

      • Remove FourCC header check. #24124 (@LeviPesin)
    • EXRLoader

      • Enable long-name attribute flag. #24049 (@sciecode)
    • GLTFExporter

      • Remove embedImages option. #24003 (@Mugen87)
      • Fix export when using OffscreenCanvas. #24031 (@LeviPesin)
      • Fix handling of shared buffer attributes with morph data. #24090 (@Mugen87)
    • GPUStatsPanel

      • Prevent infinite loop when WebGL context is lost. #23990 (@wmcmurray)
    • HTMLMesh

      • Add some more input types and support rounded rectangles. #24030 (@AdaRoseCannon)
    • KTX2Exporter

      • Add new exporter. #24102 (@donmccurdy)
    • NodeMaterial

      • Add support for IBLs + PBR. #24038 (@sunag)
      • nodeType of AttributeNode is now optional. #24050 (@sunag)
      • Add .customProgramCacheKey(). #24096 (@sunag)
      • Fix dpdx and dpdy called from non-uniform control flow in NormalMapNode. #24062 (@sunag)
      • Add .construct() and some architectural changes. #24110 (@sunag)
      • Add sprites and support for InterleavedBufferAttribute. #24117 (@sunag)
    • RGBELoader

      • Simplify texture configuration. #24032 (@deepkolos)
    • SelectionHelper

      • Remove unused parameter from constructor. #24057 (@CarlBateman)
    • WebGPURenderer

      • Improve approach to generate mipmaps of a CubeMap. #23988 (@sunag)
      • Update to latest WebGPU API. #24021 (@sunag)
      • Setting an explicit size in configure() has been deprecated. #24098 (@sunag)

    Editor

    • Clean up. f36dad49fbc5f8c38d1e9d4132c7863ea2d55c7e (@mrdoob)
    • Add basic support for showing morph targets. #24084 (@Mugen87)
    • Add PCDLoader. #24106 (@Mugen87)
    • Add Selector. #23902 909350e65984006757cf2ea6d851181be14dd644, 4e0930a3ca7c026ba9ff47473a0931197f6a9549 (@linbingquan, @mrdoob)
    • Ignore chrome-extension scheme in sw.js. (@mrdoob)
    Source code(tar.gz)
    Source code(zip)
  • r140(May 10, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r139--r140 https://github.com/mrdoob/three.js/milestone/53?closed=1

    • Global
      • Make Euler, Quaternion and Color iterable. #23796 (@Mugen87)
    • CubeCamera
      • Clean up. #23908, #23935 (@mrpink17, @Mugen87)
    • Material
      • Move fog property to materials which support it. #23939 (@Mugen87)
    • MeshDepthMaterial
      • Fix broken depthPacking. #23801 (@Mugen87)
    • PMREMGenerator
      • Add workaround for Pixel phones. #23841 (@elalish)
    • SkinnedMesh
      • Require floating point vertex textures. #23928 (@Mugen87)
    • WebGLBackground
      • Ensure textured backgrounds work with all layers. #23812 (@Mugen87)
    • WebGLBindingsStates
      • Avoid redundant updates when using InstancedMesh. #23653 (@snagy)
    • WebGLLights
      • Remove redundant computation. #23893 (@Mugen87, @WestLangley)
    • WebGLMultipleRenderTargets
      • Fix copy(). #23781 (@RenaudRohlinger)
    • WebGLProgram
      • Support logging errors with no line numbers. #23843 (@gkjohnson)
    • WebGLRenderer
      • Fix transmission render target type check. #23885 (@chubei-oppen)
      • Make context check more safe. #23969 (@soadzoor)
    • WebGLRenderTarget
      • Fix regression when cloning / copying after Source API addition. #23997 (@gkjohnson)
    • WebGLTextures
      • Ensure texStorage2D() is called when forceUpload is true. #23808 (@Mugen87)
      • Fix memory allocation of DepthTexture and FramebufferTexture. #23854, #23868 (@chubei-oppen)
    • WebGLUniforms
      • Remove unused function. #23911 (@RenaudRohlinger)
    • WebXRManager
      • Fix for hand controllers. #23830 (@cabanier)
      • Add .setReferenceSpace(). #20949, #23920 (@arodic, @Mugen87)

    Documentation

    • Clean up. #23804 (@zeh)
    • Move Color management under Next steps. #23794 (@donmccurdy)
    • Improve BufferAttribute page. #23960 (@gsimone)
    • Improve CCDIKSolver page. #23449 (@abernier)
    • Improve DirectionalLightShadow page. #23952 (@kryzodoze)
    • Improve FontLoader page. #23899 (@jynxio)
    • Improve Installation guide. #23788 (@HossamAbdelNasser)
    • Improve Libraries and Plugins guide. #23876 (@gkjohnson)
    • Improve Matrix4 page. #23825 (@makc)
    • Improve MeshPhysicalMaterial page. #23831 (@Mugen87)
    • Improve PointsMaterial page. #23892 (@Mugen87)
    • Improve Useful links guide. #23839 (@Ahlecss)
    • Improve WebGLRenderer page. #23851 (@gkjohnson)
    • Improve WebGLRenderTarget page. #23844 (@OndrejSpanel)
    • Switch to gender neutral terms. #23816 (@inclusive-coding-bot)
    • Fix color values in material browser. #23948 (@Mugen87)
    • Mentioned the need for ImageBitmap.close(). #23959 (@Mugen87, @WestLangley)

    Manual

    • Improve Chinese translation. #23811, #23850, #23878, #23938 (@MongooseSong, @BinarySky10)
    • Improve Korean translation. #23949 (@nerdchanii)
    • Improve Russian translation. #23942 (@Borodin)

    Examples

    • Clean up. #23860, #23861 (@Mugen87, @sunag)
    • Add missing encodings fragment to default shader of Reflector and Refractor. #23863 (@Mugen87)
    • Expose virtual camera of Reflector and Refractor as a property. #23890 (@LR17)
    • Port webgpu_compute to use node classes. #23931 (@LeviPesin)

    • ArcballControls

      • Fix drifting when zooming with the mouse cursor. #23838, 9a836651e6ae8c7c4f7434cd8121e5b6fdc06274 (@Tirzono, @mrdoob)
    • BufferGeometryUtils

      • Rename and improve warnings for MikkTSpace tangents. #23815 (@donmccurdy)
      • Add deinterleaveAttribute(), deinterleaveGeometry() functions. #23814 (@gkjohnson)
      • Remove use of old Material.morphTargets property. #23955 (@willstott101)
    • FBXLoader

      • Fix uv translation being ignored. #23834 (@hybridherbst)
    • GLTFExporter

      • Add WebWorker support. #23857, 340d588ca21de2401f459e402310ec440720d686 (@robertlong, @mrdoob)
      • Check for document before creating OffscreenCanvas. #24035 (@robertlong, @CodyJasonBennett)
    • GLTFLoader

      • Support animation loading via extension. #23810 (@marwie)
      • Add KHR_materials_emissive_strength. #23867 (@hybridherbst)
      • Honor Firefox version when checking for ImageBitmap. #23909 (@Mugen87)
    • MarchingCubes

      • Add update(). #23934 (@gkjohnson)
    • MMDLoader

      • Handle shininess properly. #23889 (@takahirox)
    • NodeMaterial

      • Don't convert type of node if it is not needed. #23786 (@LeviPesin)
      • Rework build and make other updates. #23797 (@LeviPesin)
      • Fix uint usage in ShaderNodeUtils. #23817 (@sunag)
      • Cleanup ShaderNode. #23820 (@LeviPesin)
      • Fix cache. #23828 (@sunag)
      • Updates and revision. #23872 (@sunag)
      • Add missing InstanceNode to Nodes. #23880 (@LeviPesin)
      • Fix uniform function in ShaderNodeElements. #23879 (@LeviPesin)
      • Add ComputeNode. #23905, #23944 (@sunag)
      • Add more exports to ShaderNode. #23901 (@LeviPesin)
      • Add two sides support to NormalMapNode. #23971, #23982 (@sunag)
    • TTFLoader

      • Upgrade opentype.js. #23845 (@Mugen87)
    • UnrealBloomPass

      • Remove unused uniform. #23954 (@gsimone)
    • VRButton

      • Add workaround for WebXRViewer. #23805, 149069fe45acef5d392f9442e87c385dfc95131e (@hybridherbst, @mrdoob)
    • WebGPURenderer

      • Update to latest WebGPU API. #23826 (@sunag)
      • Set compositingAlphaMode to premultiplied. #23827 (@sunag)
      • Add instancing support. #23835 (@sunag)
      • Ensure clear color is alpha premultiplied. #23853 (@Mugen87)
      • Fix Material.side configurations. #23965 (@sunag)

    Editor

    • Fix broken compute vertex normals button. #23865 (@Mugen87)
    • Add CapsuleGeometry. #23914 (@linbingquan)
    • Add support for Material.userData. #23967 (@Mugen87)- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Source code(tar.gz)
    Source code(zip)
  • r139(Mar 31, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r138--r139 https://github.com/mrdoob/three.js/milestone/52?closed=1

    • Global
      • Improve ESLint setup. #23603, #23763, #23767 (@gsimone, @CodyJasonBennett)
      • Fix inheritance in Three.Legacy.js. #23621 (@Mugen87)
      • More usage of fromBufferAttribute(). #23769 (@LeviPesin)
    • CapsuleGeometry
      • Add new geometry generator. #23586 (@gsimone)
    • Color
      • Clamp values in getHex(). #23582 (@mrdoob)
      • Add colorSpace argument for getters/setters. #23392 (@donmccurdy)
    • CubeCamera
      • Disable outputEncoding and tonemapping. #23581 (@mrdoob)
    • DataUtils
      • Added fromHalfFloat(), rewrite toHalfFloat(). #23596 (@Mugen87)
    • Material
      • Remove docstrings. #23651, #23661 (@deepansh96, @Mugen87)
    • MathUtils
      • Fix seededRandom(). #23590 (@Mugen87)
      • Make UUID RFC compliant. #23679, 8a97f905665c8ffb7a247be94410c93c30d1203b (@Mugen87, @mrdoob)
    • ​​MeshStandardMaterial
      • Remove CubeUVRefractionMapping and refractionRatio. #23682 (@Mugen87)
    • PMREMGenerator
      • Fix dispose(). #23697 (@Mugen87)
    • PositionalAudio
      • Disconnect panner in disconnect(). #23703 (@mrdoob)
    • Source
      • Expose class. #23619 (@Mugen87)
    • VideoTexture
      • Fix color space when using with Scene.background. #23782 (@Mugen87)
    • WebGLBindingStates
      • Force update after reset() call. #23691 (@boourns)
    • WebGLMaterials
      • Clean up. #23713 (@mrdoob)
    • WebGLMorphtargets
      • Fix normalized morph color attribute. #23654 (@donmccurdy)
      • Use texelFetch() to sample morph target texture. #23727 (@Mugen87)
    • WebGLProgram
      • Only log the lines around the error. 9d61e463ea09f71edb285857590cbd92f24e2ce2 (@mrdoob)
    • WebGLRenderer
      • Remove artist-friendly factor of PI from light map shader. #23613 (@WestLangley)
      • Use self instead of window. #23686 (@begmec)
      • Clean up. #23717, #23755 (@Mugen87, @alan-wu)
      • Remove call to checkFramebufferStatus(). #23770 (@greggman)
    • WebGLRenderTarget
      • Set texture.flipY to false. #23607 (@WestLangley)
      • Fix copy(). #23732 (@Mugen87)
    • WebGLShaderCache
      • Fix remove(). #23624 (@Mugen87)
    • WebGLTexture
      • Call invalidateFramebuffer() only in Oculus Browser. #23692 (@mrdoob)
    • WebGLUtils
      • Add WebGL constant fallback to convert(). #23813 (@Mugen87)

    Documentation

    • Improve BufferAttribute page. #23620, #23772 (@Mugen87, @donmccurdy)
    • Improve BufferGeometry page. #23740 (@Mugen87)
    • Improve Clock page. #23739 (@Mugen87)
    • Improve DepthTexture page. #23626 (@stevinz)
    • Improve Quaternion.multiplyQuaternionsFlat(). #23577 (@Mugen87)
    • Improve TransformControls page. #23718 (@deepansh96)
    • Improve Chinese translation. #23623, #23643, #23709, #23749, #23778 (@towhare, @jovey-zheng, @1337816495)
    • Improve Creating text guide. #23584 (@r00ster91)
    • Improve Useful links guide. #23746 (@linbingquan)
    • New property description for is* flags. #23583 (@ycw)
    • Fix transparency in material browser. #23576 (@Mugen87)
    • Mentioned Import Maps in Installation guide. #23595 (@Mugen87)
    • Add OBJExporter page. #23674 (@Mugen87)
    • Fix typos. #23723, #23722, #23725 (@jasonsturges)
    • Add documentation for color management. #23430 (@donmccurdy)
    • Escape strings in regex search. #23729 (@Mugen87)

    Manual

    • Improve Chinese translation. #23721, #23715 (@maslke)
    • Fix typos. #23726 (@jasonsturges)

    Examples

    • Clean up. #23632 (@WestLangley)
    • Remove ​​webgl_postprocessing_ssrr example and SSRrPass. #23569 (@mrdoob)
    • Orient objects normal to hittest in webxr_ar_hittest. #23573 (@nosy-b)
    • Simplify some render target setups. #23669 (@Mugen87)
    • Fix opacity in copy and blend shaders. #23671 (@Mugen87)
    • Add webgpu_depth_texture example. #23665 (@sunag)
    • Add canvas font property order fix. #23685 (@mkeblx)

    • BloomPass

      • Use custom combine shader. #23667 (@Mugen87)
    • BufferGeometryUtils

      • Add MikkTSpace version of .computeTangents(). #23716, #23771, #23802 (@donmccurdy)
      • Add mergeGroups(). #23756 (@Mugen87)
    • CSM

      • Directional light without a shadow breaks shaders. #23631 (@OndrejSpanel)
    • FXAAShader

      • Simplify and add support for transparent backgrounds. #23768 (@bhouston, @DanielSturk)
    • GLTFExporter

      • Export same mimetype as import. #23592 (@elalish)
      • Only merge roughness and metalness maps. #23616 (@mrdoob)
    • GLTFLoader

      • Simplify loadImageSource(). #23633 (@donmccurdy)
      • Reorganize texture encoding assignment. #23645 (@donmccurdy)
      • Allow ImageBitmapLoader with Firefox. #23742 (@aardgoose)
      • Fix EXT_TEXTURE_WEBP extension. #23823 (@gernotziegler)
    • HtmlMesh

      • Properly handle comments. #23657 (@remmel)
    • LineSegments2

      • Add world units raycasting and webgl_lines_fat_raycasting example. (@bergden-resonai)
    • Lut

      • Fix color definition and sampling. #23589 (@Mugen87)
    • NodeEditor

      • Add FileURLEditor + MatcapUVEditor. #23705 (@sunag)
    • NodeMaterial

      • Various fixes and updates. #23600, #23647, #23648 (@sunag)
      • Add FogNode. #23606 (@sunag)
      • Add label and temp functions to ShaderNode. #23546 (@LeviPesin)
      • Unify type conversion functions in ShaderNode. #23601 (@LeviPesin)
      • Prevent ShaderNodeObjecting a ShaderNodeObject. #23629 (@LeviPesin)
      • Add BoolNode and UintNode. #23636 (@LeviPesin)
      • Refactor NodeBuilder.format(). #23638 (@LeviPesin)
      • Add buffer() function. #23656 (@LeviPesin)
      • Add ivec, uvec, bvec, imat, umat, and bmat. #23646 (@LeviPesin)
      • Fix properties shared across instances. #23706 (@wmcmurray)
      • Split InputNode into ConstNode and UniformNode. #23663 (@LeviPesin)
      • Fix support for extended classes. #23724 (@sunag)
      • Add CubeTexture for WebGPU and WebGL. #23743 (@sunag)
      • Update ConvertType. #23635 (@LeviPesin)
      • Remove unneeded constants from ShaderNode. #23765 (@LeviPesin)
      • Keywords support in FunctionNode. #23766 (@sunag)
    • PCDLoader

      • Fix ASCII RGB parsing. #23735 (@segments-tobias)
    • SceneUtils

      • Add .createMeshesFromMultiMaterialMesh(). #23762 (@Mugen87)
    • TrackballControls

      • Fix property access in onTouchEnd(). #23658 (@wasabia)
    • USDZExporter

      • Support opacity materials. #23588 (@yuta-hayashi)
    • ViewHelper

      • Fixed container is not defined. #23605 (@linbingquan)
    • VTKLoader

      • Fix parsing of VTP data with multiple components. #23684 (@eino)
      • Fix parsing VTP containing DataArrays of type Int32. #23699 (@eino)
      • Fix bit shift when parsing large buffers. #23720 (@eino)
    • WebGPURenderer

      • Add basic implementation of WebGPURenderStates. #23652 (@sunag)
      • Set compositingAlphaMode. #23776 (@sunag)

    Editor

    • Clean up. #23618 (@linbingquan)
    • Fix deprecated error for matchMedia.addListener. #23610 (@linbingquan)
    • Fix getIntersects() for objects with invisible parents. #23617 (@mrdoob)
    • Refactor animations panel. #23714 (@mrdoob)
    • Add support for vtp files. f1336138f4703435c532d787975467f01a5c7a94 (@mrdoob)
    Source code(tar.gz)
    Source code(zip)
  • r138(Mar 3, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r137--r138 https://github.com/mrdoob/three.js/milestone/51?closed=1

    • Global
      • Remove DeepScan and LGTM alerts. #23341, #23343, #23346, #23351, #23380, #23397, #23410, #23411, #23440, #23442, #23446 (@mrdoob, @Mugen87)
      • Replace deprecated String.prototype.substr(). #23525 (@CommanderRoot)
    • FileLoader
      • Added workaround for Alipay browser's bug. #23548 (@neciszhang)
    • Material
      • Clean up toJSON(). #23438 (@linbingquan)
    • PMREMGenerator
      • Add support for variable size. #23322, #23428 (@elalish)
      • Use logical OR instead of nullish coalescing. #23488 (@Mugen87)
      • Fix anisotropic filtering. #23556, #23558, #23561, 28ce323f825a7f92587a84838c42d25beb2e7d10, 1db78b84b0152fcd561314140a6751109c894906 (@elalish, @mrdoob)
    • Texture
      • Added Source class. #22846, #23419, #23421 (@Mugen87)
      • Set needsUpdate to true in .copy(). #23637 (@Mugen87)
    • Vector3
      • Add setFromEuler(), remove Euler.toVector3(). #23494 (@WestLangley)
    • WebGLCubeRenderTarget
      • Use CubeTexture.image. #23433 (@Mugen87)
      • Simplify constructor. #23443 (@Mugen87)
    • WebGLMultipleRenderTargets
      • Add options to constructor. #22772 (@zalo)
    • WebGLRenderer
      • Enable blending when Material.blending is not set to NormalBlending. #23416 (@gkjohnson)
      • Refactor creation of transmission render target. #23450, #23452, #23460, #23465 (@Mugen87, @mrdoob, @haxiomic, @marcofugaro)
      • Remove WebGLMultisampleRenderTarget. #23455, #23611, #23644 (@Mugen87)
      • Fixed transmission rendering when using ArrayCamera. #23491 (@mrdoob)
      • Honor alpha definition in custom rendering context. #23504 (@Mugen87)
      • Add support for morphing vertex colors. #23523 (@Mugen87)
    • WebGLRenderTarget
      • Clone depthTexture in .copy(). #23462 (@mrdoob)
      • Add new render target types for 3D and array textures. #23498, #23515 (@Mugen87)
    • WebGLTextures
      • Fix for data texture mipmaps uploading to correct levels. #23492 (@MatejJan)
      • Remove render target texture fallback. #23470 (@Mugen87)

    Documentation

    • Clean up. #23345, #23383, #23553, #23532, #23529, #23557 (@Mugen87, @bergden-resonai, @ycw)
    • Improve BoxGeometry page. #23530 (@Mugen87
    • Improve Color page. #23369 (@stevinz)
    • Improve CSS3DRenderer page. #23567 (@SadmanYasar)
    • Improve GLTFLoader page. #23417 (@takahirox)
    • Improve Raycaster page. #23500 (@linbingquan)
    • Improve RectAreaLight page. #23469 (@puxiao)
    • Improved SkinnedMesh page. #23423, #23422 (@makc)
    • Improve Useful-links page. #23396, 23409 (@PratikDev, @Mugen87)
    • Improve Vector* pages. #23437 (@Mugen87)
    • Improve Chinese translation. #23445, #23457, #23487, #23518, #23545 (@jovey-zheng)
    • Add missing Korean pages to list.json. #23391 (@Mugen87)
    • Add some missing API. #23510 (@Mugen87)
    • Use <p> for supporting paragraphs. #23522 (@ycw)
    • Add missing .is* flag. #23565 (@ycw)

    Manual

    • Don't use GammaEncoding. #23364 (@Mugen87)
    • Remove outdated patterns in code examples. #23377, #23387, #23388, #23390 (@Mugen87)
    • Refactor import maps support in live editor. #23373 (@greggman)
    • Avoid usage of minimum pixel ratio. #23489 (@Mugen87)
    • Remove outdated OrbitControls.enableKeys. #23472 (@r00ster91)
    • Improve Chinese translation. #23501 (@ZacharyQin)

    Examples

    • Clean up. #23395, #23426, #23485, #23503, #23535 (@Mugen87, @sunag, @WestLangley, @vHeemstra)
    • Add vertex colors to misc_exporter_ply example. #23375 (@gkjohnson)
    • Add vertex colors to misc_exporter_collada example. #23384 (@gkjohnson)
    • Allow tree-shaking for curves. #23402 (@marcofugaro)
    • Ensure CCDIKHelper is exported. #23404 (@abernier)
    • Rework UI of exporter examples. #23405 (@Mugen87)
    • Remove VRMLoader. #23414 (@mrdoob)
    • Remove old node material. #23418, #23454 (@Mugen87)
    • Properly set draw range in webgl_gpgpu_birds_gltf example. #23435 (@jure)
    • Fix style issue in flow. #23439 (@Mugen87)
    • Fix DOMException when trying to use XR inside an iframe. #23174 (@hybridherbst)
    • Add multisampling support to Reflector/Refractor. #23444 (@Mugen87)
    • Add OctreeHelper. #23481 (@carlssonk, @Mugen87)
    • Add EXRExporter. #23541 (@sciecode)
    • Fix GUI in wide line examples. #23540 (@bergden-resonai)
    • Move new node material to ./jsm/nodes/. #23560 (@sunag)
    • Improve webgl_cubemap_dynamic example. 944aeb1be3b6e86170d2707e315d7ce663c96dd9 (@mrdoob)

    • 3MFLoader

      • Assign names to the created groups and meshes. #23453 (@kovacsv)
    • ColladaExporter

      • Convert linear vertex and material colors to sRGB. #23400 (@gkjohnson)
    • ColladaLoader

      • Add sRGB support. #23401 (@gkjohnson)
    • CSS2DRenderer

      • Fix sorting regression. #23360, #23594 (@bergden-resonai, @Mugen87)
      • Add support for renderOrder. #23456 (@brucedjones)
    • GLTFExporter

      • Always use image/png as mime type. #23385 (@donmccurdy)
      • Fix buildORMTexture(). #23463 (@takahirox)
    • GLTFLoader

      • Allow textures which share the image source. #23420 (@takahirox)
      • Fix color space for certain texture types. #23630 (@Mugen87)
    • HTMLMesh

      • Render number input values. #23381 (@zz85)
      • Observe DOM mutation and support canvas elements. #23386 (@zz85)
    • NodeEditor

      • Support to file, textures and updates. #23376 (@sunag)
      • Minor improvement. #23425 (@fyoudine)
      • Add NormalMapEditor and some improvements. #23447 (@sunag)
      • Add preview. #23508 (@sunag)
    • NodeMaterial

      • Add support for serialization/deserialization. #23314 (@sunag)
      • Add analyze() to optimization and validation. #23475 (@sunag)
      • Add more functions to ShaderNode. #23539 (@LeviPesin)
      • Add type conversions to ShaderNode. #23544 (@LeviPesin)
    • OBJExporter

      • Convert vertex colors to sRGB. #23374 (@gkjohnson)
    • OBJLoader

      • Convert vertex colors to linear. #23340 (@gkjohnson)
    • PointerLockControls

      • Add .pointerSpeed. #23516 (@ChrisCrossCrash)
    • PLYExporter

      • Convert vertex colors to sRGB. #23399 (@gkjohnson)
    • PLYLoader

      • Convert vertex colors to linear. #23342 (@gkjohnson)
    • SVGLoader

      • Recognize style definitions inside defs tag. #23533 (@nkrkv)
    • WebGPURenderer

      • Remove deprecated WGSL syntax. #23393, #23394 (@webglzhang, @takahirox)
      • Fix Texture.image !== null in WebGPUTextures. #23436 (@sunag)
      • Update to latest WebGPU API. #23483 (@sunag)

    Editor

    • Clean up. #23477 (@linbingquan)

    Tests

    • Remove unit tests for example files. #23352 (@Mugen87)
    • Remove usage of Function.caller. #23412 (@Mugen87)
    • Update QUnit to solve Windows failure. #23505 (@Mugen87)
    Source code(tar.gz)
    Source code(zip)
  • r137(Jan 28, 2022)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r136--r137 https://github.com/mrdoob/three.js/milestone/50?closed=1

    • AnimationMixer
      • Fix wrong reference count in _bindAction(). #23102 (@walton007)
    • Box3
      • Supports computing minimal bounds for .setFromObject(). #20024 (@arikwex)
    • BufferGeometry
      • Faster setIndex(). #23290 (@neofuji)
    • FileLoader
      • text honors mimetype's charset as encoding. #23292 (@ycw)
    • LatheGeometry
      • Change index order. #23291 (@Chrissie-AI)
    • Material
      • Removed .format. #23166 #23361, dfca2bd4748b00245225c9e4d8ba0ef7374c9b36 (@donmccurdy, @mrdoob)
    • MeshMatcapMaterial
      • Update default matcap. #23126 (@WestLangley)
    • PMREMGenerator
      • Add flipEnvMap. #23158 (@Mugen87)
      • Reuse pingpong render target. #23203 (@Mugen87)
    • Quaternion
      • Fix return value of .slerpQuaternions(). #23114 (@OldStarchy)
    • ShaderLib
      • Clean up. #23119, #23122 (@ycw, @WestLangley)
      • Added OPAQUE snippet to meshnormal shader. #23362 (@mrdoob)
    • Texture
      • Remove RGBFormat. #23228, #23201, #23205, #23211, #23223, #23218, #23219, #23367 (@Mugen87)
      • Remove RGBIntegerFormat. #23252 (@Mugen87)
      • Remove UnsignedShort565Type. #23323 (@Mugen87)
    • WebGLCubeUVMaps
      • Add support for render targets. #23152 (@Mugen87)
    • WebGLMorphtargets
      • Dispose morph textures when corresponding geometry is disposed. #23104 (@0b5vr)
      • Allow negative morph influence values. #23264 (@willstott101)
    • WebGLRenderer
      • Auto-detect sRGB compressed texture formats. #23124 (@Mugen87)
      • Remove inline sRGB decode. #23129, #23192, #23271 (@Mugen87)
      • Simplify env map generation. #23150 (@Mugen87)
      • Implement draw buffers setup in WebGLState. #23194, #23200 (@Mugen87)
      • Create WebGL context with alpha: true. #23230, #23241, #23243, #23246 (@mrdoob, @Mugen87)
      • Only use sRGB shader encode for default framebuffer and WebXR. #23253, #23288, #23289 (@Mugen87)
    • WebGLRenderTarget
      • Refactor .copy(). #23237 (@Mugen87)
    • WebGLTextures
      • Support RG in getInternalFormat(). #23274 (@neofuji)
    • WebXRManager
      • Fixed support for multisampled rendering when render to texture is unsupported. #23145 (@cabanier)

    Documentation

    • Refactor URL generation in geometry browser. #23087, #23161 (@gero3)
    • Improve Box3 page. #23320 (@skuteli)
    • Improved BufferAttribute page. #23249, #23263 (@garciadelcastillo, @Mugen87)
    • Improved CubeCamera page. #23179, #23193 (@oerol, @Mugen87)
    • Improved Installation page. #23277 (@fabiobarcelona)
    • Improved LoadingManager page. #23236 (@kryzodoze)
    • Improved MeshPhongMaterial page. #23338 (@AdaRoseCannon)
    • Improved MeshPhysicalMaterial page. #23261 (@chubei-oppen)
    • Improved Raycaster page. #23132 (@Mugen87)
    • Improved loader pages. #23180 (@mistic100)
    • Improved Chinese translation. #23084, #23209, #23239, #23262 (@521qq, @Torlinone, @moshuying, @Sooia)
    • Only load trusted iframe. #23245 (@r0hanSH)

    Manual

    • Fix link highlighting in manual. #23113 (@greggman)
    • Improve style of modified code listings. #23142 (@Mugen87)

    Examples

    • Clean up. #23092, #23091, #23105, #23133, #23151, #23162, #23222, #23175, #23276, #23294, #23301, #23365, e23cd92b13ca6884640a35b48150a92d47e2aa94, ab21bee59055fe1003f0c2d3e2eecb4cbed4a8c4, ea80c212e0047a547092904fcd19414dddd0da6c, 9d551a2640a438b1738d61e69997583e44c0ac27 (@linbingquan, @Mugen87, @WestLangley, @vojty, @marcofugaro, @TomHsiao1260, @mrdoob)
    • Demonstrate loading flat colors in webgl_loader_ldraw to match instruction booklet style. #23098 (@gkjohnson)
    • Upgrade lil-gui. #23130 (@georgealways)
    • Throw errors instead of strings. #23137 (@gero3)
    • Removed RoughnessMipmapper. #23143 (@mrdoob)
    • Added ImportMaps availability script. #23148 (@mrdoob)
    • Use import maps + polyfill. #23255, #23163, #23214, #23256, #23282, #23293, #23370 (@marcofugaro, @mrdoob, @sunag, @Mugen87)
    • Add 3dl asset to webgl_postprocessing_3dlut example. #23202 (@gkjohnson)
    • Simplify Reflector, Refractor and Water render targets. #23206 (@Mugen87)
    • Use PBR material in webxr_ar_lighting example again. #23171 (@Mugen87)
    • Optimize icon image. #23238 (@chuntington)
    • Use sRGB output in webgl_loader_svg example. #23280 (@gkjohnson)
    • Add Layers support to CSS renderers. #23316 (@thisGH)
    • Improve webxr_vr_haptics example. #23307 (@zz85)
    • Fixed duplicated ARKit button. 464a5f0381924cb7448f8f51cd8ffe1ee0dc243d (@mrdoob)
    • Simplified webgl_loader_obj_mtl example. d9a9066a3982f753cdc1f613507b7f7139f602b7 (@mrdoob)
    • Always use FloatType in GPGPU examples with WebGL 2. #23337 (@Mugen87)

    • BasisTextureLoader

      • Add deprecation warning. #23123 (@donmccurdy)
    • ConvexGeometry

      • Support clone(). #23177 (@Mugen87)
    • EXRLoader

      • Handle unsupported BigInt in Safari mobile. #23267 (@sciecode)
    • GlitchPass

      • Use RedFormat for height map. #23207 (@Mugen87)
    • GLTFExporter

      • Merge occlusion, roughness and metalness textures. #23229 (@mrdoob)
    • GLTFLoader

      • Fix regex for Safari detection. #23305 (@Diyou)
    • HTMLTexture

      • Don't overwrite .dispatchEvent(). #23326 (@Mugen87)
      • Introduce .dispose(). #23327 (@Mugen87)
    • LDrawLoader

      • Make normal smoothing condition more explicit. #23093 (@gkjohnson)
      • fileMap should exist when parsing. #23097 (@gero3)
      • Throw errors instead of strings #23135 (@gkjohnson)
      • Start removing stored derivative data during initial parse. #23139 (@gkjohnson)
      • Check if a face edge is a sub segment of a long edge when smoothing normals. #23077 (@gkjohnson)
      • Remove separateobjects flag. #23147 (@gkjohnson)
      • Refactor, cache pre-parsed file contents. #23157 (@gkjohnson)
      • Rename colour to color. #23168 (@gkjohnson)
      • Fix a corner case when smoothing normals. #23169 (@gkjohnson)
      • Add option to merge geometries after loading. #23173 (@yomboprime)
      • Cleanup and docs improvement. #23231, #23233 (@yomboprime, @gkjohnson)
      • Cache geometry versions of parts, reduce geometry redundancy, improve parse time. #23232 (@gkjohnson)
      • Convert to linear colors when parsing models. #23272 (@gkjohnson)
      • Fix getMainEdgeMaterial(). #23334 (@yomboprime)
    • LUT3dlLoader

      • Use RGBAFormat. #23208 (@gkjohnson)
    • MTLLoader

      • Label and convert textures and colors correctly. #23296 (@gkjohnson)
    • NodeEditor

      • Clean up and minor fixes. #23312, #23309, #23332 (@fyoudine, @sunag)
      • Node-based for native objects. #23165 (@sunag)
      • Add vertex position input. #23311 (@fyoudine)
      • Add missing position entries. #23310 (@fyoudine)
      • Add BasicMaterialEditor and PointsEditor. #23339 (@sunag)
    • NodeMaterial

      • Add missing CondNode in nodes.js. #23182 (@sunag)
      • Add all MathNode to ShaderNode alphabetically. #23215 (@sunag)
      • Fix .opacityNode with WebGPU. #23216, #23226 (@sunag)
      • Remove ColorSpaceNode.fromDecoding(). #23217 (@sunag)
      • Rename UVNode.value to UVNode.index. #23335 (@sunag)
    • PCDLoader

      • Fix RGB loading order for binary compressed files. #23286 (@LeoPapais)
    • SSAOPass

      • Make use of RedFormat and UnsignedInt248Type. #23210 (@Mugen87)
    • SVGLoader

      • Properly support multiple CSS classes. #23191 (@vojty)
      • Fix use.href in non-browser environments. #23297 (@nkrkv)
    • TextGeometry

      • Fix clone(). #23269 (@Mugen87)
    • VRButton

      • Add sessiongranted support to enable in-VR navigation. #23110 (@hybridherbst)
    • WebGPURenderer

      • Remove swapChain. #23213 (@Mugen87)

    Editor

    • Clean up. #23275, c15bbe117b5a278d0642ff5a66e6eea5da782070 (@linbingquan, @mrdoob)
    • Upgrade signals.min.js #23044 (@linbingquan)
    • Compute precise AABB selection box. #23298 (@mrdoob)

    Tests

    • Add isObject3D unit test. #23121 (@gero3)
    • Add three arguments test case for Matrix4.set(). #23227 (@linbingquan)
    • Fixed getTypedArray() unit test. #23258 (@takahirox)
    • Use ES modules. #23315, #23325 (@marcofugaro)
    Source code(tar.gz)
    Source code(zip)
  • r136(Dec 24, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r135--r136 https://github.com/mrdoob/three.js/milestone/49?closed=1

    • Global
      • Improved ESLint setup and clean up code. #22940 (@gero3)
      • Clean up. #22988 (@linbingquan)
      • Fix broken links. #23012, #23013, #23017, #23025, #23030, #23033, #23037 (@Mugen87, @gero3)
    • FileLoader
      • Fix incorrect error handling. #22925 (@leyiang)
      • Support environments without ReadableStream. #23032 (@gkjohnson)
    • LatheGeometry
      • Improve normal generation. #22927 (@Chrissie-AI)
    • MeshPhysicalMaterial
      • Added IBL sheen support. #23069, #23081, 820a605fdfd4967d2c2ce88af680e7f273886f2d (@elalish, @mrdoob)
    • MeshToonMaterial
      • Only sample the red channel of gradientMap. #22911 (@Mugen87)
    • PMREMGenerator
      • Use half float render targets. #22998 (@elalish)
    • Sphere
      • Fix edge case in .union(). #22981 (@Mugen87)
    • WebGLProgram
      • Add layout-qualifier to pc_fragColor. #22931 (@ligaofeng0901)
    • WebGLPrograms
      • Minor clean up for getProgramCacheKey(). #22945 (@gero3)
      • Optimize program cache key generation. #22960 (@gero3)
      • Add WebGLShaderCache. #23022 (@Mugen87, @gero3)
    • WebGLRenderer
      • Clean up. #22902 (@Mugen87)
      • Refactor usage of .copyFramebufferToTexture(). #22916, #22917, #22985, #22994 (@Mugen87, @elalish)
      • Enable usage of SRGB8_ALPHA8 again. #22952 (@Mugen87)
      • Remove RGBM7Encoding and RGBM16Encoding. #23046 (@Mugen87)
      • Remove RGBDEncoding. #23049 (@Mugen87)
      • Remove RGBEEncoding and RGBEFormat. #23060 (@Mugen87)
      • Remove .gammaFactor and GammaEncoding. #23080, #23082 (@Mugen87, @donmccurdy)
    • WebGLTextures
      • Introduce usage of gl.texStorage2D(). #22903, #22928, #22947, #22951 (@Mugen87)
    • WebXRManager
      • Fix default foveation value. #22915 (@cabanier)
      • Fixed dark renderings when WebXR is active. #22918, #22919, #22997 (@HexaField, @elalish)

    Documentation

    • Clean up. #22906, #22904, #22941 (@1337816495, @GoodnessEzeh, @gero3)
    • Improved ArcballControls page. #22949 (@danielefornari)
    • Improved Creating a scene page. #22921 (@ayushmxn)
    • Improved Matrix4 page. #22969 (@webglzhang)
    • Improved Raycaster page. #22908 (@DolphinIQ)
    • Improved SkinnedMesh page. #23079 (@Mugen87)
    • Improved Texture page. #22986 (@Mugen87)
    • Make headers stand out in API reference. #22948 (@orta)
    • Add missing load() progress behaviour. #22990 (@dweremeichik)
    • Remove Polyfills page. #23036 (@Mugen87)

    Manual

    • Add Korean translation for WebXR articles. #22893 (@greggman)
    • Add Chinese translation for multiple-scenes article. #22894 (@greggman)
    • Fix fullscreen mode. #22953 (@makc)
    • Fix exponential backtracking in lessons-helper.js. #23026 (@gero3)
    • Clean up. #22905 (@mjurczyk)

    Examples

    • Clean up. #22910, #22942, #23001, #23002, #23029, 00906433c98bed002237636166ac4f6d19f94ca3, 5eedcdbe059f94dc15c16fa630f68dd92708885d (@Tirzono, @gero3, @Mugen87, @mrdoob)
    • Added webgpu_nodes_playground example. #22901 (@sunag)
    • Improve render order in webgl_loader_svg. #22912 (@tangobravo)
    • Added .dispose() method to Reflector and Refractor. #22932 (@LR17)
    • Improve webgl_loader_svg example. #23040 (@linbingquan)
    • Sort presets in ​webgl_materials_nodes example. #23041 (@gero3)
    • Use half float EXR textures in webgl_materials_matcap example. #23059 (@WestLangley)
    • Simplify webgl_animation_multiple example. #23066 (@Mugen87)
    • Improve webgl_instancing_raycast example. #23000 (@WestLangley)
    • Add a placeholder text to the example’s landing page. #23045, #23075 (@gero3, @WestLangley)
    • Simplified webgl_geometry_teapot example. 08b4975a2e60b48320abca88ed0408dbe48f9a35 (@mrdoob)
    • Improved webgl_loader_gltf_sheen example. 80afa23641d928704d3bb54f48a2687936e839a6, 0e53dfb2b55ebec26fa6a23185364fe251f0b124 (@mrdoob)

    • ArcballControls

      • Remove keydown event listener. #23028, 4ea1a19b081fc3a9d28077ab530c6876ec6209a6 (@Mugen87)
      • Remove more .clone() calls. #23027 (@gero3)
      • Remove .setTarget(). #23038 (@Mugen87)
    • ColladaLoader

      • Fix transparency handling. #22907 (@kovacsv)
    • EXRLoader

      • Support single channel luminance - RedFormat. #23007 (@sciecode)
      • Stop RGBE/UnsignedByteType support. #23039 (@Mugen87)
    • GLTFLoader

      • Avoid using ImageBitmap in Safari. #23086 (@mrdoob)
    • KTX2Loader

      • Don't select ETC1 for textures with alpha. #22974 (@donmccurdy)
      • Don't transcode to ETC1 in WebGL2. #22982 (@donmccurdy)
    • LDrawLoader

      • Fail gracefully if an object could not be loaded, improve file compatibility. #22957 (@gkjohnson)
      • Remove phong material use. #22973 (@gkjohnson)
      • Initialize parseScope.groupObject even when !LDRAW_ORG is not specified. #23076 (@gkjohnson)
    • NodeMaterial

      • Don't use importmap with WebGL 1. #22936 (@sunag)
      • Fix typo in MathNode.STEP. #23042 (@wmcmurray)
      • Adding fixes for WebGL 1. #23064 (@sunag)
    • NRRDLoader

      • Ensure that headerObject.vectors is an array of arrays. #22987 (@sonisourabh)
    • PLYLoader

      • Improved magic word regex. #23018 (@gero3)
    • SelectionBox

      • Honor transformation of InstancedMesh. #22962 (@chiguaboy)
    • SelectionHelper

      • Add .dispose(). #22977, #22979 (@chiguaboy, @Mugen87)
    • StandardMaterialEditor

      • Embed node values. #22954 (@sunag)
    • SVGLoader

      • Fix setting first path point after multiple moveTo commands. #22983 (@nkrkv)
    • TransformControls

      • Added .reset() method. #22972 (@vHeemstra)
      • Don't attempt to capture pointer if pointerlock is active. #23057 (@jbaicoianu)
    • VRMLLoader

      • Remove exponential backtracking in string regex. #23024 (@gero3)
      • Simplify regex to reduce exponential backtracking. #23047 (@gero3)
    • Water2

      • Remove encoding option. #22955 (@Mugen87)
    • WebGLNodeBuilder

      • Move sizeNode under positionNode. #23043 (@wmcmurray)
    • WebGPURenderer

      • Add various fixes. #23003, #23005 (@sunag)
      • Remove deprecated WGSL attribute: [[ block ]]. #23004 (@sunag)

    Editor

    • Clean up. a759644abd87620e301e53b84d65b2fbb167b24a (@mrdoob)
    • Dispose DracoLoader after loading an asset. #22950 (@gero3)
    • Preview pure skeleton. #22858 (@gonnavis)
    • Add support for pic extension. 5340bf3e8b4314489c460a3e13f03927ea7d622e (@mrdoob)

    Tests

    • Verify all variations of Layer.set(). #22895 (@Mugen87)
    • Add tests for WebGLExtensions. #22939 (@gero3)
    • Fix typos. #22961 (@gero3)
    • Upgrade actions/setup-node action and cache dependencies on CI. #22883 (@ddzz)
    • Added getTypedArray() unit test. #23051 (@gero3)
    • Improved code style. #23052 (@gero3)
    Source code(tar.gz)
    Source code(zip)
  • r135(Nov 26, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r134--r135 https://github.com/mrdoob/three.js/milestone/48?closed=1

    • Layers
      • Add isEnabled(). #22825 (@felixmariotto, @Mugen87)
      • Fix internal mask when using .set(). #22867 (@1337816495)
    • MathUtils
      • Revert crypto.randomUUID() usage in generateUUID(). #22805 (@larsmoa)
    • MeshPhysicalMaterial
      • Use 0 as thickness default. #22762 (@Mugen87)
      • Fix clearcoat shader computation. #22839 (@WestLangley)
    • StereoCamera
      • Avoid unnecessary call of .clone(). #22830 (@WestLangley)
    • WebGLProgram
      • Simplify and fix sheen evaluation. #22767 (@Mugen87)
    • WebGLRenderer
      • Remove __maxMipLevel. #22788 (@Mugen87)
      • Add data-engine="three.js r${REVISION}" to the canvas element. #22792 (@mrdoob)
      • Disable usage of SRGB8_ALPHA8. #22759 (@Mugen87)
      • Check if _canvas has setAttribute() before calling it. fe71b47232accbe26a5acc2e2c5bffe74219e551 (@mrdoob)
      • Remove LogLuv encoding from the shaders. #22876 (@WestLangley)
    • WebGLTexture
      • Basic support for gl.texStorage2D(). #22790, 3c2e417f704576613d8033bb1292a6b9d2e3cd9e (@Mugen87)
    • WebGLUniforms
      • Add setters for arrays of 3D textures and 2D texture arrays. #22847 (@jonaskordt)
    • WebXRManager
      • Reactor code by calling WebGLRenderer.setRenderTarget(). #22558 (@cabanier)

    Documentation

    • Remove pages about internals. #22775 (@Mugen87)
    • Explain flatness of values parameter of keyframe tracks. #22766 (@jcamp0x2a)
    • Clarify Object3D.attach() limitations. #22821 (@WestLangley)
    • Improved Chinese translation. #22831 (@moshuying)
    • Fix typo in TransformControls page. #22840 (@tonybfox)

    Manual

    • Merge Threejsfundamentals into three.js. #22807, 4519858cf301900773627ac1cafb2a7f41b0ace2 (@greggman, @mrdoob)

    Examples

    • Clean up. #22763, #22768, #22798, #22832, #22829, #22835, #22834, #22880 (@linbingquan, @Mugen87, @moshuying, @WestLangley)
    • Rename CSM frustum class. #22752 (@Mugen87)
    • Replaced dat.gui with lil-gui. #22765 (@georgealways)
    • Use undefined instead of void or null. #22794, #22796, #22797 (@Mugen87)
    • Consistent documentation of return this. #22799 (@Mugen87)
    • Fix WebXR hand pointer examples. #22815 (@dmliao)
    • Add out of bounds check to games_fps example. #22877 (@Uueuuuuu)

    • 3DMLoader

      • Update rhino3dm and support texture mapping. #22860 (@fraguada)
    • 3MFLoader

      • Change default material color to white. #22808 (@kovacsv)
    • ArcballControls

      • Avoid some .clone() calls. #22856 (@Mugen87)
    • DragControls

      • Added .getRaycaster(). #22851, #22855, c547a74f901d1e608d546deaa3c0be20b6f7d868 (@draibolit, @Mugen87)
    • GLTFExporter

      • Add .parseAsync() #22755 (@marcofugaro)
      • Add KHR_materials_clearcoat support. #22761 (@Mugen87)
      • Add onError parameter to .parse(). #22774 (@marcofugaro)
    • GLTFLoader

      • Add .parseAsync(). #22754 (@marcofugaro)
      • Honor morph targets when using lines. #22771 (@mfernba)
    • Line2

      • Support raycasting with orthographic cameras. #22791 (@gkjohnson)
    • LineMaterial

      • Restore dashOffset. #22749 (@Mugen87)
    • LogLuvLoader

      • Added new loader. #22857, #22879 (@Mugen87)
    • LWOLoader

      • Update material setup to match LW native materials. #22776 (@onthez)
    • NodeMaterial

      • Add minimal version visual node editor. #22833, #22868 (@sunag)
      • Revision and updates. #22878 (@sunag)
    • OrbitControls

      • Add "sticky controls patch" back. #22862 (@Mugen87)
    • PLYLoader

      • Honor different attribute names. #22784 (@nh2, @Mugen87, @mrdoob)
    • SVGLoader

      • Make createShapes() retain curves. #22778 (@georgpukk)
    • USDZExporter

      • Added console warning when the material type is unsupported. 6e4f7a5fa7f1944e941019a655ae50868f2a883a (@mrdoob)
    • WebGPURenderer

      • Fix bgra constants. #22795 (@takahirox)
      • More efficient texture updates. #22869 (@Mugen87)

    Editor

    • Fix envMap field. #22820 (@Mugen87)
    Source code(tar.gz)
    Source code(zip)
  • r134(Oct 28, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r133--r134 https://github.com/mrdoob/three.js/milestone/47?closed=1

    • FileLoader
      • Use fetch API. #22510 (@DefinitelyMaybe, @gkjohnson)
    • ImageLoader
      • Clean up. #22666 (@linbingquan)
    • LoaderUtils
      • Add resolveURL(). #22707 (@robertlong)
    • MeshPhysicalMaterial
      • Added sheen textures. #22687 (@Mugen87)
      • Renamed *Tint to *Color. #22748 (@mrdoob)
    • PMREMGenerator
      • Fixed using compressed cubemaps. #22699 (@Mugen87)
    • Texture
      • Add userData property. #22698 (@Mugen87)
    • WebGLRenderer
      • Remove support for ImmediateRenderObject. #22643 (@Mugen87)
      • Lighter getProgramCacheKey() when using RawShaderMaterial. #22650 (@dbuck)
    • WebGLShadowMap
      • Make VSM samples a GLSL define. #22708 (@Mugen87)

    Documentation

    • Clean up. #22672 (@raghav-wd)
    • Improved Curve page. #22747 (@Mugen87)
    • Improved InstancedMesh page. #22639 (@Mugen87)
    • Improved WebGLRenderer page. #22706 (@Mugen87)
    • Fix redirect condition for *BufferGeometry. #22680 (@inokawa)
    • Improved Chinese translation. #22746 (@obf1313)

    Examples

    • Clean up. #22617, #22629, #22739 (@linbingquan, @Mugen87)
    • Improved webgl_geometry_spline_editor example. #22616 (@linbingquan)
    • Add possibility to pass in the HTML container of CSS renderers. #22635 (@pimdewit)
    • Use loop unroll in webgl_shadowmap_pcss example. #22646 (@Mugen87)
    • Removed DeviceOrientationControls. #22654 (@Mugen87)
    • Fix tile glitch in webgl_geometry_minecraft example. #22657 (@Mugen87)
    • Fix clipping in webgl2_materials_texture3d example. #22649 (@rlschuller)
    • Added webgpu_skinning_points example. #22695 (@sunag)
    • Use phong material in webxr_ar_lighting example. #22724 (@Mugen87)
    • Simplified webgl_marchingcubes example. 296e07f2d367549a62efcd189da4d3384135534b (@mrdoob)

    • 3MFLoader

      • Fixed multiple build items referring to the same object. #22663 (@soaresrl)
    • ArcballControls

      • Rename _tbCenter property to target. #22678 (@Mugen87)
      • Add getRaycaster(). #22719 (@Tirzono)
      • Derive from EventDispatcher. #22737 (@Mugen87)
      • Allow setting the gizmos radius factor. #22721 (@Tirzono)
    • ColladaLoader

      • Re-added normal map parsing. #22647, 418d19b82b4c235edba22b8cffb285a0a87661c2 (@jbaicoianu, @mrdoob)
      • Set material opacity when transparent.opaque is null or undefined. #22679 (@BSpolantis)
    • FBXLoader

      • Don’t fail when no pose nodes found for a node. #22744 (@kovacsv)
    • GLTFLoader

      • Add basic KHR_materials_sheen support and example. #22677 (@Mugen87)
    • KTX2Loader

      • Warn when multiple instances in use. #22621 (@donmccurdy)
    • LineMaterial

      • Refactor GLSL. #22726 (@Mugen87)
    • MarchingCubes

      • Migrate to Mesh. #22642 (@Mugen87)
    • NodeMaterial

      • Refactor usage of ShaderNode. #22612 (@sunag)
      • Enhance ShaderNode. #22644 (@sunag)
      • Introduce NodeParser and GLSLNodeParser. #22641 (@sunag)
      • Refactor SkinningNode and introduce ArrayElementNode. #22662 (@sunag)
    • OrbitControls

      • Disallow zoom via mouse wheel while rotating. #22660 (@Mugen87)
    • RoughnessMipmapper

      • Fix export with USDZExporter. #22741 (@elalish)
    • TDSLoader

      • Refactor readString() method. #22651 (@tomsoftware)
    • TrackballControls

      • Fix pinch to zoom with ortho cams. #22709 (@Mugen87)
    • USDZExporter

      • Add support for interleaved data. #22633 (@Mugen87)
    • WebGPURenderer

      • Add support for skinned meshes. #22610 (@sunag, @Mugen87)
      • Introduce WGSL. #22653, #22688 (@sunag)
      • Use attributes location defined by node material. #22665 (@sunag)
      • Fix stencilLoadValue in WebGPUBackground. #22668 (@takahirox)
      • WGSL FunctionNode support. #22715 (@sunag)
    Source code(tar.gz)
    Source code(zip)
  • r133(Oct 4, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r132--r133 https://github.com/mrdoob/three.js/milestone/46?closed=1

    • Global
      • Create createElementNS() helper in utils.js. #22488 (@linbingquan)
      • Move TextGeometry, FontLoader and Font to examples. #22560 (@Mugen87)
      • Introduce generators to make vector classes iterable. #22548 (@B3epBo0p)
    • BufferGeometry
      • Fix clone(). #22566, #22571 (@Mugen87)
    • Curve
      • Remove unneeded .normalize(). #22503 (@ycw)
    • CurvePath
      • getPoint() honors optionalTarget now. #22533 (@ycw)
    • DataUtils
      • Clamp parameter of toHalfFloat(). #22444 (@Mugen87)
    • ExtrudeGeometry
      • Make all parameters optional. #22536 (@Mugen87)
    • Frustum
      • Fix wrong test in split(). #22496 (@OndrejSpanel)
    • LatheGeometry
      • Make all parameters optional. #22499 (@Mugen87)
    • MathUtils
      • Use crypto.randomUUID() when available. #22556 (@mrdoob)
    • Mesh
      • Prevent infinite loop in raycast(). #22068 (@artificial-jon)
    • MeshPhysicalMaterial
      • Refactored sheen BRDF. #22455 (@WestLangley)
      • Use roughness-squared in sheen BRDF #22456 (@WestLangley)
      • Added sheenRoughness property. #22457 (@WestLangley)
      • Implement sheen as a layer on top of the base later. #22463 (@WestLangley)
      • Remove duplicate transmission property. #22464 (@WestLangley)
      • Added sheen property. #22466 (@WestLangley)
      • Modulate transmission.a with transmissionFactor. #22473 (@mrdoob)
    • Object3D
      • Clean up. #22602 (@linbingquan)
    • ParametricGeometry
      • Make all parameters optional. #22539 (@Mugen87)
      • Remove from core. #22559 (@Mugen87)
    • Quaternion
      • Added random(). #22494 (@brianpeiris)
    • Raycaster
      • Set recursive default value to true. #22460, #22500 (@WestLangley)
    • ShadowMaterial
      • Add missing shader chunks. #22481 (@Mugen87)
    • ShapeGeometry
      • Make all parameters optional. #22513 (@Mugen87)
    • SkinnedMesh
      • Fix raycasting with morph targets.#22581 (@makc)
    • Triangle
      • Add setFromAttributeAndIndices(). #22404 (@Mugen87)
    • TubeGeometry
      • Make all parameters optional. #22540 (@Mugen87)
    • Vector3
      • Added randomDirection(). #22494 (@brianpeiris)
    • WebGLRenderer
      • Refactoring GLSL. #22471, #22475 (@WestLangley)
      • Unified glsl.js files. #22493 (@mrdoob)
      • Support more than eight morph targets with WebGL 2. #22293, #22516, #22573, #22624 (@Mugen87)
      • Add support for SRGB8_ALPHA8 with WebGL 2. #22551 (@Mugen87)
      • Compute vertexTangents consistently. #22564 (@donmccurdy)

    Documentation

    • Clarify vector equal() methods. #22446 (@Mugen87)
    • Improve HemisphereLight page. #22450 (@Mugen87)
    • Improve Material page. #22459 (@Mugen87)
    • Improved ShapeUtils page. #22547 (@wolzenbug)
    • Retain filter when switching between docs and examples. #22507 (@octopoulos)
    • Fixed broken links in Korean manual. #22587 (@gandis0713)
    • Improved Chinese translation. #22599 (@peiyu7921)

    Examples

    • Clean up. #22521, #22526, #22570 (@Mugen87)
    • Honor 16 bit limit in webgpu_compute. #22440 (@sunag)
    • Improved games_fps example. #22506 (@octopoulos)
    • Added ArcballControls and misc_controls_arcball example. #21989 (@danielefornari, @cignoni)
    • Added webgl_materials_instance_uniform_nodes example. #22504 (@sunag)
    • Added webgl_morphtargets_face example. #22514 (@looeee)
    • Fix broken PackedPhongMaterial. #22569 (@Mugen87)

    • GLTFLoader

      • Allow multiple associations. #21737 (@takahirox)
      • Fix missing associations. #22583 (@timmmeh)
      • Clean up normalScale workaround. #22584 (@donmccurdy)
    • KTX2Loader

      • Add examples/js build. #22485 (@donmccurdy)
      • Warn on missing call to detectSupport(). #22519 (@donmccurdy)
    • NodeBuilder

      • Fix missing LinearEncoding #22439. (@sunag)
      • Adding new features to WebGLNodeBuilder. #22474 (@sunag)
    • NodeMaterial

      • Add support for arrays of uniforms. #22497 (@sunag)
      • Add Material.onBeforeRender(). #22417 (@sunag)
      • Rename SwitchNode to SplitNode #22509 (@sunag)
      • Introduce new material classes. #22518 (@sunag)
      • Added classes to enable particle effects. #22538 (@sunag)
      • Accessing modules from Node lib. #22554 (@sunag)
      • Enhance TimerNode. #22567 (@sunag)
      • Rename Node.type to Node.nodeType and introduce Node.type with new semantics. #22572 (@sunag)
      • Fix sRGBEncoding map using WebGL2. #22585 (@sunag)
      • Static and dynamic output type for extended nodes. #22590 (@sunag)
      • Add CheckerNode. #22592 (@sunag)
      • Add ShaderNode. #22603 (@sunag)
    • RGBELoader

      • Clamp prior to converting to half float. #22451 (@WestLangley)
    • RGBMLoader

      • Fix alerts in UPNG.js. #22578 (@Mugen87)
    • SAOPass

      • Fix depthTexture initialization. #22502 (@twastvedt)
    • SVGLoader

      • Honor fill-rule. #22597 (@qeeqez)
    • TextureNode

      • Support to sampler and texture property output. #22501 (@sunag)
    • TransformControls

      • Remove snap on pointerdown. #22491 (@Mugen87)
    • USDZExporter

      • Add support for Material.alphaMap. #22591 (@sunag)
      • Fix alpha output. #22596 (@sunag)
    • WebGPURenderer

      • Add check for adapter creation failure. #22482 (@sunag)
      • Add WebGPUUniformBuffer. #22486 (@sunag)
      • Remove unnecessary import in WebGPUUniformsGroup. #22487 (@sunag)

    Editor

    • Use pointer events for ViewHelper. #22480 (@Mugen87)
    • Upgrade codemirror to 5.63.0. #22568 (@linbingquan)
    • Optimize drag range for resizer. #22576 (@linbingquan)
    • Support resizer for script/player panels. #22593 (@Mugen87)
    • Limit the min-width style for .Panels and .Tabs #22600 (@linbingquan)
    • Fix CRLF problem #22601 (@linbingquan)
    Source code(tar.gz)
    Source code(zip)
  • r132(Aug 27, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r131--r132 https://github.com/mrdoob/three.js/milestone/45?closed=1

    • BufferGeometry
      • Remove computeFaceNormals() stub. #22366, 0e2a67b7c9b803a23d09199d866fc0a797a6a866 (@Mugen87, @mrdoob)
    • EdgesGeometry
      • Revert removal of rounding from hash computation. (@Mugen87)
    • Lights
      • Add power() getter/setters. #22298 (@WestLangley)
    • MeshLambertMaterial
      • Honor physicallyCorrectLights when using a light map. #22397 (@WestLangley)
    • MeshMatcapMaterial
      • Add support for vertex tangents. #22248 (@WestLangley)
    • MeshNormalMaterial
      • Rename vertex and fragment shaders. #22277 (@WestLangley)
    • MeshPhongMaterial
      • Added vertex tangent support. #22264 (@WestLangley)
    • MeshPhysicalMaterial
      • Promote ior to a material property. #22238 (@WestLangley)
      • Move transmission uniforms into shader chunk. #22278 (@WestLangley)
      • Remove duplicated varying. #22279 (@WestLangley)
      • Support specular attenuation of environment maps. #22319 (@WestLangley)
      • Fix double application of transmission factor. #22331 (@WestLangley)
      • Properly compute specular attenuation of transmission. #22336 (@WestLangley)
      • Rename .sheen to .sheenTint. #22381, #22385 (@WestLangley)
      • Improve clearcoat energy conservation. #22389 (@WestLangley)
      • Update version for certain transmission changes. #22379, #22443 (@Mugen87, @mrdoob)
    • MeshStandardMaterial
      • Remove roughness-dependent Fresnel from environment lighting. #22308 (@WestLangley)
    • PMREMGenerator
      • Clean up. #22274 (@Mugen87)
      • Correctly reset the background. #22311 (@gkjohnson)
      • Remove calls of convertSRGBToLinear(). #22318 (@Mugen87)
      • Remove extra conversion to RGBE color. #22327 (@gkjohnson)
      • Properly dispose of background material. #22338 (@WestLangley)
    • PropertyBinding
      • Fix _getValue_direct(). #22290 (@Mugen87)
    • WebGLCubeUVMaps
      • Fix onTextureDispose(). #22386 (@OndrejSpanel)
    • WebGLMaterials
      • Only update transmission uniforms when material.transmission > 0. #22427 (@mrdoob)
    • WebGLProgram
      • Improved console error. #22307 (@mrdoob)
      • Fix transmission checks. #22377, #22387 (@Mugen87, @OndrejSpanel)
    • WebGLRenderer
      • Clean up shaders and better naming conventions. #22234, #22263, #22288, #22296, #22313, #22361, #22363, #22367, #22372, #22373, #22374, #22375, #22391, #22415 (@WestLangley)
      • Simplify envmap encoding logic. #22233 (@WestLangley)
      • Removed unused MAXIMUM_SPECULAR_COEFFICIENT constant. #22240, #22250 (@mrdoob, @sunag)
      • Added new shader chunks for tangent support. #22269, #22271 (@WestLangley)
      • Fixed transmission shader crash in WebGL1 and no EXT_shader_texture_lod. #22309 (@mrdoob)
      • Update the Schlick formula signature. #22316 (@WestLangley)
      • Add uv transform support for transmission and thickness maps. #22364 (@zeux)
      • Enable mat2/3/4 attribute in shader. #16141 (@takahirox)
      • Remove artist-friendly factor of PI from shaders. #22393 (@WestLangley)
      • Reset current material in .setRenderTarget(). #22395 (@Mugen87, @takahirox)
      • Only use clearcoat chunks when clearcoat > 0. #22405 (@mrdoob)
      • Turn alphaTest into a uniform. #22409 (@mrdoob)
      • Ignore alpha in output_fragment when using NoBlending. #22424 (@mrdoob)
      • Refactored render loop and fix transmission in VR. #22426 (@mrdoob)
      • Add support for GLTF opaque alpha_mode. #22428 (@mrdoob)
      • Added transmission alpha support. #22425 (@mrdoob)
    • WebGLRenderTarget
      • Ensure internalFormat is set on texture. #22344, 814b851d835c1d5c3356a8c080b20c98968a354b (@gkjohnson, @mrdoob)
    • WebGLTextures
      • Unbind textures with dedicated method. #22394 (@Mugen87)
    • WebGLShadowMap
      • Add support for setting the number of VSM blur samples. #22272 (@gkjohnson)
      • Add support for rendering shadows with displacement maps. #22287 (@gkjohnson)
      • Add support for rendering shadows with alpha maps and alpha test. #22410 (@mrdoob)
    • WebXRManager
      • Switch to native MSAA. #22230 (@cabanier)
      • Clear state and added some accessor functions. #22260 (@cabanier)

    Documentation

    • Improved Chinese translation. #22291, #22328, #22358 (@puxiao, @linbingquan)
    • Improved Box3 and Sphere page. #22317 (@puxiao)
    • Improved Plane page. #22329 (@puxiao)
    • Improved Matrix4 page. #22310 (@puxiao)
    • Improved WebGLRenderer page. 4f41e1250ba67fb5112bb633e757c08c7a8618e0 (@mrdoob)
    • Update dispose() return type. #22237 (@servinlp)
    • Improve description of light intensity and power units. #22299 (@WestLangley)
    • Fix typos. #22433 (@saintmalik)

    Examples

    • Removed webgl_materials_envmas_parallax example. #22369 (@mrdoob)
    • Removed webgl_materials_parallaxmap example. #22370 (@mrdoob
    • Removed webgl_materials_shaders_fresnel example. #22215 (@mrdoob)
    • Removed webgl_loader_gltf_extensions example. #22276 (@mrdoob)
    • Removed webxr_vr_lorenzattractor example. #22315 (@mrdoob)
    • Convert utils files to esmodules. #22284, #22270, #22305, #22306 (@marcofugaro)
    • Added transmission to webgl_furnace_test example. #22335. #22349 (@WestLangley)
    • Fixes and cleanup in webxr_vr_layers example. #22325 (@felixmariotto)
    • Improved webgl_postprocessing_crossfade example. b834b5569bed1a854e4266c58bece76b60cb8f1e (@mrdoob)
    • Improved webgl_loader_lwo example. f4601f33b222c34dedb4b2d4d5dd554894fab251 (@mrdoob)
    • Improved webgl_shadowmap_vsm example. 74bf45ae3309661b976052a3b4c54f9de28c3c8f (@mrdoob)
    • Improved webgl_animation_multiple example. #22429 (@samueldg)

    • BufferGeometryUtils

      • Allow tree-shaking. #22267, #22304 (@marcofugaro)
    • CSS3DRenderer

      • Add support for CSS3DSprite with parent scale. #22235 (@GiuseppeRaso)
    • FBXLoader

      • Clean up. f2eb381d5c8c61f494cdeefdf5949599e49562fe (@mrdoob)
      • Check for null textures. #22239 (@camnewnham)
      • Can't check image until loaded. #22289 (@camnewnham)
    • GeometryCompressionUtils

      • Removed unused code. 9e30cb42a9f8c0c720e8da57b3b20bdc17650d98 (@mrdoob)
    • GLTFLoader

      • Fix cubicspline interpolation for quaternions. #22347 (@Mugen87)
    • IFCLoader

      • Various improvements and fixes. #22352 (@agviegas)
    • KTX2Loader

      • Enable zstddec decode in web worker. (@deepkolos) #21984
      • Warn on outdated Basis library. (@donmccurdy) #22314
    • LDrawLoader

      • Improve smooth normal generation performance. #22231, #22228, #22247 (@gkjohnson)
      • Improve parts library ergonomics, improve normal smoothing functionality. #22249 (@gkjohnson)
      • Parallelize parts library downloads to improve load times. #22253 (@gkjohnson)
      • Fix scenario where geometry was not getting smoothed. #22261 (@gkjohnson)
    • NodeMaterial

      • Update BSDFs from the last updates. #22301 (@sunag)
      • Basic BSDFs of MeshStandardMaterial and NodeBuilder simplification. #22398 (@sunag)
    • RGBELoader

      • Fix numElements loop. #22390, 3a2f592fd5c29cf0e0a09d1be71faaced32396ae (@OndrejSpanel, @mrdoob)
    • SelectionBox

      • Add support for InstancedMesh. #22399, b88cb7f8e2209abb8c31fe6fe15dcebea46e50af (@Steviebaa, @mrdoob)
    • TGALoader

      • Fix blue component handling for 16-bit (RGBA5551) images. #22360 (@Ithamar)
    • WebGPURenderer

      • Replace deprecated constant. #22330 (@Mugen87)
      • Removed Blinn Phong Support. #22413, #22420 (@sunag, @Mugen87)
      • Support interleaved buffer data. #22421 (@Mugen87)

    Editor

    • Fix const assignment. #22225 (@Mugen87)
    • Fix userData textarea. #22419 (@Mugen87, @ostatni5)

    Tests

    • Improved readability in ci.yml. #22384 (@GmBodhi)
    Source code(tar.gz)
    Source code(zip)
  • r131(Aug 4, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r130--r131 https://github.com/mrdoob/three.js/milestone/44?closed=1

    • EdgesGeometry
      • Remove rounding from hash computation. #22099 (@Mugen87)
    • InstancedMesh
      • Fix color attribute initialization. #22171 (@FoolHen)
    • Material
      • Remove morphTargets and morphNormals properties. #22169, #22244 (@Mugen87)
    • MeshBasicMaterial
      • Clean up vertex shader. #22053 (@WestLangley)
    • MeshMatcapMaterial
      • Add support for vertex tangents. #22248 (@WestLangley)
    • MeshPhysicalMaterial
      • Ensure thicknessMap is correctly used in the shader. #22116 (@takahirox)
      • Fix refraction shader code. #22224 (@takahirox)
      • Fixed overblown color in transmission_fragment. #22125 (@mrdoob)
      • Add specular support and KHR_materials_specular support to GLTFLoader. #22156 (@takahirox)
      • Renamed attenuationColor to attenuationTint. #22206, #22211 (@mrdoob)
    • MeshStandardMaterial
      • Remove vertexTangents property. #22146, #22182, #22189, b421217222f3b3fd550a91d43054f3e50174eabc, 0304b4b2ad924e37b1d7b63bde6a4d560385434d (@donmccurdy, @mrdoob, @Mugen87)
    • SphereGeometry
      • Increased default widthSegments to 32 and heightSegment to 16. #22141 (@mrdoob)
    • WebGLRenderer
      • Rearrange logic in renderObjects() to reduce CPU-side draw cost for multi-camera setups. #22123 (@davehill00)
      • Integrate PMREM. #22178, #22199 (@Mugen87)
      • Fix render state management in compile(). #22220 (@Mugen87)
    • WebXRManager
      • Use classic WebGLLayer to support anti-aliased output for layers. #22127 (@cabanier)
      • Add support for foveation. #22162 (@cabanier)
    • WireframeGeometry
      • Prevent duplicate edges. #22097 (@Mugen87)

    Documentation

    • Improve AnimationUtils page. #22213 (@Mugen87)
    • Improve InstancedBufferGeometry page. #22152 (@Mugen87)
    • Improve Libraries and Plugins page. #22200 (@gkjohnson)
    • Improve Lut page. #22148 (@Mugen87)
    • Improve Material Constants page. #22136 (@gkjohnson)
    • Improve OrbitControls page. #22101 (@vsh)
    • Improve SphereGeometry page. #22142, #22193 (@Mugen87)
    • Prevent HTML markup in filter result. #22108 (@Mugen87)
    • Remove browser support page. #22140 (@Mugen87)
    • Fix redirect for geometry generators. #22153, 35bdc42a8115c7404997b9ef9b9e7fdb832a5099, ec5fb63a0b557474844f458065e5b26a22667e4e (@Mugen87, @mrdoob)
    • Improve Chinese translation. #22155, #22184 (@moshuying, @puxiao)
    • Add BufferAttribute usage constants page. #22173 (@gkjohnson)

    Examples

    • Clean up. #22221, #22222, b5014ca71d3f1b3bf771d1b8a93813578b250b93 (@WestLangley, @mrdoob)
    • Use ImageLoader in webgl_panorama_cube example. #22065 (@puxiao)
    • Enhance GUI of webgl_materials_physical_transmission example. #22111 (@takahirox)
    • Make use of setPointerCapture() in controls. #22118 (@Mugen87)
    • Fix webaudio_sandbox example in Safari. #22149 (@brianpeiris)
    • Simplify webgl_morphtargets_sphere example. bb484d616955e2bf1c3329383c3c0cc3543ccf71 (@mrdoob)
    • Simplify webgl_loader_ldraw example. 2f09982f44bd613a9478ab3bb1ff210db27d92d2, 00d65845df4fef6d1ebb476ada18158c118b24cb (@mrdoob)
    • Increase the scale limit in webgl_materials_parallaxmap example. #22112 (@Calinou)
    • Improve lighting in webgl_loader_ldraw example. #22188 #22191 (@mrdoob, @gkjohnson)
    • Enhance webxr_vr_layers example. #22144 (@sigmaxipi)

    • ColladaExporter

      • Enable configuration of up axis. #22143 (@Oletus)
    • CSSRenderers

      • Prevent selection and dragging of CSS objects. #22106 (@Mugen87)
    • FBXLoader

      • Check null textures before assignment. #22114 (@camnewnham)
      • Increase sampling for nurbs geometries. #22202 (@Mugen87, @WestLangley)
    • GLTFExporter

      • Added KHR_materials_transmission and KHR_materials_volume support. #22214 (@mrdoob)
    • GLTFLoader

      • Add KHR_materials_volume and KHR_materials_ior extensions support. #22117 (@takahirox)
    • HTMLMesh

      • Reuse <canvas> instance. #22098 (@mrdoob)
    • IFCLoader

      • Update to latest IFC.js. #22113 (@agviegas)
    • LDrawLoader

      • Wrap conditonal line material, remove canHaveEnvMap field. #22183 (@gkjohnson)
      • Fix slanted normals. #22181 (@gkjohnson)
    • LineMaterial

      • Fixed alpha-to-coverage bug. #22135 (@WestLangley)
    • OrbitControls

      • Add getDistance(). #22126 (@marcofugaro)
    • RGBELoader

      • Use HalfFloatType as default texture type. #22190, #22265 (@Mugen87)
    • SVGLoader

      • Fix round rects when only rx or ry is specified. #22124 (@nkrkv)
      • Improve round rect corners approximation. #22132 (@nkrkv)
    • TrackballControls

      • Fix scale finished rotate on mobile. #22100 (@leoshenhh)
    • TransformControls

      • Expose raycaster. #22070 (@Experiment5X)
    • USDZExporter

      • Only include metalnessMap/roughnessMap when metalness/roughness is 1. #22201 (@mrdoob)
    • WebGPURenderer

      • Fix broken resize. #22128 (@Mugen87)
      • Replace outdated context type argument. #22210 (@Mugen87)

    Editor

    • Add support for PLY point clouds. #22138 (@Mugen87)
    • Turn off autocomplete of input elements. #22157 (@Mugen87)
    • Add manual link. #22175 (@Mugen87)
    • Make only visible objects Viewport selectable. 4c99322347be26e2449b35f6e4fe690d06f22cbd (@mrdoob)
    • Fix equirectangular getting lost when changing antialias. #22186 (@mrdoob)
    • Store equirectangular environment. #22187 (@mrdoob)
    • Refactored SidebarMaterial. #22194 (@mrdoob)
    • Added attenuationTint, attenuationDistance and thickness to SidebarMaterial. #22208 (@mrdoob)
    • Improve Chinese translation. #22219 (@linbingquan)

    Tests

    • Remove installation checking for E2E. #22168 (@munrocket)
    Source code(tar.gz)
    Source code(zip)
  • r130(Jul 5, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r129--r130 https://github.com/mrdoob/three.js/milestone/43?closed=1

    • Global
      • Clean up. #21955, #21961, #21971, 268aeae388716c838a73351af5a4312a59624168, 65e6b4835ae52ea6136392b12ee7114bccefc35a, 8ff5d832eedfd7bc698301febb60920173770899 (@linbingquan, @mrdoob)
      • Remove checks for mandatory target parameters. #21990 (@Mugen87)
    • AxesHelper
      • Added setColors(). #22046 (@WestLangley)
    • BufferGeometry
      • Support interleaved data in toNonIndexed(). #21999 (@xawill)
    • MeshPhysicalMaterial
      • Improve transmission support. #21918, #21975 (@takahirox)
    • ObjectLoader
      • Support textures for Scene.background and Scene.environment. #18834 (@meliharvey)
      • Add async API. #22031 (@Mugen87, @mrdoob)
      • Moved JSON handling to geometries #22040 (@mrdoob)
    • WebGLMorphtargets
      • Allow changing number of morph targets. #20845 (@zach-capalbo)
    • WebGLMultisampleRenderTarget
      • Fix mipmap generation. #22064 (@takahirox)
    • WebGLRenderer
      • Improve variable names in BSDF shader chunk. #21927 (@ManitoYu)
      • Render transparent doublesided in two calls. #21967 (@mrdoob)
      • Support Texture and CompressedTexture in copyTextureToTexture3D(). #21942 (@mbredif)
      • Added note about workaround in copyFramebufferToTexture(). a816aafeeb331b4e72138775028fd2e3fd042980 (@mrdoob)
    • WebXRManager
      • Decompose cameraVR.matrixWorld. #21964 (@mrdoob)
      • Add preliminary support for WebXR Layers. #22060 (@cabanier)
    • WebGLTextures
      • Fix mips gen for 3D render targets. #22072 (@Mugen87)

    Documentation

    • Improved Creating A Scene page. #21970, #22021 (@induratized, @lukeingalls)
    • Improved Matrix4 page. #22059 (@yomotsu)
    • Improved Object3D page. #21953, 56688256adcb24fcc43ca86309991fe03cbcae95 (@makc, @mrdoob)
    • Improved PointLightShadow page. #21917 (@makc)
    • Improved Uniform page. #22050 (@inokawa)
    • Improved VertexTangentsHelper page. #21952 (@makc)
    • Improved WebGLRenderer page. #22049 (@RenaudRohlinger)
    • Improve Chinese translation. #21931, #21946 (@1993heqiang, @javaLuo)
    • Fixed dark theme on empty location hash. #21929 (@felixmariotto)
    • Ensure navigation links are properly selected. #22057 (@Mugen87)
    • Improved AnimationMixer page. #22076 (@Mugen87)

    Examples

    • Clean up. #21904, #21947, #22051, 80e1a0afdf92e6a5474288ff169d898faa93064b, 95df9f8bbc3a7aa9e3d67951d353f14f6143c87c (@Mugen87, @mrdoob, @WestLangley)
    • Add tags for example with GPU stats panel. #21908 (@gkjohnson)
    • Improved webgl_refraction example. #21938 (@Mugen87)
    • Fix dark theme on empty location hash. #21932, #21943, 4f4c845c5cc127f3c90b77417c0462d2e4813bc4 (@felixmariotto, @mrdoob)
    • Fix collision detection in games_fps example. #21925 (@felixmariotto)
    • Remove preventDefault() from control mouse handlers. #21935, #21957 (@Mugen87)
    • Remove usage of changedTouches in all controls. #21959 (@Mugen87)
    • Improved webgl_materials_physical_transmission example. #21969, #22029, #22054, #22062 (@mrdoob, @WestLangley)
    • Refactor webgl_loader_pcd example. #22019 (@WestLangley)
    • Update WebXR Layers example to compare quality. #22083 (@sigmaxipi)

    • DRACOExporter

      • Fix error message. #21978 (@1993heqiang)
    • DragControls

      • Fully migrate to pointer events. #21958 (@Mugen87)
    • GLTFExporter

      • Use clamped Material.emissiveIntensity. #22007 (@SBRK)
    • GLTFLoader

      • Use Texture instead of CanvasTexture for ImageBitmaps. #21976 (@mrdoob)
      • Return null when failing to load textures. #21977 (@mrdoob)
    • IFCLoader

      • Geometry optimization, select, hide and property fetch. #21905 (@agviegas)
    • MMDLoader

      • Implement MMDToonMaterial. #21922 (@bill42362)
    • NRRDLoader

      • Handling of coronal and sagittal oriented scans. #21962 2f6358dd55956e4f3595f304b2b2c925551228d3 (@developers-mirrorme3d, @mrdoob)
    • OrbitControls

      • Fully migrate to pointer events. #21972 (@Mugen87)
    • Reflector

      • Add support for logarithmic depth buffer. #21983 (@Mugen87)
    • SimplifyModifier

      • Cache vertex indices to speed face generation. #22042 (@NNskelly)
    • TrackballControls

      • Fully migrate to pointer events. #22006 (@Mugen87)
    • TransformControls

      • Improved highlight colors. #22048 (@mrdoob)
      • Redesigned translation/scale modes and increased line thickness. #22061 (@mrdoob)
    • USDZExporter

      • Support MeshPhysicalMaterial. #21901 (@qeeqez)
    • Log a warning when matrixWorld has a negative scale. a40bb1ae1d384c039d5311462404c93b0acef6ba (@mrdoob)

    • Added map transparency support. #22086 (@mrdoob)

    • WebGPURenderer

      • Update to latest API. #22034 (@Mugen87)

    Editor

    • Improve Chinese translation. #21919 (@1993heqiang)
    • Fix usage of IFCLoader. #21993, 2272eaecf181ab2486392a4cb8e7f77b8cab72ad (@xawill, @mrdoob)
    • Added vertex colors support to DRACO export. #22001 (@mrdoob)
    • Removed export precision setting. #22002 (@mrdoob)
    • Added equirect option to environment. #22010 (@mrdoob)
    • Store scene background in IndexedDB. #22023 (@mrdoob)
    • Simplified fog handling. 64c69901c01ea8b7ca0f7a0b54d3d950d72a9331 (@mrdoob)
    Source code(tar.gz)
    Source code(zip)
  • r129(May 27, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r128--r129 https://github.com/mrdoob/three.js/milestone/42?closed=1

    • Global
      • Clean up. #21710, #21899 (@linbingquan, @Mugen87)
    • BufferAttribute
      • Move onUploadCallback() back to prototype scope. #21770 (@kaisalmen)
    • BufferGeometry
      • Add applyQuaternion() method. #21835 (@WestLangley)
    • ExtrudeGeometry
      • Improve default uv generator. #21875 (@codrakai)
    • InstancedInterleavedBuffer
      • Fix incorrect clone result. #21781 (@gkjohnson)
    • Material
      • Remove skinning. #21788 (@Mugen87)
      • Convert to class syntax. #21804 (@Mugen87)
    • Matrix4
      • Generalize makeShear() method. #21822 (@WestLangley)
    • MeshPhysicalMaterial
      • Improve transmission support. #21884, #21894, #21897, 00147d9d6be4e333a672e22212332dcbb4881c60, 90abd4f8131fb5728f9c3a4583dd014cbac5a9c8, 090982dd228d21a22add8a4e1a9d39a54a0497d6 (@takahirox, @mrdoob, @whatisor)
    • Object3D
      • Add removeFromParent(). #21826 (@Mugen87)
    • RectAreaLightHelper
      • Ignore inherited scale factors. #21848 (@WestLangley)
    • Skeleton
      • Add computeBoneTexture(). #21829 (@Mugen87)
    • UniformsLib
      • Default color uniforms to white. #21803 (@gkjohnson)
    • WebGLAttributes
      • Check for Uint8ClampedArray. #21876 (@0X-JonMichaelGalindo)
    • WebGLRenderer
      • Remove deprecated parameters check of render(). #21777 (@takahirox)
      • Added MRT support. #16390, #21792, #21810, #21811 (@takahirox, @mattdesl, @edankwan, @mrdoob, @Mugen87)
      • Add workaround for copyTexImage2D in WebGL2. #21893 (@mrdoob)
    • WebGLRenderTarget
      • Clone texture image data when cloning render target. #21719 (@gkjohnson)
    • WebGLState
      • Use getParameter() to detect current scissor/viewport. #21831 (@Mugen87, @gkjohnson)
    • WebXRManager
      • Update to latest WebXR Hands API. #21712, a92265f02be7c5b4f7abdbe05b1f21908485a845, 9bbd837deb3e1d43d5c6c7054211eda5864bea06, 2c9b14387fb40d4ef1dc7aa06fa39d1515cc8433, 571347f504dec332f6905bb3d8ef43f1b405d45c, 9b222612d162b3e39bc3e54ef637461561d31fdb, 729deaf63374912511727025ea814ceab8fc749e, a8517eec7b9725f85f4fd06e4b553447c19fee46, e9d5ba5f47223cd8f0a4e5c31f2a2990feb4f6a1, 4926b0755466ffb63929c13b454088f256757fc3, 9db9ac8716bd0321e1ad4cbad90d9c9a75756ec2 (@fe1ixz, @mrdoob)
      • Introduce updateCamera() and refactor getCamera(). #21886 (@Mugen87)

    Documentation

    • Improve Installation page. #21711 (@donmccurdy)
    • Improve Creating text page. #21708, #21725 (@lojjic)
    • Improve MeshPhysicalMaterial page. #21845 (@Mugen87)
    • Improve PlaneGeometry page. #21854 (@FMS-Cat)
    • Improve Shape page. #21862 (@Mugen87)
    • Improved VideoTexture page. #21746, #21866 (@jlivak, @Inklingboiii)
    • Improve WebXRManager page. #21880 (@Mugen87)
    • Improve Chinese translation. #21729, #21873 (@puxiao)
    • Improve Korean translation. #21791, #21807 (@hareha)
    • Improve [link:] handling. 86faacade3ea99116d8af19360bb7839fbc8b620 (@mrdoob)

    Examples

    • Clean up. #21767, #21783, #21794, #21796, #21827, #21842, #21856, #21864, #21895 (@Mugen87, @fraguada)
    • Fix GUI in webgl_postprocessing_unreal_bloom_selective example. #21722 (@gonnavis)
    • Add fog tag to webgl_geometry_terrain example. #21736 (@makc)
    • Add webgpu_lights_custom example. #21706 (@sunag)
    • Add license for kenpixel.ttf. #21778 (@Mugen87, @hrieke)
    • Slightly refactor webgl_postprocessing_fxaa example. #21785 (@Mugen87)
    • More ES6 usage in webgl_animation_cloth example. #21787 (@Mugen87)
    • Move jsm/nodes to ES6. #21801 (@Mugen87)
    • Improve CSS in various examples. #21808, #21809 (@Mugen87)
    • More usage of template strings. #21816 (@Mugen87)
    • Add package.json indicating jsm examples are modules. #21838 (@gkjohnson)
    • Add GPU stats panel. #21509 (@gkjohnson)

    • 3DMLoader

      • Fix bug in texture type checking. #21784 (@fraguada)
      • Returning conversion warnings. #21639 (@karimi)
    • CameraUtils

      • Added frameCorners(). #21825, e87bfebbadff63e5208cbb9dffb6418a05f6fc01 (@zalo, @mrdoob)
    • CSS3DRenderer

      • Support CSS3DSprite screen-space rotation. #21823 (@WestLangley)
    • FBXLoader

      • Configure TGALoader with the correct path. #21863 (@Mugen87)
    • GLTFExporter

      • Fix value of emissiveFactor. #21855, #21858 (@Mugen87, @mrdoob)
      • Fix support for RGBA textures. #21888 (@Mugen87)
    • GLTFLoader

      • Clean up JSDoc. #21820 (@donmccurdy)
      • Ignore redundant KHR_texture_transform extensions and textures entries. #21821 (@donmccurdy)
      • Set RGBFormat for jpg with no mimeType. #21892 (@mrdoob)
    • LineSegments2

      • Fix typo in raycast(). #21760 (@amosbyon1224)
    • LineSegmentsGeometry

      • Fix name of fromLineSegments(). #21726 (@Mugen87)
    • LineGeometry

      • Remove copy() function override. #21782 (@gkjohnson)
    • LineMaterial

      • Automatically adjust the USE_DASH define when setting dashed. #21797 (@gkjohnson)
    • MD2Loader

      • Clear previous frame's name. #21766 (@AssassinForReal)
    • MMDLoader

      • Skip transparency check for CompressedTexture. #21878 (@bill42362)
    • NodeMaterial

      • Add RemapNode. #21793 (@donmccurdy)
      • Fix shader code in BasicNode. #21818 (@Mugen87)
      • Add Noise2DNode, Noise3DNode, Fractal3DNode. #21800 (@donmccurdy)
    • Octree

      • Fix and optimize fromGraphNode(). #21834 (@Mugen87)
    • OutlinePass

      • Fix shader code of mask material. #21836 (@codrakai)
    • SSAARenderPass

      • Honor original camera view offset. #21740 (@msimpson)
    • SVGLoader

      • Remove paths with a length less than two points. #21752 (@Ttommeke)
    • TiltLoader

      • Refactor shaders setup. #21721 (@Mugen87)
    • TransformControls

      • Fix gizmo transform. #21732 (@Mugen87)
    • USDZExporter

      • Support transparency. #21747 (@qeeqez)
      • Improve handling of geometries. #21749, #21775 (@qeeqez)
      • Export only visible objects. #21846 (@mrdoob)
      • Store only objects with PBR materials. #21847 (@qeeqez)
      • Added Texture.offset and Texture.repeat support. #21852 (@kolodi)
      • Modulate diffuse map. #21872, afb032b20e5116c921bc40d0095190ef2bcb82f8, a09a70474aa41f8445595e2232d7fc01e45c4a3d (@kolodi, @mrdoob)
      • Clean up. ad868b3b73177c95575b0f8037eac37f5d903bd2, 14fab092b66c9956f3f9f41d515a654a863dd3ca, 73eedf069b21d966938314a1b6c5ff81eeafc067 (@mrdoob)
    • WebGPURenderer

      • Add pipeline cache. #21741, #21751 (@Mugen87)
      • Add WebGPUProgrammableStage. #21750, #21757 (@Mugen87)
      • Avoid memory leak in WebGPURenderPipelines. #21768 (@Mugen87)
      • Clean up WebGPUBindings. #21779, #21780 (@Mugen87)
      • Add support for alphaTest. #21868 (@Mugen87)
      • Support more vertex formats. #21879 (@Mugen87)

    Editor

    • Improve Chinese translation. #21761, #21900 (@1993heqiang, @linbingquan)
    • MoveObjectCommand should dispatch added event. #21812 (@carstenschwede)
    • Added transmission support. #21896 (@mrdoob)

    Tests

    • Fix GLTFExporter unit test. #21728 (@takahirox)
    • Fix Clock unit test under latest node.js. #21730 (@Mugen87)
    • Removed gimbalLocalQuat from Euler unit test. #21844 (@mrdoob)
    Source code(tar.gz)
    Source code(zip)
  • r128(Apr 23, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r127--r128 https://github.com/mrdoob/three.js/milestone/41?closed=1

    • Global
      • More usage of ES6 features. #21546, #21622, #21623, #21624, #21625, #20016, #21628, #21635, #21643, #21646, #21648, #21662 (@linbingquan, @Mugen87, @ianpurvis, @john-keith)
      • Add build-examples script. #21584, #21587, #21588, #21591, #21677 (@marcofugaro, @gkjohnson)
      • Remove more deprecated methods to improve tree-shaking. #21649 (@marcofugaro)
      • Improve ES6 toolchain. #21650, #21657, #21678 (@marcofugaro)
      • Rename test-lint npm script to lint. #21652 (@marcofugaro)
    • Color
      • Support color names using uppercase. #21687 (@puxiao)
    • DataTexture2DArray/3D
      • Set unpackAlignment to 1 by default. #21633 (@mrdoob)
    • Helpers
      • Add missing dispose() methods. #21577 (@acu192)
    • Material
      • Fix serialization of certain envMap properties. #21701 (@jimi75)
    • MathUtils
      • Refactor code to allow for tree-shaking. #21651, a7b8ed26d088bd12c9ba304eac5874dbefaa3079 (@marcofugaro, @mrdoob)
    • WebGLRenderer
      • Improve docs of packing shader chunk. #21557 (@gonnavis)
      • Fix ImmediateRenderObject with vertex colors. #21602 (@Mugen87)
    • WebGLTexture
      • Fix updateMultisampleRenderTarget(). #21570 (@Mugen87)
    • WebXRController
      • Dispatch move event when moving. a63ff05a8c5a0663a39ddc7fa599bb27d74ce0e7, 979d8f284cffe9bbf9d618e67462b69e5e9d430d (@mrdoob)
    • WebXRManager
      • Get linear/angular velocity for targetRay and grip poses if available. #21524, b82d7bd874f6aae093ee2708ddb91dd6d45a597c (@davehill00, @mrdoob)
    • XRHandPrimitiveModel
      • Use InstancedMesh. #21702, 8e50d5c8365c8693065a349994692fdeb5efa97b, c1790135ceee7a57bbd33ac47f1338d7bdafa012, b3df09a0d04b06a6cd1cfe9a8ab960a20c3a00cd (@zalo, @mrdoob)

    Documentation

    • Improved SkinnedMesh page. #21561 (@prominentdetail)
    • Improved TrackballControls page. #21703 (@mrdoob)
    • Improved WebGLRenderer page. #21637 (@yomboprime)
    • Added five-server to the docs. #21550 (@yandeu)

    Examples

    • Clean up. #21552, #21566, #21664, #21671, #21684, #21688, #21704, 96971a631669975baba0fcf77060dd9644987ed5, 1912046996da5a7085fa15db76a18bcfadb7bd9c (@Mugen87, @marcofugaro, @mrdoob)
    • Convert codebase to ES6. #21563, #21583, #21585, #21586, #21589, #21592, #21593, #21597, #21596, #21598, #21599, #21600, #21601, #21604, #21605, #21611, #21610, #21612, #21614, #21616, #21618, #21619, #21621, #21620, #21629, #21632, #21630, #21645, #21644, #21653, #21658, #21660, #21680 (@Mugen87, @yomboprime, @tentone, @fraguada)
    • Fix param use2DLut in webgl_postprocessing_3dlut example. #21613 (@kchapelier)
    • Removed XLoader. #21617 (@Mugen87)
    • Mark certain event listeners in controls as non-passive. #21642 (@puxiao, @WestLangley)
    • Removed onmousewheel attribute in index.html. #21647 (@puxiao)
    • Update fflate version. #21669 (@gkjohnson)
    • Convert jsm files to use bare three import before npm publish. #21654 (@gkjohnson)
    • Refactor Sky usage. #21681, #21575 (@Mugen87, @sirxemic)
    • Fix webgl_gpgpu_birds references error. #20675 (@gonnavis)
    • Bring dat.gui inside VR. #21700 (@mrdoob)
    • Use RoomEnvironment in webgl_animation_keyframes example. fe12f87c15b29d75a569e66b09e74f510119c651 (@mrdoob)
    • Use allow="" attribute in <iframe>. e041a2f6be2d57617c8b8a06498a3e29f1a2a47a (@mrdoob)
    • Removed #webxr-hands flag message. 5ed5390e040c3856543f4a74ed8988009186e86a (@mrdoob)

    • AmmoPhysics

      • Moved drawUsage logic to example. 1da44f66f1189c273cbc85d40c27523e73a65efc (@mrdoob)
    • GLTFLoader

      • Fix incorrect boundingBox for normalized attributes. #21554 (@donmccurdy)
      • Add createNodeMesh() hook. #21458 (@takahirox)
    • IFCLoader

      • Make WASM path configurable and update IFC library. #21683 (@agviegas)
    • KTX2Loader

      • Update ktx-parse dependency, import enums. #21567 (@donmccurdy)
    • NodeMaterial

      • Integrate new node material into WebGLRenderer. #21117 (@sunag)
      • Fix expected behavior of .colorNode property. #21692 (@sunag)
      • Add selective lights support for WebGPURenderer. #21322 (@sunag)
      • Fix warnings in WebGLNodeBuilder. #21705 (@sunag)
    • OBB

      • Use Matrix4.setFromMatrix3(). #21562 (@Mugen87)
    • SSRPass

      • Reflector use clipping plane. #21574 (@gonnavis)
      • Change surfDist and infiniteThick behavior. #21539, #21668 (@gonnavis)
    • VRMLLoader

      • Upgrade chevrotain to latest version. #21694 (@Mugen87)
    • WebGPURenderer

      • Update to latest WebGPU API. #21699 (@Mugen87)

    Editor

    • Use class syntax in ViewHelper. #21631 (@Mugen87)
    • Remove the default color value of SpotLightHelper. #21675 (@1993heqiang)
    • Fix equirect backgrounds. #21690 (@Mugen87)
    • Use networkFirst in sw.js. 0b608ec69ab413eb17eb9b93a2e780e9ab072f53 (@mrdoob)
    • Only display video renderer when SharedArrayBuffer is available. 71ffae30b3c75407d87696f726392215885dd8f9 (@mrdoob)
    • Signal clean up. 0f418c7f6eaa7c062f2bd3824be64e92b0d318ac (@mrdoob)
    • Save renderer changes automatically. 7c3d2f44fd34796b038b74190d64cf4fbd3574cf (@mrdoob)
    • Empty project title on clear. e07eca4c0b773689cd32f9c8cef30714c3a8e550 (@mrdoob)
    Source code(tar.gz)
    Source code(zip)
  • r127(Mar 31, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r126--r127 https://github.com/mrdoob/three.js/milestone/40?closed=1

    • Core
      • More usage of ES6 features. #21407, #21545 (@beginor, @linbingquan)
      • Add test-treeshake script. #21437 (@marcofugaro)
      • Remove some deprecated methods. #21450 (@marcofugaro)
    • BufferAttribute
      • Add .name, .usage, .updateRange serialization. #21279 (@takahirox)
    • BufferGeometry
      • Clarify serialization of buffer attributes. #21464 (@Mugen87)
    • EventDispatcher
      • Remove target references after event dispatch. #18564 (@aardgoose)
    • ImageUtils
      • Added warning when saving image as jpg in getDataURL(). #21386 (@mrdoob)
    • InstancedMesh
      • Honor instanceColor in .toJSON() and ObjectLoader. #21486, 2f1fa4ea6ba68700a16eabfbc4bc681f929ea089 (@Michael4d45, @mrdoob)
    • InterleavedBufferAttribute
      • Add applyNormalMatrix() and transformDirection(). #21434 (@devnev)
    • Line/Points
      • Avoid raw array access in .raycast(). #21475 (@Mugen87)
      • Support drawRange in .raycast(). #21481 (@Mugen87)
    • Material
      • Add alphaToCoverage. #21383 (@Mugen87)
      • Honor missing properties in .toJSON() and MaterialLoader. #21428 (@frading)
      • Add vertex color alpha support. #20975, #21530 (@chubei, @mrdoob)
    • MathUtils
      • Added .inverseLerp(). #21544, #21547 (@Hoodgail, @Mugen87)
    • PointLightShadow
      • Use PointLight.distance for far value if set. #21526 (@Mugen87)
    • Plane
      • Return null instead of undefined in .intersectLine(). #21468 (@Mugen87)
    • Quaternion
      • Use Number.EPSILON in .setFromUnitVectors(). #21484 (@Mugen87, @WestLangley)
      • Add .slerpQuaternions(), deprecate static .slerp(). #21532 (@Mugen87)
    • RoughnessMipmapper
      • Preserve texture UV transform. #21511 (@zeux)
    • Sphere
      • Add .expandByPoint() and .union(). #21493 (@Mugen87)
    • SpotLightShadow
      • Add missing .copy() method. #21527 (@Mugen87)
    • WebGLBackground
      • Remove support for WebGLCubeRenderTarget. #21360 (@Mugen87)
    • WebGLRenderer
      • Move invocation of Scene.onAfterRender(). #21362 (@Mugen87)
      • Add support for multiple programs per material. #20135 (@Mugen87)
      • Refactor framebuffer state management. #21447, #21442, #21518 (@Mugen87)
      • Release cache at the end of .render(). #14946 (@takahirox, @Mugen87)
      • Remove morph target properties. #21522 (@Mugen87)
      • Do not run window.rAF when in XR. #21529 (@Mugen87)
    • WebGLShadowMap
      • Ensure to use the latest reference to WebGLObjects. #21452 (@Mugen87)
    • WebGLState
      • Improve viewport and scissor setup. #21440 (@Mugen87)
    • WebGLTextures
      • Fix render texture re-uploaded on first use. #21455 (@DavidPeicho)
    • WebGLUniforms
      • Add unsigned vector array support for uniform. #21316 (@SuperSodaSea)
    • WebXRController
      • Make targetRay available in hands mode. #21368 (@fe1ixz)

    Documentation

    • Clean up. #21354, #21408, #21429, #21478, #21491 (@jj-plane, @Mugen87, @mcharytoniuk, @Vyse12138)
    • Added ?q= support. #21460 (@mrdoob)
    • Call updateFilter() only when ?q= is set. #21462 (@mrdoob)
    • Clarify restrictions of Texture.offset and repeat. #21473 (@Mugen87)
    • Started with Japanese translation. #21474 (@na2shell)
    • Use AudioNode as type for Audio.filters. #21523 (@Mugen87)
    • Improved material browser. 5a51f73e7bdf5b89d58af9b12914bbb16602032a, f9a36387326dcb22a2eef2d1946a3a20523c894e, ec5926a7ce8af6124820fc391a7f01296dd6ac6b, e5e3f069abafa0b0823d09307c0d92de036f2610, e93bffad7a138a3b66d47b7dcb6395bdc71ecf0d, 9fb402cfe8a774fa88254d52aa464c16d40873bd, b50ebc8f742e39b721233f491da5abed0c99b306 (@mrdoob)

    Examples

    • Clean up. #21432, #21449, #21471, #21482, #21499, #21513, #21541, #21549, 160344f3ebdea316ccf9411c88083a12dc1ae077, 024cfe8759d2ecd025d8e7445c65e9d09a57c4e7, 98c06041e28fa1cf7011d5b0a79ef83fd7428173, 795a26d1b35884bbd01b9744dd890e2e74d304b1, 0e8e04305a1d9c47997e6e85773dc6c8be3dc79a, 02f4dff06e26304ce67b98f0777786f3ca9428a6 (@Mugen87, @Dvvarf, @yomboprime, @mrdoob)
    • Remove calls of stopPropagation(). #21348 (@Mugen87)
    • Adopt importmaps in WebGPU examples. #21364 (@mrdoob)
    • Move type flags back to prototype. #21378 (@linbingquan)
    • Improved webgl_materials_wireframe demo. #21389, #21390, #21402, #21410 (@gkjohnson, @Mugen87, @mrdoob, @WestLangley)
    • Remove alpha option from webgl_shaders_ocean.html example. #21393 (@Mugen87)
    • Bump MMDParser lib to the latest one. #21397 (@takahirox)
    • Better show WebGL2 error messages. #21400 (@Mugen87)
    • Removed misc_legacy example. #21417 (@mrdoob)
    • Add webgl_shadowmap_progressive example. #21435 (@zalo)
    • Remove AssimpLoader. #21459 (@Mugen87)
    • Fix color values in webgl_materials_envmaps_parallax example. #21363 (@1993heqiang)
    • Introduced DebugEnvironment. 34519f5073c32eca2cf8b571ce03d44a5a80476a (@mrdoob)
    • More usage of Pointer Events. #21494, #21504 (@Oletus, @Mugen87)
    • Fix pixel trails in webgl_gpgpu_protoplanet example. #21510 (@yomboprime)
    • Simplify webgl2_rendertarget_texture2darray example. #21520 (@Mugen87)
    • Replace Event.keyCode with Event.code. #21409 (@puxiao)
    • Add post processing fullscreen triangle optimization. #21358 (@trinketmage)

    • CSS2DRenderer

      • Round values used for translation (Safari-only). #21416 (@simondate)
    • DeviceOrientationControls

      • Add isSecureContext check. #21528 (@Mugen87, @mrdoob)
    • DragControls

      • Ensure hoveroff is fired correctly. #21376 (@tb2k)
    • FunctionNode

      • Improve regex. #21356 (@Mugen87)
    • IFCLoader

      • Added new loader. #20598 (@agviegas)
    • Line2

      • Add support for Alpha To Coverage. #21451 (@gkjohnson)
    • LineSegments2

      • Check bounding box and bounding sphere when raycasting. #21496 (@gkjohnson)
    • LUTPass

      • Fix usage with WebGL1. #21531 (@gkjohnson)
    • MMDLoader

      • Improve animation system for PMX. #21395, #21398 (@takahirox, @ingbunga)
    • OutlinePass

      • Ensure renderTargetDepthBuffer is resized correctly. #21436 (@Julianouyang)
    • ReflectorForSSRPass

      • Fixed feedback and improved robustness. #21385 (@ycw)
      • Expose color. #21506 (@ycw)
    • SSRPass

      • Fixed MAX_STEP. #21384 (@ycw)
      • Correct reflector depth. #21403, #21537 (@gonnavis)
    • SSRrPass

      • Add new pass for screen space refraction. #21420 (@gonnavis)
    • SVGLoader

      • Apply default values when using getAttribute(). #21469 (@Mugen87)
      • Implement custom createShapes() method. #21380 (@Ttommeke)
      • Fix parsing of flags in compressed definitions. #21485 (@Mugen87)
    • TGALoader

      • Derive from DataTextureLoader. #21377 (@deepkolos)
    • Water

      • Removed outputEncoding and toneMapping checks. #21418 (@mrdoob)
    • WebGPURenderer

      • Clean up. #21367 (@Mugen87)
      • Update .requestDevice() descriptor to the latest API. #21366 (@Mugen87)
      • Update to latest vertex formats. #21381 (@Mugen87)
      • Fix rendering of line segments. #21443 (@Mugen87)
      • Follow the latest GPURenderPipelineDescriptor format. #21472 (@takahirox)

    Editor

    • Clean up. c45fd2036cce74c24ed31c1d907f888e01050fb6 (@mrdoob)
    • Improved Chinese translation. #21374 (@linbingquan)
    • Improved i18n. #21454 (@1993heqiang)
    • Fixed size and sizeAttenuation UI visibility handling. #21422 (@mrdoob)
    • Improved ShaderMaterial panel. #21423 (@mrdoob)
    • Fixed grid depth glitches. #21430 (@mrdoob)
    • Changed ffmpeg video quality setting. 3e79ce410e9b9dd219a2b2a4dd85ffc7c8ffb504 (@mrdoob)
    • Reset time in app.js’s .start() function. e4c5838786df988d13a3d3b44559c92e68b9f14f (@mrdoob)
    • Added modelviewer environment. b2dde2945663dadbeee2e3e64f17ebd6c73a8eee (@mrdoob)
    • Added XRControllerModelFactory to sw.js. 84c4a6dcb417f2562c4597ea687f4cd342d884d1 (@mrdoob)
    • Improved video progress bar. 27def9d26a56e80fd3cb2739598e9716bab123b0 (@mrdoob)
    • Implement cache per update. 412b99a7f26e117ea97f40eb53d010ab81aa3279 (@mrdoob)
    • Removed 3* extensions from Loader. ca5f932340864a73918edc6d85410c24e26a070f (@mrdoob)
    • Added IFC files support. #21551 (@mrdoob)

    Tests

    • Add unit test for Mesh.raycast(). #21399 (@Mugen87)
    Source code(tar.gz)
    Source code(zip)
  • r126(Mar 31, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r125--r126 https://github.com/mrdoob/three.js/milestone/39?closed=1

    Source

    • Global
      • More usage of ES6 classes. #21206, #19985, #21229, #21235, #21232, #21231, #21266, #21285, #21293, #20013, #20100, #20102, #20014, #20009, #21319, #21327, #21342, e7ba1550cd07204d64d86e8913a8103a0c8fb516, 5df56b849f7433d3d6fedbcddb5599a2b38ce47c, 6100437b3e4d83c176e8ec82bf764e71df32f308, 330b18605ae145604f4168cf70802621f11ea2a1, 81487f294d8f69966f575716aae632f1ad9584ac, e9e9bcda18d9f85f5d3ce932e4cffb66f717cad6 (@mrdoob, @Mugen87, @DefinitelyMaybe, @linbingquan, @ianpurvis)
      • Remove TypeScript type declaration files. #21174, #21197 (@mrdoob, @Mugen87)
      • Remove obsolete code in Three.Legacy.js. #21181, #21219, #21310 (@Mugen87, @mrdoob)
      • Added "sideEffects": false in package.json. #21313 (@mrdoob)
      • Removed polyfills.js. #21314, 0c815022849389cbe6de14a93e1c2fc7e4b21c18 (@mrdoob)
      • Stop IE support. #21344, b4b24e310cbb825b8caf1eb7536513c4c33d21b9, d401181625d49b86cc910ed1fec8745c07b97579, 676115e5c72f66182a423eda5befd4922d5f9359 (@mrdoob, @Mugen87)
    • CubeCamera
      • Simplify update(). #21331 (@linbingquan)
    • Face3
      • Remove from core. #21164, #21161, #21394 (@Mugen87, @elisee)
    • ImageBitmapLoader
      • Add support for request headers. #21283 (@gkjohnson)
    • Material
      • Honor lightMapIntensity in .toJSON(). #21166 (@Mugen87)
      • Move flatShading to supported materials. #21200 (@Mugen87)
    • Matrix3
      • Remove superfluous copy in .getNormalMatrix(). #21311 (@Mugen87)
    • Mesh
      • Check Matrial.skinning before applying bone transform in raycast(). #20830 (@zach-capalbo)
    • Object3D
      • Fix world matrix update bug in .attach(). #20759 (@takahirox)
    • Quaternion
      • Add early out in slerpFlat(). #21183 (@jure)
    • Raycaster
      • Simplify code. #21280 (@Mugen87)
    • SkinnedMesh
      • Remove legacy warning. #21193 (@Mugen87)
    • UniformUtils
      • Honor quaternions in cloneUniforms(). #21268 (@jure)
    • WebGLCubeRenderTarget
      • Add missing texture configuration. #21309 (@Mugen87)
    • WebGLRenderer
      • Add workaround for Adreno GPUs gl_FrontFacing bug. #21205, #21307 (@mrdoob)
      • Fix extension warnings. #21204 (@Mugen87)
      • Add possibility to bind 3D textures and 2D textures array as color attachment to framebuffer. #20111, #21243, dfaed955ea446793cdd93641cb8bed65f6575608, 341aa569e4eed79ee34be34e27e35b941a0a7983, effe04bb474904aa136fa5e79c75eca1a29782ac (@DavidPeicho, @mrdoob)
      • Add .copyTextureToTexture3D(). #21244 (@DavidPeicho)
      • Replace perturbNormal() implementation with a more robust version. #21299 (@zeux)
      • Stop default color space conversion. #21336 (@takahirox)
    • WebGLRenderLists
      • Use stack approach. #21254, af07e8ad159a7106da5d2984813e3a282a8e4b75 (@Mugen87, @mrdoob)
    • WebGLState
      • Implement true reset. #21281, #21295 (@Mugen87)

    Documentation

    • Improved Chinese translation. #21163, #21215, #21226 (@1993heqiang, @arthur7921, @buglas)
    • Improved Creating a scene page. #21216 (@bukzor)
    • Improved GLTFLoader and GLTFExporter pages. #21261, #21262, #21275, #21277 (@takahirox, @eltociear)
    • Improved Installation page. #21258 (@Mugen87)
    • Improved SpriteMaterial page. #21176 (@Cloud9c)
    • Improved WebGLRenderTarget page. #21306, #21308 (@gsimone, @Mugen87)
    • Improved Useful links page. #21218 (@leonsbuddydave)
    • Fix broken example links. #21180 (@Mugen87)
    • Fix broken link to ImageBitmap MDN documentation. #21291 (@gonnavis)

    Examples

    • Clean up. #21184, #21191, #21296, #21335, #21349, 39601236e150caf0dc73e3acf1c89821f51a7c2e (@Mugen87, @schmijos, @mrdoob)
    • Regenerate RGBM textures. #21173 (@Mugen87)
    • Fix toJSON() methods for certain node material classes. #21211 (@Mugen87)
    • Added misc_exporter_usdz example. #21251 (@mrdoob)
    • Simplify webgl_instancing_scatter example. #21250 (@Mugen87)
    • Removed some not so useful examples. #21252, 2dbcb41d02ef3e7457dab2b3353d5c73f11ba793 (@mrdoob)
    • Fix copyright link in webgl_loader_gltf_variants example. #21276 (@takahirox)
    • Make mirror examples resizable. #21297, 1880f08b992a302956021bfb1d08fdc689285924 (@gonnavis, @mrdoob)
    • Remove superfluous texture settings in (S)SAO pass. #21329 (@gonnavis)
    • Updated fflate to 0.6.2 and removed fflate-deflate. 388d9090ce05b0c022bae74c60c4ce42943c500e (@mrdoob)
    • Add SSRPass and webgl_postprocessing_ssr example. #20156 (@gonnavis)
    • Add webxr_ar_lighting example. #20876, c63bdaf8cabb347c3ab7188924890a7452453d75 (@toji, @mrdoob)

    • 3DMLoader

      • Adding updates. #21248, #21347 (@fraguada)
    • AnaglyphEffect

      • Use Dubois matrices. #21302 (@Mugen87)
    • BufferGeometryUtils

      • Fix assignment bug in .computeMorphedAttributes(). #21303 (@Mugen87)
    • CSS2DRenderer/CSS3DRenderer

      • Removed IE support. #21317 (@Mugen87)
      • Remove old css prefixes. #21321 (@yomotsu)
    • GLTFExporter

      • Add plugin system for extensibility. #20842 (@takahirox)
      • Fixed supported material check. 9ea6a221c4ec99ec9a2d932e881cbbf6c8282ba9 (@mrdoob)
      • Fixed accessor reference. 9d8ed2778efdc6d71221865d03dec7d83d281ff3 (@mrdoob)
    • GLTFLoader

      • Make error when loading textures with no data clear. #21177 (@zeux)
      • Revert usage of .computeTangents(). #21186 (@Mugen87)
      • Add before/afterRoot hook points. #21207 (@takahirox)
      • Remove support for MSFT_texture_dds. #21271 (@donmccurdy)
      • Fix bug when loading external WebP texture #21282 (@gkjohnson)
    • NRRDLoader

      • Improved gzip detection code. #21213 (@IsseiMori)
    • SVGLoader

      • New parseFloats() implementation. #21195 (@Mugen87)
    • USDZExporter

      • Added textures support. #21245, #21247, b3974180cde63d86ebab3faed839dfe3ae422df0 (@mrdoob)
      • Reduce vector precision. e35432aab63846ff6269a818fb3666dd6b4d3957 (@mrdoob)
      • Added uv2 warning. 4ad0d3c476d358207b9b319279fd4622a673b970 (@mrdoob)
      • Removed unnecessary lines. d92ea73c3cba8aa756ee7295946e00f86b3bdf7c (@mrdoob)
      • Improved resizing code. 1e210ac8f57d43dd2039b962394c181ef5c25bdc (@mrdoob)
      • Implemented 64byte alignment. 8000053e53fa3167d0d7d836808c54fd0f5f6975 (@mrdoob)
      • Define emissiveColor only when required. ec7718144d9b4e8fd7f912627cd00550faba983b (@mrdoob)
      • Clean up. ff0e2e1b1b3b97358f71a271070039a896abdab1 (@mrdoob)
      • Resize textures to 1024 by default. aa5bb104d2e74a007d19e2f08dcec3a05b134004 (@mrdoob)
      • Improved material parameter nodes. d5326ca5048ec0f37b40f4db833197d172770756 (@mrdoob)
      • Fixed exporting Xforms with duplicated names. ac377cf530fbd03d1bf50bc84aa839801d803919 (@mrdoob)
      • Added material.emissive support. d1de1f019723c58e5eadc14ebec4adcfc554bf05 (@mrdoob)
      • Fixed normals. ddc530d9d0602094ba6af7fb0df9f7bdb246f099 (@mrdoob)
    • VOXLoader

      • Fixed chunk parsing. a36141f54a4cdf278ac1ddd29a14bc17e7a28b4b (@mrdoob)
      • Added VOXDataTexture3D. c460b28646ee6b1ecd6efa6bcb5d6d26976d4114 (@mrdoob)
      • Clean up VOXMesh. 9fa202c2354e6621855d4f6d44e19674ab533aa9 (@mrdoob)
    • VRMLLoader

      • Apply DEF-name to node names. #21217 (@Mugen87)
    • WebGPURenderer

      • Fix uniform updateVector4(). #21160 (@sunag)
      • All UBOs and varyings are generated by node material now. #21170 (@sunag)
      • Update to latest WebGPU API. #21194, #21345 (@Mugen87)
      • More node classes and bug fixes. #21208 (@sunag)
      • Rename ModelViewProjectionMatrixNode to ModelViewProjectionNode. #21253 (@sunag)
      • Set material dispose listener only once. #21346 (@Mugen87)
      • Fix material compile per object and new instance uniform example. #21350 (@sunag)

    Editor

    • Clean up. #21325 (@1993heqiang)
    • Call .dispose() on textures. #21159 (@Mugen87)
    • Refactor UI classes. 794af189a146acdbc23507f10bec6d65112e8224, 76ac160f07f80ef3500e1b8e2db4f4eb84122272, 2f30e75cc9055af3c91f3f14acc1691902565c5f, c513508c179d258a0be03552991beee24f82cdf2, a501950082d00f063507e0913ae623408981a2e1, 4885b4c2238d832430495464cdb999262ad0ab77, e5139eb6d699c7e17dab669771007eb971d6a0a4, 6b3b9d608077ec58430c38dcd24885744e91c1a7 (@mrdoob)
    • Allow negative light intensity. f1fb6ee23b3784bca85acd82c232efdf0148c149 (@mrdoob)
    • Added ffmpeg.wasm video renderer. #21221 (@mrdoob)
    • Add center option. #21340 (@Mugen87)
    • Rescued VR mode. #21351, 292e51c58f47eadd3c20329e0bee64bcb5009fa7, 292e51c58f47eadd3c20329e0bee64bcb5009fa7 (@mrdoob)

    Tests

    • Add BufferAttribute.toJSON() unit test. #21225 (@takahirox)
    Source code(tar.gz)
    Source code(zip)
  • r125(Feb 1, 2021)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r124--r125 https://github.com/mrdoob/three.js/milestone/38?closed=1

    Source

    • Global
      • Log a warning when importing multiple instances of the library. #21128, 2a853ac822aa396f8cafedb30b6693b9a87cd848, 87e6d9ee726afe240856d699e026fdcf55127138 (@mrdoob, @Mugen87)
    • Color
      • Added .lerpColors(). #21061 (@mrdoob)
      • Fix ReDoS in .setStyle(). #21143 (@yetingli)
    • Font
      • Convert to ES6 class. #21050 (@linbingquan)
    • Geometry
      • Remove from core. #21031, #21012, #21015, #21022, #21018, #21033, #21038, #21044, #21046, #21077, #21078, #21082, #21116 (@mrdoob, @Mugen87)
    • InstancedMesh
      • Honor instanceColor in copy(). #21028 (@Mugen87)
    • KeyframeTrack
      • Fix typo in .optimize(). #21071 (@donmccurdy)
    • MathUtils
      • Add .pingpong(). #21091 (@marcofugaro)
      • Add .damp() for framerate independent lerping. #21102 (@marcofugaro)
    • Matrix4
      • Add .setFromMatrix3(). #20991 (@gkjohnson)
    • PMREMGenerator
      • Improve handling of background and clear color. #20983 (@gkjohnson)
      • Make background result independent of premultipliedAlpha setting. #21034 (@gkjohnson)
    • Vector4
      • Add multiply(). #21065 (@marcofugaro)
    • WebGLExtensions
      • Introduce .init(). #21080 (@Mugen87)
    • WebGLRenderer
      • Fix updating some material properties in initMaterial(). #21020, #21043 (@Oletus)
      • Fix getting float render target extensions. #21069, #21073 (@Oletus, @Mugen87)
    • WebGLRenderTarget
      • Convert to ES6 class. #21053 (@alexfriesen)
    • WebGLTextures
      • Set all pixel storage modes for CubeTexture. #20961 (@11zouzouzou)
    • WebXRManager
      • Use async/await in setSession(). #20754 (@Mugen87)
      • Updated WebXR Hand implementation to the new API. #20938 (@cabanier)
      • Update camera's local matrix and transform properties. #19085 (@Mugen87)
      • Reset _currentDepthNear/_currentDepthFar in onSessionEnd(). #21146 (@chpatrick)

    Documentation

    • Clean up. #21104 (@Mugen87)
    • Improved Chinese translation. #20976, #20993, #21025, #21066, #21079 (@puxiao, @jiangxiaoxin, @ilzhi, @linbingquan)
    • Improved Korean translation. #20940, #20952 (@hareha)
    • Improved Creating Text page. #20817 (@gonnavis)
    • Improved DRACOLoader page. #20973 (@gkjohnson)
    • Improved GLTFLoader page. #21155 (@donmccurdy)
    • Improved Object3D page. #21124 (@Mugen87)
    • Improved ObjectLoader page. #20988, #20989 (@Cloud9c, @Mugen87)
    • Improved OrbitControls page. #21134 (@1993heqiang)
    • Improved Vector3 page. #21154 (@j13ag0)
    • Add plugins and libraries page. #21010, #21093 (@gkjohnson)
    • Refactor geometry browser. #21030 (@Mugen87)
    • Added docs for KTX2Loader. #21169 (@elalish)

    TypeScript

    • Clean up. #21049 (@linbingquan)
    • Improved declaration of clone() methods. #20947 (@Tonvey)
    • Fix KeyframeTrack constructor types. #20994 (@vickyliin)
    • Add loadAsync() typings. #21001 (@mjurczyk)
    • Added Curve.computeFrenetFrames(). #21036 (@ycw)
    • Improved types for AudioContext. #21048 (@linbingquan)
    • Add uuid as a type to Shape. #21058 (@joshuaellis)
    • Add userData to SVGResult.paths. #21059 (@joshuaellis)
    • Improved Skeleton and SkeletonUtils types. #21051 (@maccesch)
    • Added types for XRHandModel and its methods. #21109 (@CodyJasonBennett)
    • Fix typings for CurveModifier and TessellateModifier. #21112 (@cgauld)
    • The canvas parameter of CanvasTexture now accepts ImageBitmap. #21120 (@AlexandrosGounis)
    • Add failIfMajorPerformanceCaveat. #21157 (@Mugen87)

    Examples

    • Clean up. #20966, #21115, #21158 (@vvanghelue, @takahirox, @Mugen87)
    • Replace zip libraries with fflate. #20959, #20965, #20970 (@Mugen87, @101arrowz)
    • Refactor webgl_simple_gi. #20996 (@Mugen87)
    • Move example code to BufferGeometry. #20999, #21004, #21006, #21005, #21007, #21013, #21021 (@Mugen87)
    • Consolidate morph target examples. #20998 (@Mugen87)
    • Remove Geometry support from exporters, geometries and modifiers. #21008, #21009, #21026, #21062, #21067, #21060, #21081, #21087, #21090 (@Mugen87, @mrdoob)
    • Removed OBJLoader2 and OBJLoader2Parallel. #21014 (@mrdoob)
    • Simplified and improved RectAreaLight example. #21016 (@mrdoob)
    • Removed FaceNormalsHelper. #21017 (@mrdoob)
    • Fix contact shadow example. #21063 (@marcofugaro)
    • Use event.code instead of instead of event.keyCode. #21055, #21056 (@felixmariotto)
    • Removed SubdivisionModifier. #21072 (@Mugen87)
    • Add photosensitive epilepsy warning to webgl_postprocessing_glitch. #20978 (@FrodoLuo)
    • Remove useCapture parameter from event listeners. #21101, #21110, #21125 (@marcofugaro)
    • Add webgl_loader_gltf_compressed example. #21114, 067cf15b815150f24b0ba072fa688b40d37dc6f5 (@zeux, @mrdoob)

    • 3DMLoader

      • Improved point cloud and NURBS support. #21095 (@fraguada)
    • BasisTextureLoader

      • Update Basis library. #21094 (@donmccurdy)
      • Refactor. #21131, #21144 (@donmccurdy)
    • BufferGeometryUtils

      • Added .computeMorphedAttributes(). #21064, #21086, f21ecafb48030ef61ce7b0abeefe607d6df901b0 (@SntsDev, @mrdoob)
    • CubeTexturePass

      • Clone uniforms and properly configure flipEnvMap. #21130 (@Mugen87)
    • FBXLoader

      • Fix transform inheritance, convert back to local. #20932 (@DVLP)
    • GLTFLoader

      • Respect file contents length defined in header. #21122 (@gkjohnson)
      • Fixed variants normal map scale. #21148, #21168 (@elalish)
    • GLTFExporter

      • Support textures using OffscreenCanvas. #21074 (@TechnologicNick)
    • KTX2Loader

      • Fix calculation of level dimensions for NPOT textures. #20888 (@donmccurdy)
      • Improve parsing and transcoding process. #21137 (@donmccurdy)
    • Line2

      • Fix missed intersections when segment extends behind camera near plane. #21041 (@gkjohnson)
    • LUTPass

      • Improve LUT Sampling. #21040 (@gkjohnson)
    • OrbitControls

      • Introduce listenToKeyEvents(). #21054 (@Mugen87)
    • RGBMLoader

      • Added new loader. #21145 (@Mugen87)
    • TrackballControls

      • Fix middle mouse button. #20990 (@Mugen87)
    • USDZExporter

      • Added new class. #21096, 2ceee29ece712e5a906fc3028d0e9056d390b397 (@mrdoob)
    • WebGPURenderer

      • Clean up. #21118 (@Mugen87)
      • Add initial version of a node based material system. #20421 (@sunag)
      • Move glslang to lib directory. #21139 (@sunag)
      • Refactor glslang import. #21149 (@Mugen87)

    Editor

    • Clean up. #21057 (@1993heqiang)
    • Added pen support to EditorControls. #20951 (@arodic)
    • Improve initial parameters of new orthogonal cameras. #20948 (@1993heqiang)
    • Move to fflate. #20971, #20977, #20987 (@Mugen87)
    • Fix remove function of UIPoints. #21011 (@Mugen87)
    • Remove remaining dependencies to Geometry. #21085 (@Mugen87)
    • Fix reference in Sidebar.Material.js. #21105 (@Mugen87)

    Tests

    • Add Object3D.DefaultMatrixAutoUpdate unit test. #20963 (@takahirox)
    • Add Object3D.DefaultUp unit test. #20982 (@takahirox)

    Utils

    • Fix objectPath formatting to support Windows PC in packLDrawModel. #20964 (@lk-lkaz)
    Source code(tar.gz)
    Source code(zip)
  • r124(Dec 24, 2020)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r123--r124 https://github.com/mrdoob/three.js/milestone/37?closed=1

    Source

    • Global
      • Improved linter settings and clean up. #20827, #20829, #20852, #20853, #20862, #20863 (@gkjohnson, @Mugen87)
      • Simplify regular expressions. #20892, #20897, #20899 (@gonnavis)
      • Clean up. #20916, #20910, #20912 (@1993heqiang, @jasonsturges)
      • More usage of ES6 default values. #20840 (@linbingquan)
    • CompressedTextureLoader
      • Fix type of CompressedTexture.image. #20800 (@Mugen87)
    • InstancedMesh
      • Add .dispose(). #20816 (@Mugen87)
    • Line
      • Removed deprecated mode parameter. #20937 (@mrdoob, @Mugen87)
    • Matrix3
      • Add missing return statement to setUvTransform(). #20828 (@Mugen87)
    • SkinnedMesh
      • Refactor boneTransform(). #20875 (@Mugen87)
    • WebGLPrograms
      • Make getTextureEncodingFromMap() more robust. #20847 (@Mugen87)
    • WebGLRenderer
      • Add target argument to .getClearColor(). #20818 (@gkjohnson)
      • Avoid creating per-camera render states. #20422 (@Oletus)
      • Introduce .resetState(). #20859 (@Mugen87)

    Documentation

    • Clean up. #20766, #20780, #20879, #20891, #20895, #20915, #20907, #20905, #20928, #20929 (@linbingquan, @traysiMay, @luisfonsivevo, @Mugen87, @jasonsturges, @ComanderKai77, @gonnavis)
    • Improved AxesHelper page. #20785 (@gonnavis)
    • Improved BufferAttribute page. #20890 (@luisfonsivevo)
    • Improved CurvedPath page. #20866 (@Mugen87)
    • Improved DataTexture page. #20809 (@gkjohnson)
    • Improved GLTFLoader page. #20783 (@takahirox)
    • Improved Layers page. #20832 (@donutcoffee)
    • Improved Matrix4 page. #20864 (@mjurczyk)
    • Improved MeshPhysicalMaterial page. #20778 (@Mugen87)
    • Improved Raycaster page. #20931 (@Mugen87)
    • Added OBB page. #20825 (@Mugen87)
    • Started Korean translation. #20872, #20877, #20925, #20934 (@hareha, @kijunkim9)

    TypeScript

    • Removed shadowMapDebug from WebGLRenderer.d.ts. #20776 (@Mugen87)
    • Introduce OUTPUT enum to SAOPass. #20775 (@Fluqz)
    • Add types for GLTFLoaders plugin system. #20713 (@FMS-Cat)
    • Fix outdated stencil properties of Material. #20881 (@ivan-dages)
    • Fix Vector4.setAxisAngleFromRotationMatrix(). #20927 (@hujiulong)

    Examples

    • Clean up. #20797, #20822, #20923 (@Mugen87, @linbingquan, @Ph0tonic)
    • Removed webgl_postprocessing_ssaa_unbiased. #20764 (@gkjohnson)
    • Made webgl_framebuffer_texture more interesting. #20801 (@Mugen87)
    • Use template string for HTML template in index.html. #20802 (@marcofugaro)
    • Tweak shadow examples search tags. #20773 (@makc)
    • Fixed shadow in webgl_shadow_contact. #20849 (@Fluqz)
    • Fixed broken NodeMaterial presets. #20856 (@Mugen87)
    • Removed TypedArrayUtils and webgl_nearestneighbour demo. #20871 (@Mugen87)
    • Improve webgl_loader_xyz demo. #20896 (@Mugen87)
    • Remove FPS workaround in webxr_vr_video demo. #19907 (@Mugen87)
    • Add mobile support for unreal_bloom_selective example. #20911 (@ajflores1604)
    • Simplify webgl_geometry_spline_editor demo. #20902 (@Mugen87)
    • Added games_fps example. #20836, 326b83d6a17e6c030404fb0f3c12690076a3d896, 919707fd156b87256f2b9cd8c997aa7a7163bb4c, 762ecf632a12aaa248e2cafef716716d85ea14db (@supereggbert, @mrdoob)

    • 3DMLoader

      • Added checks for null geometry and material. #20873 (@fraguada)
    • ColladaLoader

      • Use Object3D.animations. #20767 (@Mugen87)
    • CurveModifier

      • Fix WebGL 1 support. #20860 (@Mugen87)
    • EdgeSplitModifier

      • Support other attributes. #20855 (@Mcgode)
      • Keep normals. #20903 (@Mcgode)
    • FBXLoader

      • Speed up getTimesForAllAxes(). #20906 (@Kimbatt)
    • GeometryUtils

      • Add gosper curve generator. #20814 (@Mugen87)
    • GLTFExporter

      • Fix undefined node name bug in mergeMorphTargetTracks(). #20799 (@takahirox)
      • Account for bind matrix. #20804 (@zach-capalbo)
    • GLTFLoader

      • Use sanitized name when creating unique node name for duplicated name. #20880 (@ryans1224)
    • LDrawLoader

      • Fix uniforms to support fog. #20913 (@lk-lkaz)
    • LottieLoader

      • Convert to ES6 class. 977cf79c8cad32d31958cf14ee8ed5aafc6e88c4 (@mrdoob)
    • OBJLoader

      • Only add color attribute if necessary. #20763 (@Mugen87)
    • RGBELoader

      • Make magic bytes regex less strict #20887 (@gkjohnson)
    • TDSLoader

      • Fix material parsing. #20793 (@Mugen87)
    • TiltLoader

      • Added new loader. #20831, #20838, #20837, dd3378380778640c995e55e4390f86c2a59c7df8, b467f16cd95e22873c36d565f29e86affa6e0098, 3fea7a65269a446bea79316625c3cc320f3fd20b (@mrdoob, @linbingquan, @Mugen87)
    • VOXLoader

      • Convert to ES6 class. a6186c3b23e065e78da2dfcf2cd2219b441c0565 (@mrdoob)
      • Added VOXMesh class. efdcb275b6ec4157de3fa70498dfdb16ab98823a, b6f343b6f7e6f649ec25db6ded1dcdf3e74b4493 (@mrdoob)

    Editor

    • Clean up. 573fbc7f2fff74650c4d6d4fea0098deaad8d0dd, f5d1f18539997ef362b63891968a7589f19762c4 (@mrdoob)
    • Import loaders dynamically. fa7b40c27c8b95637bc849418adc659f5c023948 (@mrdoob)
    • Import exporters dynamically. 62b19f0fa8c5ced438a52a8f4c3b5a11f68f8d1f (@mrdoob)
    • Import geometry parameter panels dynamically. e25449c2e3c7f147968b6d0fcbc92769d3bfb2fe (@mrdoob)
    • Added vox files support. 6e0c0b0e0f02f8c4ac9736adfe673d5fa9df3558, 13afd508b4c2afbcd0dc7809c7abbbdcd2f9eca9 (@mrdoob)

    Tests

    • Introducing logging level for unit tests. #20782 (@takahirox)
    • Add Object.updateWorldMatrix() unit test. #20772 (@takahirox)
    • Add GLTFExporter lights and unlit material extensions tests. #20821 (@takahirox)
    • Fix remaining console warnings. #20834 (@Mugen87)
    • Introduce flag for skipping unit tests in node.js. #20884 (@takahirox)
    • Fix GLTFExporter unit test. #20885 (@takahirox)
    • Add npm run test-unit-examples command. #20900 (@takahirox)
    • Removed editor unit tests. 1e30dfa8771f6a5d9ab6a7098366a35b75c57a17 (@mrdoob)

    Utils

    • Removed converter scripts. #20936 (@Mugen87)
    Source code(tar.gz)
    Source code(zip)
  • r123(Nov 25, 2020)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r122--r123 https://github.com/mrdoob/three.js/milestone/36?closed=1

    Source

    • Global
      • More usage of ES6 default values. #20586, #20742, #20749, 00f2725c37e5ed1cca5edae4a9e4031ef1346683 (@linbingquan, @mrdoob)
    • BufferGeometry
      • Add .hasAttribute(). #20733 (@Mugen87)
    • Clock
      • Avoid code redundancy. #20743 (@linbingquan)
    • DataTexture
      • Added serialization/deserialization support. #17745, #20736 (@Mugen87)
    • DataUtils
      • New component for data conversion tasks. #20580, #20581 (@Mugen87)
    • InstancedMesh
      • Add .getColorAt(). #20663 (@Mugen87)
    • Matrix3/Matrix4
      • Introduce .invert(). #20611 (@Mugen87)
    • Object3D
      • Add animations property and serialization/deserialization support. #20738, #20744 (@Mugen87)
    • Quaternion
      • Rename .inverse() to .invert(). #20613 (@Mugen87)
    • SkinnedMesh
      • Added serialization/deserialization. #20589 (@Mugen87)
    • Skeleton
      • Clarify properties and clean up TS. #20639 (@Mugen87)
    • WebGLBindingStates
      • Resolve memory leak caused by using Object.keys(). #20643 (@takahirox)
    • WebGLRenderer
      • Enable half float attributes. #20587 (@Mugen87)
      • Set style.display to block in constructor. #20616 (@mrdoob)
    • WebGLState
      • Ensure reset() resets all status variables. #20732 (@webglzhang)
    • WebXRController
      • Hide controller while system UI is up. #20730 (@cabanier)

    Documentation

    • Clean up. #20601, #20623, #20699 (@Mugen87, @linbingquan)
    • Unify type case. #20596 (@gonnavis)
    • Improve How to update things guide. #20605 (@Mugen87)
    • Clarify InstancedMesh.setMatrixAt(). #20620 (@gonnavis)
    • Added .setColorAt() to InstancedMesh. #20662 (@Mugen87)
    • Clarify usage of WebGLRenderer.info. #20678 (@Mugen87)
    • Fix MathUtils.randFloatSpread() style error. #20680 (@gonnavis)
    • Add note about non-uniform scale to Matrix4.decompose(). #20752 (@Mugen87)

    TypeScript

    • Add userData to MaterialParameters. #20624 (@alexpreynolds)
    • Added additional type information toArray(). #20614 (@Antony74)
    • Add missing definition of GLTFLoader methods. #20712 (@FMS-Cat)
    • Add .getHand() typing in WebXRManager.d.ts. #20707 (@wassx)
    • Fix return type of Matrix4.invert(). #20731 (@arodic)
    • Fix Object3D.quaternion description. #20739 (@JacobJaffe)

    Examples

    • Clean up. #20650, #20652, #20667, #20668, #20669, #20693, 2526d934b7bbd2b95e792be48823ba9043896a84 (@Mugen87, @mrdoob)
    • Avoid computation of inverted matrices. #20577 (@gonnavis)
    • More usage of WebGLExtensions.has(). #20615 (@Mugen87)
    • Improved webgl_gpgpu_birds_gltf example. #20645, #20646, #20649 (@gonnavis)
    • Converted TessellateModifier to recursive and made it similar to SubdivisionModifier. #20430 (@arodic)
    • Remove usage of Camera.target. #20694 (@Mugen87)
    • Fixed webgl_loader_texture_rgbm example. 7fbb4a0956f5567ec5bcca8ba273ceef1d629137 (@mrdoob)

    • 3DMLoader

      • Read object names from .3dm file. #20684 (@perkma)
      • Assure a minimum pointCount of 2. #20692 (@perkma)
      • Fix issue when files have many objects. #20714 (@fraguada)
    • 3MFLoader

      • Fix 3D model part parsing. #20756 (@Mugen87)
    • CurveModifier

      • Fix shader code injection. #20691 (@mjurczyk)
    • DRACOExporter

      • Properly support point clouds. #20706, #20726 (@Mugen87)
    • DragControls

      • Use PointerEvents. #20734 (@Mugen87)
    • EffectComposer

      • Add .removePass(). 3cda712be8b605c9e3ef50edc76eb44cd13a90be (@mrdoob)
    • FBXLoader

      • Support ColorRGB as DiffuseColor type. #20674 (@ilex0208)
    • GLTFExporter

      • Remove forcePowerOfTwoTextures option. #20686, #20746 (@Mugen87)
      • Add basic support for DataTexture. #20588, #20750, 6910a7a207e34982b108c029a4056c5110f0e098 (@Mcgode, @Mugen87, @mrdoob)
      • Fix normal computation with interleaved data. #20745 (@Mugen87)
      • Better support interleaved data in getMinMax(). #20751 (@Mugen87)
    • GLTFLoader

      • Set glTF primitive extensions to userData. #20679 (@donmccurdy)
      • Support KHR_materials_variants extension and add webgl_loader_gltf_variant example. #20690, #20717, d72eb8950e9d2be5bb491570d897be8ac0f922df (@cx20, @donmccurdy, @mrdoob)
    • KTX2Loader

      • Allow .parse() to initialize transcoder. #20677 (@donmccurdy)
    • LineMaterial

      • Add dash offset. #20593 (@Mugen87)
    • LottieLoader

      • Add a new loader and webgl_loader_texture_lottie example. #20585, 940fe933dafc486f395462622bf038ba5ad952e2, 1096e8f8d8147b61387bf6194298e577649d0a9c (@mrdoob)
    • MeshSurfaceSampler

      • Add .setRandomGenerator(). #20576 (@gkjohnson)
      • Support vertex colors. #20702 (@Mugen87)
    • NodeMaterial

      • Ensure defines are properly set. #20630 (@Mugen87)
      • Fix setting of extensions. #20655 (@Mugen87)
    • OBJExporter

      • Add support for colored point clouds. #20695 (@Mugen87)
    • OBJLoader

      • Better support point clouds. #20724 (@Mugen87)
    • OrbitControls

      • Removed tabIndex side effect. #20617 (@mrdoob)
      • Fix theta clamping. #20628 (@luna-magicad)
      • Fixed sticky controls when disabled. #20735 (@arodic)
    • PLYLoader

      • Fix byte length computation of header. #20626 (@Mugen87)
    • RoundedBoxBufferGeometry

      • New geometry generator. #20597, #20606, #20632, #20666, #20672, a4f71beffdbd18b471f736e7eb1e1f48c626fd79 (@mrdoob, @gkjohnson)
    • SVGLoader

      • Fix arc parsing with zero radius path commands. #20644 (@gregzanch)
    • WebGPURenderer

      • Introduce WebGPUTextureRenderer. #20574 (@Mugen87, @mrdoob)
      • Introduce ShaderLib. a01651a4de43368498ba5f95fc61c83b8888dc14 (@Mugen87)
      • Set style.display to block in constructor. edc60767171bfdad375834e0847a0c713baa57fe (@Mugen87)
    • XYZLoader

      • Added new loader and webgl_loader_xyz example. #20689 (@Mugen87)

    Editor

    • Add support for PointsMaterial. #20701 (@Mugen87)
    • Ensure material selection fits to object type. #20710 (@Mugen87)
    • Add support for loading DRACO encoded point clouds. #20711 (@Mugen87)
    • Add XYZLoader. #20727 (@Mugen87)
    • Improve Chinese translation. #20728 (@linbingquan)
    • Trigger rendering when animation is stopped. #20753 (@Mugen87)

    Tests

    • Add Object3D.updateMatrix() unit test. #20676 (@takahirox)
    • Add Object3D.updateMatrixWorld() unit test #20685 (@takahirox)
    • Add Object.localToWorld() and Object.worldToLocal() unit tests. #20721 (@takahirox)
    Source code(tar.gz)
    Source code(zip)
  • r122(Oct 28, 2020)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r121--r122 https://github.com/mrdoob/three.js/milestone/35?closed=1

    Source

    • Global
      • More usage of ES6 default parameters. #20472 (@linbingquan)
    • AnimationObjectGroup
      • Fix .uncache() when used with a single object. #20556 (@Mugen87)
    • Audio
      • Copy filters array in .setFilters(). #20105 (@takahirox)
    • Camera
      • Properly update world matrix prior to use. #20224 (@WestLangley)
    • CubeCamera
      • Moved .clear() to WebGLCubeRenderTarget. #20565 (@mrdoob)
    • CubeTexture
      • Clarify envMap flip. #20490 (@Mugen87)
    • MaterialLoader
      • Make .parse() more robust. #20534 (@Mugen87)
    • Object3D
      • Add clear(). #20478, 315d0fc94b054ef8fc98497d6c71e61b9c9a3715 (@Mugen87, @bianyunzhi95, @mrdoob)
    • RectAreaLight
      • Add half float support. #20477 (@yellowtailfan)
    • VideoTexture
      • Fix clone() in context of requestVideoFrameCallback(). #20449 (@ianpurvis)
    • WebGLGeometries
      • Fix memory leak when disposing of Geometry. #20479 (@Mugen87)
    • WebGLCubeMaps
      • Support Texture.dispose(). #20439 (@Mugen87)
    • WebGLRenderer
      • Traverse only visible lights in .compile(). #20450 (@Oletus)

    Documentation

    • Improved Creating a Scene page. #20468, #20525 (@montoyamoraga, @subtra3t)
    • Improved Quaternion page. #20396 (@FlorentMasson)
    • Improved VideoTexture page. #20476 (@Mugen87)
    • Improved constants page. #20488 (@linbingquan)
    • Move to let/const. #20484, #20487, #20485 (@Mugen87, @linbingquan)
    • Improved Chinese translation. #20533, #20532 (@SJoshua, @zhangyxyx)
    • Remove obsolete list.js imports. #20545 (@Mugen87)
    • Make list.js to a JSON file. #20553 (@Mugen87)

    TypeScript

    • Add is* boolean to every texture type. #20483 (@DavidPeicho)
    • Export TextGeometryParameters. #20467 (@Methuselah96)
    • Remove Scene.dispose() definition. #20496 (@wal0x)
    • Add missing DataTexture2DArray declaration. #20526 (@djytw)
    • Add mouseButtons to TrackballControls. #20551 (@markhog)
    • Fix parameter error of AnimationClip.toJSON(). #20569 (@beidongjiedeguang)

    Examples

    • Clean up. #20438, #20470, #20513, #20517, #20536, #20567, #20570, #20571, 39aca0494bd7eb88da19ccf336f43772538eb3c0 (@linbingquan, @Mugen87, @mrdoob)
    • Remove ExplodeModifier. #20458 (@Mugen87)
    • Remove Fire. #20495 (@Mugen87)
    • Move HTML example code to let/const. #20500, #20501, #20503, #20505, #20507, #20509, #20510, #20512 (@Mugen87)
    • Update name of face mesh in webgl_animation_skinning_morph example. #20504 (@donmccurdy)
    • Make files.js to JSON files. #20544 (@Mugen87)
    • Add 3D LUT color grading post processing pass. #20558, #20562 (@gkjohnson)
    • Add EdgeSplitModifier. #20535 (@Mcgode)
    • Removed deprecation warning from examples/js files. #20568 (@mrdoob)
    • Fix toggle icon CSS issue. #20566 (@Mugen87)
    • Added curve modifier examples. #20538 (@AdaRoseCannon)

    • GLTFLoader

      • Fix handling of glTF files with optional KTX2 extensions. #20518 (@zeux)
      • Add support for EXT_texture_webp. #20539 (@donmccurdy)
      • Implement support for EXT_meshopt_compression. #20508 (@zeux)
    • OBJLoader

      • Fix normal generation. #20498 (@gkjohnson)
    • OutlinePass

      • Exclude point clouds and lines. #20460 (@Mugen87)
    • SelectionHelper

      • Use Pointer Events API. #20514 (@tsaockham)
    • SSAOPass

      • Exclude point clouds and lines. #20451 (@Mugen87)
      • Make visibility cache to a property. #20459 (@Mugen87)
    • STLExporter

      • Use BufferGeometry, supported skeletons. #20494 (@Mugen87)
    • WebGPURenderer

      • Fixed byte size alignment in WebGPUAttributes. #20442, 7bc80c5a84e277cef288fe2a5d35b1d1347fc10b (@pplux, @Mugen87)

    Editor

    • Clean up. #20464 (@linbingquan)
    • Support animation export with GLTFExporter. #20454 (@Mugen87)
    • Improved Chinese translation. #20466, #20557 (@linbingquan)
    • Fix ViewHelper with translated camera. #20524 (@Mugen87)
    • Change color picker to realtime. #20528 (@codedeep)
    • Make playback speed of animations configurable. #20547 (@Mugen87)

    Tests

    • Fix ReferenceError in check-coverage.js. #20543 (@takahirox)
    Source code(tar.gz)
    Source code(zip)
  • r121(Sep 30, 2020)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r120--r121 https://github.com/mrdoob/three.js/milestone/34?closed=1

    (646,271 KB, gzip: 157,542 KB)

    Source

    • Global
      • Move to ES6 classes. #20240, 853f44510b3bdeb88946ae954c5981e39dbee5af (@mrdoob)
      • Add /*@__PURE__*/ to module scope variable assignments. #20236 (@ianpurvis)
    • AnimationUtils
      • Define numTracks using referenceClip rather than targetClip. #20410 (@c-morten)
    • BufferGeometry
      • Chainable setIndex() method. #20413 (@takahirox)
    • EdgesGeometry
      • Move to BufferGeometry. #20327 (@gkjohnson)
    • Geometries
      • Split geometry generator files to improve tree shaking. #20394, 1c3b2b46319fc425a067ff974fa978ff241565e9, 6f42e07f66a26f39f2e84475768ac1eb391398e4 (@mrdoob)
    • ImageBitmapLoader
      • Honor crossOrigin property. #20351 (@Mugen87)
    • Lights
      • Do not set receiveShadow to undefined. #20357 (@ycw)
      • Set castShadow to false for AmbientLight and HemisphereLight. #20340 (@ycw)
    • LightShadow
      • Remove from public API. #20288 (@WestLangley)
    • Line
      • Add InterleavedBufferAttribute support to raycast. #20366 (@manthrax)
    • Loader
      • Introduce .setWithCredentials(). #20355, #20364, #20374 (@amosbyon1224, @Mugen87)
    • MeshPhysicalMaterial
      • Improved transmission model. #20273 (@WestLangley)
      • Added .ior property. #20322 (@WestLangley)
    • Object3D
      • Correctly update world matrix prior to use. #19969 (@WestLangley)
    • Points
      • Add InterleavedBufferAttribute support to raycast. #20369 (@manthrax)
    • PolyhedronGeometry
      • More fine-tuned picking of level of detail. #20255, #20420 (@felixmariotto, @Mugen87)
    • SpotLightShadow
      • Added .focus property. #20218 (@WestLangley)
    • WebGLCubeRenderTarget
      • Use CubeTexture. #20182 (@Mugen87)
    • WebGLShadowMap
      • Ensure undefined check works in render(). #20291 (@Mugen87)

    Documentation

    • Clean up. #20263, #20378, #20379, #20383, #20382, #20381 (@mentaltoy, @ycw, @ACMCMC)
    • Improved Arabic localization. #20190, #20377 (@hassanMuhamad)
    • Improved WebGLProgram page. #20293 (@Adjective-Object)
    • Clarify loop unroll behavior. #20306 (@gkjohnson)
    • Clarify behavior for Material blendDst, blendEquation, and blendSrc when null. #20344 (@gkjohnson)
    • Fixed WebGL Spec links. 1fae7ea7d218eeb8a37bb82eb400c4cac0a6b274 (@mrdoob)
    • Geometry UVs are Vector2s. #20406 (@TiraO)
    • Clarify InstancedBufferAttribute.meshPerAttribute. #20408 (@Mugen87)
    • Added undefined as Material.defines type. #20356 (@ycw)
    • Improve Object3D page. #20386 (@mjurczyk)

    TypeScript

    • Clean up. #20285, #20337, #20338, #20339, #20342, #20343 (@linbingquan, @ycw)
    • Improve CondNode constructor's type. #20232 (@martinRenou)
    • Add logical operators to CondNode. #20231 (@martinRenou)
    • Fix Vector3.fromBufferAttribute() type definition. #20235 (@Mike-Dax)
    • Add InstancedMesh.setColorAt() definition. #20250 (@ben-voss)
    • Fixed wide line typings. #20267 (@giulioz)
    • Added definitions for CSM classes. #20270 (@Sean-Bradley)
    • Make ArrowHelper's color parameter more permissive. #20282 (@deerob4)
    • Remove mode from LineSegments ctor. #20295 (@ycw)
    • Removed outdated *IdCount. #20341 (@ycw)
    • Fix inheritance of WebXRManager. #20352 (@Mugen87)
    • Fixed load() in CompressedTextureLoader. #20373 (@linbingquan)
    • Added types for WebXR API. #20150 (@PalashBansal96)
    • Added setScaleSnap type definition to TransformControls. #20423 (@YoshihiroIto)
    • Clean up geometry generators. #20426 @klevron
    • Fix color property type on LineBasicMaterial. #20429 (@Methuselah96)
    • Fix ExpressionNode contructor's type definition. #20213 (@martinRenou)

    Examples

    • Clean up. #20233, #20246, #20360, #20405 (@SanjoSolutions, @Mugen87, @pschroen)
    • Assign equirect env maps directly to Scene.background. #20189 (@Mugen87)
    • Properly handle EXR files on drag-and-drop in webgl_materials_matcap example. #20261 (@WestLangley)
    • Linearize sRGB material color in webgl_materials_matcap example. #20279 (@WestLangley)
    • Properly initialize helpers in webgl_materials_envmaps_parallax example. #20278 (@WestLangley)
    • Use RectAreaLightHelper in webgl_lights_rectarealight example. #20277 (@WestLangley)
    • Refactor controls in webgl_geometry_spline_editor example. #20312 (@Mugen87)
    • More usage of pointer events and terminology. #20316, #20353 (@Mugen87)
    • Fix timing bug in misc_controls_pointerlock example. #20334 (@arodic)
    • Fixed broken pointer event handling when pointerType is pen. #20336 (@arodic)
    • Removed misc_animation_authoring example. #20363 (@Mugen87)
    • Simplified webgl_multiple_scenes_comparison example. 65494f3b0973b39d851dc18859745b708451df65, a72e73d74e2f71f3ac05e6a73870acfd5f28ffc5 (@mrdoob)
    • Improved GridHelper in black backgrounds. c39ede5f47da0df061fb206db3a4940688cd5aa9 (@mrdoob)
    • Replaced all touch events usage. 0a1131fb92cf54c6ac05e1a39bd2c71efe07faeb (@mrdoob)
    • Update geometries in webgl_lod. c9b5020cbf0b3ed4dc4da098e7ea8cb4b79966f2 (@mrdoob)
    • Remove TypedGeometryExporter. #20404 (@Mugen87)
    • Add jittering to reduce sampling artefacts in webgl2_volume_cloud example. #20222, b44e670887c84bbd85296e108024c22682702dd0 (@DavidPeicho, @mrdoob)
    • Added misc_legacy example. d2f0e5c4b8fab0ca2737768c7a5f003c93f0f713 (@mrdoob)

    • 3DMLoader

      • Enhance implementation. #20300, #20349 (@fraguada)
    • BasicNodeMaterial

      • Improve shaders. #19955 (@martinRenou)
    • DRACOLoader

      • Improve performance with new GetArray methods. #20399 (@donmccurdy)
    • GLTFLoader

      • Modified spec/gloss shader to match the glTF spec. #20226 (@WestLangley)
      • Properly set defines for GLTFMeshStandardSGMaterial #20242 (@WestLangley)
      • Add node hookpoint and move the lights extension handler to the new system. #19892 (@takahirox)
      • Fix alpha detection for colorType=3,4. #20376 (@donmccurdy)
      • Deduplicate node names. #16639 (@donmccurdy)
    • Line2

      • Pass geometry and material into super constructor. #20260 (@jeffpyke)
    • LineSegements2

      • Add a threshold raycaster parameter. #20375 (@gkjohnson)
    • RoughnessMipmapper

      • Fixed breakage when roughnessMap is undefined. ad7b74752873ca78806652bccadbad0235641606 (@mrdoob)
    • SVGLoader

      • Implement defs and use nodes. #20209 (@yomboprime)
    • TransformControls

      • Set touchAction instead of touchstart listener. fef0b7a82c0b70af0090039ca66e8bfda46c11d8 (@mrdoob)
      • Set touchAction in onPointerDown/onPointerUp. 7f8b59f149c886fa874508c9c6e88345f337ef7b (@mrdoob)
    • VTKLoader

      • Always use LoaderUtils.decodeText(). #20398 (@Mugen87)
    • WebGPURenderer

      • Added new renderer. #20254, #20257, #20268, #20274, #20272, #20275, #20281, #20284, #20283, #20330, #20298, #20390, 9618bc874c8102e2686818aa594a9aee2823dbfc, d4083dc93e98d59d93f070b0d3a8878fb786b50b, c3d8a89ead57221c107ebfb8b6253fde77d3f4cf, 26472f8bb35e6a871b1a16940a874067aa72478c, 6e19f98d19de21ef43d36971ec4ae32f2ff339bb, 9021c89b60e3505924d22e2340c3a05a121ba2b4, fe65eaf5770dc6b84f0391c919883f2c1f4f6229, 211d4c063a512fabfa7fb902ca58c65b4d8b748e, 33079a0bb60158cc16900fd79d2abe4713ff002e, 5d72fec54fe91895ce3ad309604f1e3cffa0df79, 10bff9f9b2da526300e506c5927b5ee969b35df8, 8277a52d8298da0d306d9926344b8208ac727d99, 63a0b7b4bbce5097adfb9b52be6f507a25e8b3a3, 317bd1ca00d98a6df198871d93efcb98bb1e2788, 5029895696022b09a35c6c3d306992698640398d, e1fde83ed8784c0c504e276d219f50d93c5c1fe8, da646541799b3a13a525e50cf8a81d84aae8abb1, 2aca7c652544d4f4efef8f98c3132630db4d0f7b, 7a096e83c1aa91c1c37cd63db4bdb36f14d87cbf, 2519b4791c6ac3eabe0cc46a40917139e2eef0e3, 2876fccf0eecaeff9b76277eb001c49a81ea8ec8, d82f89e141e3569267ad3a884d2baf2f4ce6d486, e1035798b270bb34cdbe6066dbc064bfe97030e7, 329cb62f6d96a541c5391b1085dbf3187e0bc8ae, b166f4063c9e4aeafdbd8129d3de1f1cda144d34, 91e38e703b1bbdd45bf20ec71781ca62718c82c1, 1e3672895504714a2f81f055dfdc69c5f83f8af8, 3fd2561cc987cb527dda92d7719c7adc5e059fd8, b0f454610f4b13b1aaba64747290bcf6c4d60466, 56d0b32e01acf2e83b5d9e8d5b69ab67a09bbd0c, 00cabc49cfd8aa87c1f0ba2b23a825c62ee2d498, 8e70942d186d761d892a9307a39faddb1c28172f, 201e67b3630b27bf8ed2543978f187f3f3e8bbc1, b906fb34bcc1d85cfbe203500bf3f0ad85bf3530, 67ca3621b544f1493c20bf0cac2470d384460740, 37ca608ede43085b54b657bcfc3fb9b03700f617, 6f3e65110f2efd0d31355d77eaff7c7f45b76034, 1268b1098f1265e2811c62ead4caec9e28946064, 3092ff9625d8288c7c1addfe34f2af1b5bcec94c, 0200e03ed7aab3760a8d9b0b202fdebedff016fd, 57fa67f484278bff6271dfc25513b34595431779, 02282931d0c7ac75100465f60e614a6f8885d525, 029877f18cb0ba00e0c03f395764db9654772f43, cf9822ca93929e2d2b4a78e2bcd8f312d96857bf, 839f462ea3e96dd85cf88e09e838ee420113cb61, 7551139279e0b93f07974784ca1c1293b24ee6f2, 1c7f4c9e63689de25257bc2c2a9e8539003e92bb, 9676f7f96de75b99ada2e8b3d379a5d1e8fbf963, 29ec65b5223eb4a0cd155a6085e6ac7999b748d8, 0229ebdcdf8d7c00d564bab8b61d6b4c4418d44a, 9ee09d6fdc8ad893915f9323cbf69d71812595f3, dfe538e053fae75b1d0bfcdd2b353e36b387c5a0, d5c3089f86ffda1d4b26d02687a691f104d95368, c95ea0b9babd195eaec9f93c6593d2eaa1a51a33, cd3003fa55db3b3c4c02b606bc35c3674cfb184d, 7bb3c2c9205c516c8d1943a734e745a9088fc5ef, 16353c9ccff5bd8837ddb019b021c8323c79d995, 3dcce7a54a6def381f12645683da9502d72215d9, 7830fe3423d042b3735498adf2e1c49d0631442c, 1893c9d8446c91a7c3f6a635ccd129b0568f11a5, cd95aa4ea6e6af4e70f2099f782d6f2e82ab05bd, 5e1417cb16b27868e63087a8eb0b3ac42d424fba, fcdfc8a5e784259a6e9569d39b6dbdb75f152251, 6246c1314b5e92e0686eb3b37b242bece5a28595, ade8cd95353707622fa011df96f0a22f703338c2, b4d4566bf230bbd9db02c96fa49cd42220962d7a, 9a6f648e90b08b7eb365b2bb718c8052b35f6ed8, 3d8f432c6bcb3444f40074c1682a91ad1c7d2400, e22c4ff635acdfca77174d659d2869e9fc838626, 932dc8440583e7df86d20a433da6dc96f115a02e, c9a8edc1062a43b8bf53c2a54df30f55de3e0845, 3056904edb5bd6585c6004cc40f2de972fbc2d3e, 551adcb62bf20278867cbdf0c7346ecd46ac486a, d4a3e62310385a4db7194c7efd4b17ca8f06ba02, fbea62b900a4103a12fac9213841fa3013069970, cb623edad59ff235f884c7c0390356d7d6bbe512, 0466c14df6366ba4b5871172a5e9f8d9a3ab6c88, b7c038d2caae00f37026107d12d357ac39a883e1, 66b9fa344ce01581033d171e1de09dd86bd5a3d7, d85592acaae04390d3f502652e1a0cdf6c6c2811, 0576e709bd4168c9c815e899e3f46a713a162633, 44e7ea99fb420e02ed9efb864aba90a595811926, 2a6229d49d403ecf4c09472915bb59a323296fc1, e6b67d30ba0659b1f16d8b3ef55c360a63d1eead, 4314d79eefd424b7c3cb219c3a9d1f5c5168afa7, 6a57d82be0459321860c08abb9cfbfa023fc940f, fcd0cc4e889ec24e8d7cc3f8832e9c9ff97dd27a, 2f73371f7b4bdf39be4068e738b744d5a2eeac3c, b02e7f9fbbd488a7fad5535ff07724ae09172188, 599eb633506171a190c0c94e4836ab0f6ff753ac, 87f564470765886606db25a5e94d8be01e2cdbef (@Mugen87, @takahirox)

    Editor

    • Make emissiveIntensity configurable. #20227 (@Mugen87)
    • Fix light shadow configurations. #20358 (@Mugen87)
    • Tweaked cursors. f32bb9f952f3ea09002739fcd96baae1342f26fb (@mrdoob)
    • Refactored Resizer.js. b215c369fccf85a82fa80c8bfe3e19bc50a6694c, 70f000115fe6d21370244f2f16fea1ec82d7a80d (@mrdoob)
    • Remove touch-action css temporarily. b478609c3c5b1058b0f91e4393f6509c64537eee (@mrdoob)
    • Fix VTK import. #20397 (@Mugen87)
    • Update esprima from 2.0 to 3.1. #20425 (@devingfx)
    • Improve multi-file loading. 43927714ad26a861a6f0c84f25ff968a9d2d7558 (@mrdoob)
    Source code(tar.gz)
    Source code(zip)
  • r120(Aug 30, 2020)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r119--r120 https://github.com/mrdoob/three.js/milestone/33?closed=1

    (642,741 KB, gzip: 160,428 KB)

    Source

    • Global
      • Move to ES6 classes. #19980, #19977, #19964, #19978, #19976, #19979, #19984, #19975, #19982, #19996, #19994, #20003, #20023, #19997, #20076, #20007, #20089, #20110 (@ianpurvis, @DefinitelyMaybe, @linbingquan, @Mugen87, @yomotsu, @marcofugaro)
      • Preserve sourcemaps in rollup transforms. #19981 (@donmccurdy)
      • Move some variables from let to const. #19970 (@DefinitelyMaybe)
      • Clean up. #19956, #19987, #20119, #20152, #20185, #20181, c0562189e0bf1eb8f31a1bf0c5c6bde3e54b1b01, 8bb05729b04d06bad33bceae133212262954ff17, d798868e9b31132de3c02bdf8fb6b28d51ed6a20 (@linbingquan, @WestLangley, @mrdoob)
    • AnimationUtils
      • Added support for tracks with cubic spline interpolation to .makeClipAdditive(). #20021 (@c-morten)
    • Audio
      • Initialize source with null. #20073 (@takahirox)
      • Introduce _connected flag to fix .setFilters() bug. #20093 (@takahirox)
    • GLBufferAttribute
      • Added new class. #13196, #20114, #20136 (@raub, @Mugen87)
    • InstancingMesh
      • Added per instance color support. #19947 (@mrdoob)
    • LightShadow
      • Don't export DirectionalLightShadow and SpotLightShadow. #20139, #20171 (@Mugen87)
    • MaterialLoader
      • Add missing break statement in .parse(). #20050 (@Sammius)
    • Quaternion
      • Fixed property typo in .setFromEuler(). #20042 (@encadyma)
    • RoughnessMipmapper
      • Maintain texture parameters. #20138 (@elalish)
    • Scene
      • Remove dispose(). #19972 (@Mugen87)
    • ShaderMaterial
      • Introduce .glslVersion property. #20005, #20090, #20095, #20099, d6e6eef58c590e0879e07b7ff50fd34f1ad4ddcf, d9129702f26975d15636c9c6491c5c0fd06ae902 (@J-Rojas, @Mugen87, @mrdoob)
    • WebGLBindingStates
      • Check if cachedAttribute is undefined. #20056 (@greggman)
      • Add index to cache. #20045 (@shawn0326)
    • WebGLClipping
      • Refactoring. #20084 (@Mugen87)
    • WebGLExtension
      • Fix return value of has(). #20167 (@Mugen87)
    • WebGLMaterials
      • Added clearcoat maps to the uv offset/repeat priorities. #20178 (@WestLangley)
    • WebGLPrograms
      • Rename allocateBones(). #20087 (@Mugen87)
    • WebGLProgram
      • Make loop unrolling whitespace-insensitive. #20012, #20163 (@DavidPeicho, @yushijinhun)
    • WebGLRenderer
      • Add support for equirectangular to cube env map conversion. #19911, #20043, #20044, #20048, #20081, #20085, #20113 (@mrdoob, @WestLangley, @Mugen87)
      • Make uniforms handling of RectAreaLight more consistent. #20078 (@Mugen87)
      • Remove superfluous program check in setProgram(). #20097 (@Mugen87)
      • Remove unused parameter when calling getUniforms(). #20123 (@Mugen87)
      • Remove obsolete code from initMaterial(). #20124, #20151 (@Mugen87)
    • WebGLRenderTarget
      • Disable stencil buffer by default. #19926, #20117, #20118 (@WestLangley)
    • WebXRController
      • Fix bug when updating joints without requesting a hand. #19983 (@fernandojsg)

    Documentation

    • Improved Object3D page. #19993 (@WestLangley)
    • Remove outdated examples of ArrowHelper. #20004 (@Methuselah96)
    • Add arabic localization. #20075, #20079, #20088, #20098, #20106, #20121, #20134, #20137, #20149, #20154, #20172, #20176, #20164, 717cb0d41340c2ea788c67cac3b11801438f97ef, 81bdccaa4a4a243159100a025c833ddc7912d00d (@hassanMuhamad, @mrdoob)
    • Improved Chinese localization. #20040 (@gogoend)
    • Fix broken links to transmission example. #20092 (@donmccurdy)
    • Improved DepthTexture page. #20107 (@Mugen87)
    • Improved Loading 3D models guide. #19968 (@donmccurdy)
    • Improved CubeCamera page. #20169 (@martinRenou)

    TypeScript

    • Fix optional method arguments in NodeBuilder. #19963 (@martinRenou)
    • Fix optional material parameters in MeshPhysicalMaterial.d.ts. #20017 (@FishOrBear)
    • Added @default values. #20036 (@dmnsgn)
    • Extend object classes with generic types. #20133 (@Berthur)
    • Use a variable instead of an interface for DepthLimitedBlurShader.BlurShaderUtils. #20173 (@twastvedt)
    • Fix types for Line2. #20165 (@giulioz)

    Examples

    • Clean up. #20015, #20077, a5c63ac1a31d660ca90a3316962a78dfdde0c114, f119b45e0c140d1a7629e0ec2c349fa124041d5d, 2199be415c195574ba126e63ec26eaa3f54cf11e (@linbingquan, @Mugen87, @mrdoob)
    • Implemented instanced colors in webgl_loader_vox example. #19949 (@mrdoob)
    • Added webgl2_volume_instancing example. #19992 (@mrdoob)
    • Update chevrotain module. #20027 (@Mugen87)
    • Added onWindowResize() callback to CSS3D examples. #20068 (@WestLangley)
    • Properly specify texture sRGB encoding. #19800 (@WestLangley)
    • Disable alpha buffer when not required. #20116 (@WestLangley)
    • Fix minor search bugs. #20122 (@Mugen87)
    • Fixes controls in webgl_materials_modified example. #20162 (@gsimone)
    • Adds change event to DeviceOrientationControls and FlyControls. #19924 (@gsimone)
    • Improved webgl_loader_3ds example. b8898cc1d7d91b1c538b0fb98122b67dedf579bd (@mrdoob)
    • Improved webgl_materials_variations_toon example. 062fa1b58bf1024afda8eafdf0e116535a448fd2 (@mrdoob)
    • Improved webgl_instancing_raycast example. b07f3df31972b2b95d426cd6120be25d0f563a64 (@mrdoob)
    • Updated ammo.js. 9e2cea0fd32dfbfb1a023aced06649cb48b6037c (@mrdoob)
    • Removed physics_cannon_instancing. 23f40de1c6c705b98aae8890c732816cdb5c3c78 (@mrdoob)
    • Added onWindowResize() to css2d_label example. #20175 (@WestLangley)
    • Added webxr_vr_haptics example. #20000 (@fernandojsg)
    • Added webgl2_volume_cloud example. 4020fd0f74e457e012a1cc73e5ab1fbf6d2eb137 (@mrdoob)
    • Fixed controls in webgl_materials_modified example. #20162 (@gsimone)
    • Adds EventDispatcher and change event to DeviceOrientationControls and FlyControls. #19924 (@gsimone)
    • Fix controls in webgl_decals example. 2b477f0cca8463a4b7f81eeecf9fe53f54877b91 (@mrdoob)
    • Fix controls in webgl_multiple_scenes_comparison. #20223 (@Mugen87)

    • AmmoPhysics

      • Added new class. 471e038e42c3e2b0e9711182016100f45222a8ae, 711d71145382c0aa49b78701bd959d91593041a9, 6f5a9d8c4c279939ffab48efbefe18b08d6bd03b, a9f9539ec6c1f6a848f99828c9e3677154d69236 (@mrdoob)
    • ColladaExporter

      • Fix runtime error when processing ImageBitmap. #20049 (@Mugen87)
    • EXRLoader

      • Skip unknown header attributes. #20108 (@sciecode)
      • Added PXR24 compression support. #20112, #20127 (@sciecode)
    • FlyControls

      • Removed unnecessary computation. #20186 (@WestLangley)
    • GLTFLoader

      • Set .format=RGBFormat only when there is no alpha channel. #18843 (@donmccurdy)
      • Fix regression unnecessarily choosing MeshPhysicalMaterial. #20053 (@donmccurdy)
    • KTX2Loader

      • Fix loading of non-square textures. #20128 (@zeux)
    • MMDLoader

      • Removed shininess and specular. 4c6879aa668a9f7aa7a89eb461aec24028290cd8 (@mrdoob)
    • NodeMaterial

      • Do not access materialProperties. #20126 (@Mugen87)
    • OrbitControls

      • Implement Pointer Events. #20161, f7455b8676baf308cc520c07509a5f0a460be361 (@mrdoob)
    • Rhino3dmLoader

      • Added new loader. #20047, #20179 (@fraguada)
    • TGALoader

      • Fixed flipped textures when using OffscreenCanvas. #20160 (@Mugen87)
    • TrackballControls

      • Implement Pointer Events. f86fcc092aa8459e7b78b3244e02df923f2d4753, 9dca82449609a5e80d76c3088e6264c67010fa50 (@mrdoob)
    • TransformControls

      • Implement Pointer Events. 10c9e410ec4c7671ad325c12a2a84c3493943c32 (@mrdoob)

    Editor

    • Improved Chinese localization. #20103 (@linbingquan)
    • Added Slot to string.js. #20104 (@linbingquan)
    • Added 3dm import. #20148 (@fraguada)
    • Removed Minify Shaders option. 64f316202d9bc6812c57a7feb8fb8ab610dcd5d3 (@mrdoob)
    • Fixed grid colors in dark mode. 14f4ae16fdb3aa2f997479839314792310ab0242 (@mrdoob)
    • Implemented Pointer Events in EditorControls. e55b718359414dd556e9b5c8f293a7df66f4f06a, 675e99094614a46d14d7c8ab4fdabfd487caa247 (@mrdoob)
    • Remove usage of glslprep from Script.js. #20201 (@Mugen87)
    • Do not enforce sRGB color space for DataTexture. #20214 (@Mugen87)

    Tests

    • Minor cleanup of E2E setup. #20125 (@munrocket)
    Source code(tar.gz)
    Source code(zip)
  • r119(Jul 30, 2020)

    https://github.com/mrdoob/three.js/wiki/Migration-Guide#r118--r119 https://github.com/mrdoob/three.js/milestone/32?closed=1

    (630,548 KB, gzip: 156,930 KB)

    Source

    • Global
      • Clean up. #19737, #19910, #19929 (@theundebruijn, @linbingquan, @Mugen87)
      • Add missing /* glsl */ string template. #19751 (@yushijinhun)
      • Remove author comments. #19948, #19953, #19952, 4944e56c06ed284abe11b7654348fb1ea3ac04d4 (@Mugen87, @mrdoob)
    • Box3Helper
      • Allow 0x000000 as color value. #19760 (@WestLangley)
    • CatmullRomCurve3
      • Ensure zero is valid argument for tension. #19762 (@dskeithbuck)
    • Helpers
      • Simplify copy() and clone(). #19921 (@Mugen87)
    • InterleavedBufferAttribute
      • Introduce needsUpdate. #19864 (@Mugen87)
    • Loader
      • Pass requestHeader to internal file loaders. #19899 (@Mugen87)
    • MaterialLoader
      • Added missing transmission check. #19818, #19860 (@lokiiarora)
    • MathUtils
      • Added seededRandom() method. #16655, #19848 (@WestLangley, @Mugen87)
    • MeshPhysicalMaterial
      • Rename transparency to transmission. Add transmissionMap. #19690, #19868, #19869 (@donmccurdy, @WestLangley)
    • Object3D
      • Copy rotation.order. #19789 (@luisfonsivevo)
    • PMREMGenerator
      • Fixes alpha component for LDR outputs. #19765 (@sciecode)
      • Clean up. #19773 (@WestLangley)
    • Quaternion
      • Added .identity(). #19806 (@WestLangley)
    • Spherical
      • Converted to ES6 class. #19935 (@mrdoob)
    • Vector3
      • Handle undefined z in set(). #19893 (@mrdoob)
    • VideoTexture
      • Make use of requestVideoFrameCallback(). #19906 (@Mugen87, @greggman, @mrdoob)
    • WebGLBindingStates
      • Correct vertexAttribIPointer() call. #19862 (@Mugen87)
    • WebGLCubeRenderTarget
      • Retain filter settings. #19795 (@WestLangley)
      • Default to RGBA format in .fromEquirectangularTexture(). #19931 (@WestLangley)
    • WebGLExtensions
      • Add .has( name ) method. #19756 (@donmccurdy)
    • WebGLInfo
      • Clean up. a2095315aaf19bb57863298869c19e267cf899b2 (@mrdoob)
    • WebGLMaterials
      • Avoid undefined as maxMipLevel uniform value. #19882 (@Mugen87)
    • WebGLProgram
      • Support cube uv refraction mapping. #19623 (@sciecode)
      • Removed GLSL version check code. #19889, b05b4b9a0606040743e4bb854e67e6b88628c584 (@mrdoob)
      • Don't pass Material.name to shader. #19894 (@mrdoob)
    • WebGLPrograms
      • Improve performance of getParameters(). #19673, #19966 (@Mugen87)
    • WebGLRenderer
      • Removes legacy constants. #19813 (@nzjony)
      • Remove program reference from materials. #19839 (@Mugen87)
    • WebGLShadowMap
      • Disable stencil buffer. #19927 (@WestLangley)
    • WebXRManager
      • Add experimental Hand Input API support. #19922, #19936, #19939, 87827c4712e202669544f64fdd081a915f45e7e8, b5b79e1d61300b173820ddd988c5e5c255eb051c, 4e0e65fc6411e023dba5fe24b72ca50e65e353b5, 7cb0a77f29fc4fd9e11485a235b82b27d7d8a31e, 2f741c0afe31e08215d8104da88f3d6c2a251abd, 885102702138915a2f283023618c763125a3a26a (@fernandojsg, @mrdoob)

    Documentation

    • Added .js extension to path of GLTFLoader. #19767 (@parke)
    • Add Import maps section to Installation page. #19746 (@donmccurdy)
    • Update CurvePath.getCurveLengths(). #19788 (@aconz2)
    • Fixed typo in GLTFLoader. #19819 (@markstrefford)
    • Remove fog property from SpriteMaterial page. #19834 (@luisfonsivevo)
    • Update list of extensions in GLTFLoader page. #19858 (@donmccurdy)
    • Fixed wrong file paths in ConvexHull page. #19873 (@felixmariotto)
    • Improve OrbitControls page. #19925 (@WestLangley)

    TypeScript

    • Added missing transmission property to MeshPhysicalMaterial. #19783 (@ManishJu)
    • Fixed GridHelper types. #19870 (@ycw)
    • Generalize NodeMaterial vertex/fragment types. #19897 (@martinRenou)
    • Add Node Flow interface. #19896 (@martinRenou)
    • Add type declaration file for KTX2Loader. #19915 (@Mugen87)
    • Missing property in NodeBuilder requires type definition. #19895 (@martinRenou)

    Examples

    • Clean up. #19777, #19829, #19867, #19913, #19942, cf85519ecafb229daed294c49f3fab4c8e088958 (@linbingquan, @Mugen87, @mrdoob)
    • Fix webgl_materials_video_webcam example for iOS. #19750 (@munrocket)
    • Update Zlib, introduces Deflate. #19748 (@sciecode)
    • Set flipY to false in webgl_buffergeometry_instancing_interleaved example. #19794 (@WestLangley)
    • Fix link in modules warning. #19812 (@Mugen87)
    • Fix controls in webgl_loader_md2_control example. #19825 (@Mugen87)
    • Update link to paper in Sky.js. #19823 (@jsantell)
    • Added toggle for thumbnails. #19881, f60dc5b3c9ec57bbd4455c57c0b2ac689fc7e9f0, e5a6f370b93504bfccb4952a6007c2d393e8574f, d9dc3d083fbbf2d2eed4f1074b48b506d0572efd (@ajflores1604, @mrdoob)
    • Avoid NaN values in data textures in webgl_gpgpu_birds_gltf example. #19885 (@Mugen87)
    • Remove broken text geometries in webgl_camera_logarithmicdepthbuffer example. #19884 (@Mugen87)
    • Trim search terms. #19887 (@Mugen87)
    • Fix NaN value in first frame in webgl_shader example. #19875, 56382ed5ced21ff8107d4b54eacce4678339cb4f (@greggman, @mrdoob)
    • Improve webgl_loader_3mf example. #19920 (@Mugen87)
    • Fix GPGPU examples for iPadOS Safari. #19944, 9006b8320b2fc62922ea231918153504fada1ce4 (@jonobr1, @mrdoob)
    • Removed webgl2_sandbox example. db276bf10914c99c17746ed7dbad0981c512e882 (@mrdoob)
    • Improvements to minimal list mode. 688117aa7ff0841b2f6185c84b79262ba5d7be14 (@mrdoob)
    • Added webgl2_volume_perlin example. #19954 (@mrdoob)

    • 3MFLoader

      • Fix parsing of vertex colors. #19852 (@Mugen87)
    • EXRLoader

      • Fix flipped unsigned byte texture. #19801 (@sciecode)
    • FBXLoader

      • Add version check for binary files. #19886 (@Mugen87)
      • Add check before parsing UVs. #19898 (@johnmarinelli)
    • GLTFLoader

      • Clone reused light and camera instances. #19799 (@donmccurdy)
      • Implement KHR_texture_basisu support. #19791 (@zeux)
    • KTX2Loader

      • Added new loader. #18490 (@donmccurdy)
      • Cache loaded module promise. #19796 (@zeux)
      • Fix transcode target choices for UASTC on iOS. Add BC7. #19846 (@donmccurdy)
      • Fix UASTC to BC7 target format selection. #19916 (@lexaknyazev)
      • Rebuild basis transcoder. #19933 (@donmccurdy)
      • Add ZSTDDecoder and ZSTD support. #19932 (@donmccurdy)
    • LineSegmentsGeometry

      • Make use of InterleavedBufferAttribute.needsUpdate. #19890 (@WestLangley)
    • NodeMaterial

      • Implement Node.getHash() and Material.customProgramCacheKey(). #19833 (@sunag)
      • Clean up. #19842 (@Mugen87)
      • Introduce BasicNodeMaterial. #19909 (@martinRenou)
    • SVGRenderer

      • Add getSize(). #19802 (@Mugen87)
    • VolumeShader

      • Use built-in GLSL inverse(). 0864100137db06047bbeb2869754e4911c8e4646 (@mrdoob)
    • VOXLoader

      • Added new loader. #19946, 804a16607746a35d3e2d6fa4ce5e30dfb463fdbd (@mrdoob)

    Editor

    • Add view helper. #19769, #19785, 8bea5b8cc00240b404f97a847aa30ea84ad2685b, f7b4210a1d7821e54902f57812167a0129ff174c, 0fb397b4451c784f178ab528debf06b353652b22 (@Mugen87, @mrdoob)
    • Introduce animated view presets. #19774 (@Mugen87)
    • Make use of TGALoader. #19790 (@troy351)
    • Refactor usage of default camera. #19820 (@Mugen87)
    • Don't overwrite editor camera in Viewport. #19826 (@Mugen87)
    • Only process files (not strings) during drag'n'drop. #19831 (@Mugen87)
    • Avoid runtime error in outliner. #19835 (@Mugen87)
    • Make loadFile() in UITexture work correctly. #19838 (@troy351)
    • Add option for toggle rendering of helpers. #19849 (@Mugen87)
    • Improve Chinese translation. #19859, #19857 (@linbingquan, @washstar)
    • Add missing DRACOLoader for zipped glTF assets. #19930 (@Mugen87)
    • sw.js clean up. a23f432d45b5d19063607d3d87e91e606f3b072c (@mrdoob)
    • Allow negative scales. ce9863b12dff847d86bad4a2fc8e59f47ed78e87 (@mrdoob)
    • Removed scale lock. 62dadd62433e23e2408a6dccc89d1efd1798292f (@mrdoob)

    Tests

    • Add tests for WebGLRenderLists and WebGLRenderList. #19346 (@gkjohnson)
    Source code(tar.gz)
    Source code(zip)
Javascript Canvas Library, SVG-to-Canvas (& canvas-to-SVG) Parser

Fabric.js Fabric.js is a framework that makes it easy to work with HTML5 canvas element. It is an interactive object model on top of canvas element. I

Fabric.js 23.6k Jan 3, 2023
The JavaScript library for modern SVG graphics.

Snap.svg · A JavaScript SVG library for the modern web. Learn more at snapsvg.io. Follow us on Twitter. Install Bower - bower install snap.svg npm - n

Adobe Web Platform 13.6k Dec 30, 2022
JavaScript Vector Library

Raphaël: Cross-browser vector graphics the easy way Visit the library website for more information: http://raphaeljs.com https://dmitrybaranovskiy.git

Dmitry Baranovskiy 11.2k Jan 3, 2023
A JavaScript library dedicated to graph drawing

sigma.js - v1.2.1 Sigma is a JavaScript library dedicated to graph drawing, mainly developed by @jacomyal and @Yomguithereal. Resources The website pr

Alexis Jacomy 10.3k Jan 3, 2023
JavaScript diagramming library for interactive flowcharts, org charts, design tools, planning tools, visual languages.

GoJS, a JavaScript Library for HTML Diagrams GoJS is a JavaScript and TypeScript library for creating and manipulating diagrams, charts, and graphs. S

Northwoods Software Corporation 6.6k Dec 30, 2022
mxGraph is a fully client side JavaScript diagramming library

NOTE 09.11.2020 : Development on mxGraph has now stopped, this repo is effectively end of life. Known forks: https://github.com/jsGraph/mxgraph https:

JGraph 6.5k Dec 30, 2022
🔥 JavaScript Library for HTML5 canvas based heatmaps

heatmap.js Dynamic Heatmaps for the Web. How to get started The fastest way to get started is to install heatmap.js with bower. Just run the following

Patrick Wied 5.9k Jan 2, 2023
Cubism.js: A JavaScript library for time series visualization.

Cubism.js Cubism.js is a D3 plugin for visualizing time series. Use Cubism to construct better realtime dashboards, pulling data from Graphite, Cube a

Square 4.9k Jan 3, 2023
A javascript library that extends D3.js to enable fast and beautiful visualizations.

d3plus D3plus is a JavaScript re-usable chart library that extends the popular D3.js to enable the easy creation of beautiful visualizations. Installi

D3plus 1.6k Dec 2, 2022
A plugin for the jQuery javascript library to generate small sparkline charts directly in the browser

jQuery Sparklines This jQuery plugin makes it easy to generate a number of different types of sparklines directly in the browser, using online a line

Gareth Watts 1.2k Jan 4, 2023
Ember Charts 3.5 2.3 L2 JavaScript A powerful and easy to use charting library for Ember.js

Ember Charts A charting library built with the Ember.js and d3.js frameworks. It includes time series, bar, pie, and scatter charts which are easy to

Addepar 793 Dec 7, 2022
A lightweight JavaScript graphics library with the intuitive API, based on SVG/VML technology.

GraphicsJS GraphicsJS is a lightweight JavaScript graphics library with the intuitive API, based on SVG/VML technology. Overview Quick Start Articles

AnyChart 973 Jan 3, 2023
Simple yet powerful JavaScript Charting library built using d3.js

uvCharts Simple, robust, extensible JavaScript charting library built using d3 designed to help developers embed, build charts in less than couple of

Imaginea 267 May 20, 2021
Reusable JavaScript library for creating sketchy/hand-drawn styled charts in the browser.

roughViz.js is a reusable JavaScript library for creating sketchy/hand-drawn styled charts in the browser, based on D3v5, roughjs, and handy. Why? Use

Jared Wilber 6.4k Jan 4, 2023
:bar_chart: Re-usable, easy interface JavaScript chart library based on D3.js

billboard.js is a re-usable, easy interface JavaScript chart library, based on D3 v4+. The name "billboard" comes from the famous billboard chart whic

NAVER 5.4k Jan 1, 2023
danfo.js is an open source, JavaScript library providing high performance, intuitive, and easy to use data structures for manipulating and processing structured data.

Danfojs: powerful javascript data analysis toolkit What is it? Danfo.js is a javascript package that provides fast, flexible, and expressive data stru

JSdata 4k Dec 29, 2022
React + Canvas = Love. JavaScript library for drawing complex canvas graphics using React.

React Konva React Konva is a JavaScript library for drawing complex canvas graphics using React. It provides declarative and reactive bindings to the

konva 4.9k Jan 9, 2023
Barcode generation library written in JavaScript that works in both the browser and on Node.js

Introduction JsBarcode is a barcode generator written in JavaScript. It supports multiple barcode formats and works in browsers and with Node.js. It h

Johan Lindell 4.7k Dec 30, 2022
This JavaScript library produces complementary gradients generated from the top 2 dominant colours in supplied images.

Grade Demo Check it out Install Download this repo and grab the grade.js file from the /docs/dist folder. Or install from npm: npm install grade-js Us

Ben Howdle 3.7k Jan 2, 2023