提交 e043959e 编写于 作者: L Lewy Blue

merge dev

此差异已折叠。
......@@ -243,7 +243,7 @@ THREE.GLTFLoader = ( function () {
*/
function GLTFTextureDDSExtension() {
if (!THREE.DDSLoader) {
if ( ! THREE.DDSLoader ) {
throw new Error( 'THREE.GLTFLoader: Attempting to load .dds texture without importing THREE.DDSLoader' );
......@@ -1906,6 +1906,7 @@ THREE.GLTFLoader = ( function () {
if ( textureDef.name !== undefined ) texture.name = textureDef.name;
// .format of dds texture is set in DDSLoader
if ( ! textureExtensions[ EXTENSIONS.MSFT_TEXTURE_DDS ] ) {
texture.format = textureDef.format !== undefined ? WEBGL_TEXTURE_FORMATS[ textureDef.format ] : THREE.RGBAFormat;
......
......@@ -44,7 +44,7 @@
function init() {
renderer = new THREE.WebGLRenderer();
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
......@@ -67,7 +67,7 @@
texture.mapping = THREE.UVMapping;
texture.anisotropy = renderer.capabilities.getMaxAnisotropy();
var geometry = new THREE.BoxGeometry( 200, 200, 200 );
var geometry = new THREE.BoxBufferGeometry( 200, 200, 200 );
var material = new THREE.MeshLambertMaterial( { map: texture } );
control = new THREE.TransformControls( camera, renderer.domElement );
......@@ -153,8 +153,7 @@
];
new Timeliner(
new THREE.TimelinerController( scene, trackInfo, render ) );
new Timeliner( new THREE.TimelinerController( scene, trackInfo, render ) );
}
......
......@@ -30,8 +30,6 @@
</head>
<body>
<div id="container"></div>
<div id="info">
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - animation - groups
</div>
......@@ -54,8 +52,6 @@
scene = new THREE.Scene();
var container = document.getElementById( 'container' );
//
camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 1000 );
......@@ -113,15 +109,15 @@
//
renderer = new THREE.WebGLRenderer();
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
container.appendChild( renderer.domElement );
document.body.appendChild( renderer.domElement );
//
stats = new Stats();
container.appendChild( stats.dom );
document.body.appendChild( stats.dom );
//
......
......@@ -30,8 +30,6 @@
</head>
<body>
<div id="container"></div>
<div id="info">
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - animation - basic use
</div>
......@@ -54,8 +52,6 @@
scene = new THREE.Scene();
var container = document.getElementById( 'container' );
//
camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 1000 );
......@@ -113,15 +109,15 @@
//
renderer = new THREE.WebGLRenderer();
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
container.appendChild( renderer.domElement );
document.body.appendChild( renderer.domElement );
//
stats = new Stats();
container.appendChild( stats.dom );
document.body.appendChild( stats.dom );
//
......
......@@ -29,8 +29,6 @@
</head>
<body>
<div id="container"></div>
<div id="info">
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> - equirectangular panorama demo with DeviceOrientation controls.
photo by <a href="http://www.flickr.com/photos/jonragnarsson/2294472375/" target="_blank" rel="noopener">Jón Ragnarsson</a>.
......@@ -41,15 +39,13 @@
<script>
var container, camera, scene, renderer, controls;
var camera, scene, renderer, controls;
init();
animate();
function init() {
container = document.getElementById( 'container' );
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 1100 );
controls = new THREE.DeviceOrientationControls( camera );
......@@ -74,10 +70,10 @@
//
renderer = new THREE.WebGLRenderer();
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
container.appendChild( renderer.domElement );
document.body.appendChild( renderer.domElement );
//
......
......@@ -72,8 +72,7 @@
var SCREEN_HEIGHT = window.innerHeight - MARGIN * 2;
var SCREEN_WIDTH = window.innerWidth;
var container, stats;
var camera, controls, scene, renderer;
var camera, controls, scene, renderer, stats;
var geometry, meshPlanet, meshClouds, meshMoon;
var dirLight, pointLight, ambientLight;
......@@ -90,23 +89,12 @@
function init() {
container = document.createElement( 'div' );
document.body.appendChild( container );
camera = new THREE.PerspectiveCamera( 25, SCREEN_WIDTH / SCREEN_HEIGHT, 50, 1e7 );
camera.position.z = radius * 5;
scene = new THREE.Scene();
scene.fog = new THREE.FogExp2( 0x000000, 0.00000025 );
controls = new THREE.FlyControls( camera );
controls.movementSpeed = 1000;
controls.domElement = container;
controls.rollSpeed = Math.PI / 24;
controls.autoForward = false;
controls.dragToLook = false;
dirLight = new THREE.DirectionalLight( 0xffffff );
dirLight.position.set( -1, 0, 1 ).normalize();
scene.add( dirLight );
......@@ -124,7 +112,7 @@
// planet
geometry = new THREE.SphereGeometry( radius, 100, 50 );
geometry = new THREE.SphereBufferGeometry( radius, 100, 50 );
meshPlanet = new THREE.Mesh( geometry, materialNormalMap );
meshPlanet.rotation.y = 0;
......@@ -160,32 +148,38 @@
// stars
var i, r = radius, starsGeometry = [ new THREE.Geometry(), new THREE.Geometry() ];
var i, r = radius, starsGeometry = [ new THREE.BufferGeometry(), new THREE.BufferGeometry() ];
var vertices1 = [];
var vertices2 = [];
var vertex = new THREE.Vector3();
for ( i = 0; i < 250; i ++ ) {
var vertex = new THREE.Vector3();
vertex.x = Math.random() * 2 - 1;
vertex.y = Math.random() * 2 - 1;
vertex.z = Math.random() * 2 - 1;
vertex.multiplyScalar( r );
starsGeometry[ 0 ].vertices.push( vertex );
vertices1.push( vertex.x, vertex.y, vertex.z );
}
for ( i = 0; i < 1500; i ++ ) {
var vertex = new THREE.Vector3();
vertex.x = Math.random() * 2 - 1;
vertex.y = Math.random() * 2 - 1;
vertex.z = Math.random() * 2 - 1;
vertex.multiplyScalar( r );
starsGeometry[ 1 ].vertices.push( vertex );
vertices2.push( vertex.x, vertex.y, vertex.z );
}
starsGeometry[ 0 ].addAttribute( 'position', new THREE.Float32BufferAttribute( vertices1, 3 ) );
starsGeometry[ 1 ].addAttribute( 'position', new THREE.Float32BufferAttribute( vertices2, 3 ) );
var stars;
var starsMaterials = [
new THREE.PointsMaterial( { color: 0x555555, size: 2, sizeAttenuation: false } ),
......@@ -212,14 +206,25 @@
}
renderer = new THREE.WebGLRenderer();
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( SCREEN_WIDTH, SCREEN_HEIGHT );
document.body.appendChild( renderer.domElement );
//
controls = new THREE.FlyControls( camera );
controls.movementSpeed = 1000;
controls.domElement = renderer.domElement;
controls.rollSpeed = Math.PI / 24;
controls.autoForward = false;
controls.dragToLook = false;
container.appendChild( renderer.domElement );
//
stats = new Stats();
container.appendChild( stats.dom );
document.body.appendChild( stats.dom );
window.addEventListener( 'resize', onWindowResize, false );
......
......@@ -32,7 +32,6 @@
</head>
<body>
<div id="container"></div>
<div id="info">
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> - orbit controls example
</div>
......@@ -57,12 +56,10 @@
scene.background = new THREE.Color( 0xcccccc );
scene.fog = new THREE.FogExp2( 0xcccccc, 0.002 );
renderer = new THREE.WebGLRenderer();
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
var container = document.getElementById( 'container' );
container.appendChild( renderer.domElement );
document.body.appendChild( renderer.domElement );
camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 1000 );
camera.position.set( 400, 200, 0 );
......@@ -85,7 +82,7 @@
// world
var geometry = new THREE.CylinderGeometry( 0, 10, 30, 4, 1 );
var geometry = new THREE.CylinderBufferGeometry( 0, 10, 30, 4, 1 );
var material = new THREE.MeshPhongMaterial( { color: 0xffffff, flatShading: true } );
for ( var i = 0; i < 500; i ++ ) {
......
......@@ -143,9 +143,6 @@
}
init();
animate();
var controlsEnabled = false;
var moveForward = false;
......@@ -157,6 +154,11 @@
var prevTime = performance.now();
var velocity = new THREE.Vector3();
var direction = new THREE.Vector3();
var vertex = new THREE.Vector3();
var color = new THREE.Color();
init();
animate();
function init() {
......@@ -240,27 +242,39 @@
// floor
var floorGeometry = new THREE.PlaneGeometry( 2000, 2000, 100, 100 );
var floorGeometry = new THREE.PlaneBufferGeometry( 2000, 2000, 100, 100 );
floorGeometry.rotateX( - Math.PI / 2 );
for ( var i = 0, l = floorGeometry.vertices.length; i < l; i ++ ) {
// vertex displacement
var position = floorGeometry.attributes.position;
for ( var i = 0; i < position.count; i ++ ) {
vertex.fromBufferAttribute( position, i );
var vertex = floorGeometry.vertices[ i ];
vertex.x += Math.random() * 20 - 10;
vertex.y += Math.random() * 2;
vertex.z += Math.random() * 20 - 10;
position.setXYZ( i, vertex.x, vertex.y, vertex.z );
}
for ( var i = 0, l = floorGeometry.faces.length; i < l; i ++ ) {
floorGeometry = floorGeometry.toNonIndexed(); // ensure each face has unique vertices
count = floorGeometry.attributes.position.count;
var colors = [];
for ( var i = 0; i < count; i ++ ) {
var face = floorGeometry.faces[ i ];
face.vertexColors[ 0 ] = new THREE.Color().setHSL( Math.random() * 0.3 + 0.5, 0.75, Math.random() * 0.25 + 0.75 );
face.vertexColors[ 1 ] = new THREE.Color().setHSL( Math.random() * 0.3 + 0.5, 0.75, Math.random() * 0.25 + 0.75 );
face.vertexColors[ 2 ] = new THREE.Color().setHSL( Math.random() * 0.3 + 0.5, 0.75, Math.random() * 0.25 + 0.75 );
color.setHSL( Math.random() * 0.3 + 0.5, 0.75, Math.random() * 0.25 + 0.75 );
colors.push( color.r, color.g, color.b );
}
floorGeometry.addAttribute( 'color', new THREE.Float32BufferAttribute( colors, 3 ) );
var floorMaterial = new THREE.MeshBasicMaterial( { vertexColors: THREE.VertexColors } );
var floor = new THREE.Mesh( floorGeometry, floorMaterial );
......@@ -268,17 +282,21 @@
// objects
var boxGeometry = new THREE.BoxGeometry( 20, 20, 20 );
var boxGeometry = new THREE.BoxBufferGeometry( 20, 20, 20 );
boxGeometry = boxGeometry.toNonIndexed(); // ensure each face has unique vertices
count = boxGeometry.attributes.position.count;
colors = [];
for ( var i = 0, l = boxGeometry.faces.length; i < l; i ++ ) {
for ( var i = 0; i < count; i ++ ) {
var face = boxGeometry.faces[ i ];
face.vertexColors[ 0 ] = new THREE.Color().setHSL( Math.random() * 0.3 + 0.5, 0.75, Math.random() * 0.25 + 0.75 );
face.vertexColors[ 1 ] = new THREE.Color().setHSL( Math.random() * 0.3 + 0.5, 0.75, Math.random() * 0.25 + 0.75 );
face.vertexColors[ 2 ] = new THREE.Color().setHSL( Math.random() * 0.3 + 0.5, 0.75, Math.random() * 0.25 + 0.75 );
color.setHSL( Math.random() * 0.3 + 0.5, 0.75, Math.random() * 0.25 + 0.75 );
colors.push( color.r, color.g, color.b );
}
boxGeometry.addAttribute( 'color', new THREE.Float32BufferAttribute( colors, 3 ) );
for ( var i = 0; i < 500; i ++ ) {
var boxMaterial = new THREE.MeshPhongMaterial( { specular: 0xffffff, flatShading: true, vertexColors: THREE.VertexColors } );
......@@ -296,7 +314,7 @@
//
renderer = new THREE.WebGLRenderer();
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
......
......@@ -32,7 +32,6 @@
</head>
<body>
<div id="container"></div>
<div id="info">
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> - trackball controls example<br />
MOVE mouse &amp; press LEFT/A: rotate, MIDDLE/S: zoom, RIGHT/D: pan
......@@ -49,11 +48,7 @@
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
var container, stats;
var camera, controls, scene, renderer;
var cross;
var camera, controls, scene, renderer, stats;
init();
animate();
......@@ -85,7 +80,7 @@
scene.background = new THREE.Color( 0xcccccc );
scene.fog = new THREE.FogExp2( 0xcccccc, 0.002 );
var geometry = new THREE.CylinderGeometry( 0, 10, 30, 4, 1 );
var geometry = new THREE.CylinderBufferGeometry( 0, 10, 30, 4, 1 );
var material = new THREE.MeshPhongMaterial( { color: 0xffffff, flatShading: true } );
for ( var i = 0; i < 500; i ++ ) {
......@@ -117,15 +112,13 @@
// renderer
renderer = new THREE.WebGLRenderer();
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
container = document.getElementById( 'container' );
container.appendChild( renderer.domElement );
document.body.appendChild( renderer.domElement );
stats = new Stats();
container.appendChild( stats.dom );
document.body.appendChild( stats.dom );
//
......
......@@ -64,7 +64,7 @@
texture.mapping = THREE.UVMapping;
texture.anisotropy = renderer.capabilities.getMaxAnisotropy();
var geometry = new THREE.BoxGeometry( 200, 200, 200 );
var geometry = new THREE.BoxBufferGeometry( 200, 200, 200 );
var material = new THREE.MeshLambertMaterial( { map: texture } );
control = new THREE.TransformControls( camera, renderer.domElement );
......
......@@ -29,7 +29,6 @@
</head>
<body>
<div id="container"></div>
<div id="info"><a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> - platformer demo. cubemap by <a href="http://www.zfight.com/" target="_blank" rel="noopener">Jochum Skoglund</a>.<br />Use arrow keys to look around, WASD to move and SPACE to jump.</div>
<script src="../build/three.js"></script>
......@@ -217,22 +216,6 @@
// init 3D stuff
function makeSkybox( urls, size ) {
var skyboxCubemap = new THREE.CubeTextureLoader().load( urls );
skyboxCubemap.format = THREE.RGBFormat;
var skyboxShader = THREE.ShaderLib['cube'];
skyboxShader.uniforms['tCube'].value = skyboxCubemap;
return new THREE.Mesh(
new THREE.BoxGeometry( size, size, size ),
new THREE.ShaderMaterial({
fragmentShader : skyboxShader.fragmentShader, vertexShader : skyboxShader.vertexShader,
uniforms : skyboxShader.uniforms, depthWrite : false, side : THREE.BackSide
})
);
}
function makePlatform( jsonUrl, textureUrl, textureQuality ) {
var placeholder = new THREE.Object3D();
......@@ -255,23 +238,25 @@
return placeholder;
}
var renderer = new THREE.WebGLRenderer({ antialias : true });
var renderer = new THREE.WebGLRenderer( { antialias : true } );
renderer.setPixelRatio( window.devicePixelRatio );
document.body.appendChild( renderer.domElement );
var camera = new THREE.PerspectiveCamera( 60, 1, 0.1, 9000 );
var scene = new THREE.Scene();
scene.add( camera );
scene.add( makeSkybox( [
var envMap = new THREE.CubeTextureLoader().load( [
'textures/cube/skybox/px.jpg', // right
'textures/cube/skybox/nx.jpg', // left
'textures/cube/skybox/py.jpg', // top
'textures/cube/skybox/ny.jpg', // bottom
'textures/cube/skybox/pz.jpg', // back
'textures/cube/skybox/nz.jpg' // front
], 8000 ));
] );
envMap.format = THREE.RGBFormat;
scene.background = envMap;
scene.add( makePlatform(
'models/platform/platform.json',
......@@ -320,8 +305,6 @@
width: window.innerWidth, height: window.innerHeight
}};
document.getElementById( 'container' ).appendChild( renderer.domElement );
start( gameLoop, gameViewportSize );
</script>
</body>
......
......@@ -37,9 +37,7 @@
<script>
var container, stats;
var camera, scene, renderer;
var camera, scene, renderer, stats;
var mesh, geometry, sphere;
......@@ -56,19 +54,16 @@
function init() {
container = document.createElement( 'div' );
document.body.appendChild( container );
camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 15000 );
camera.position.z = 3200;
scene = new THREE.Scene();
scene.background = new THREE.Color( 0xffffff );
sphere = new THREE.Mesh( new THREE.SphereGeometry( 100, 20, 20 ), new THREE.MeshNormalMaterial() );
sphere = new THREE.Mesh( new THREE.SphereBufferGeometry( 100, 20, 20 ), new THREE.MeshNormalMaterial() );
scene.add( sphere );
var geometry = new THREE.CylinderGeometry( 0, 10, 100, 12 );
var geometry = new THREE.CylinderBufferGeometry( 0, 10, 100, 12 );
geometry.rotateX( Math.PI / 2 );
var material = new THREE.MeshNormalMaterial();
......@@ -89,10 +84,10 @@
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
container.appendChild( renderer.domElement );
document.body.appendChild( renderer.domElement );
stats = new Stats();
container.appendChild( stats.dom );
document.body.appendChild( stats.dom );
//
......
......@@ -44,7 +44,7 @@
<script src="../build/three.js"></script>
<script src="js/controls/TrackballControls.js"></script>
<script src="js/controls/OrbitControls.js"></script>
<script src="js/loaders/OBJLoader.js"></script>
<script src="js/loaders/RGBELoader.js"></script>
<script src="js/loaders/HDRCubeTextureLoader.js"></script>
......@@ -79,15 +79,6 @@
container = document.createElement( 'div' );
document.body.appendChild( container );
//
camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 0.01, 1000 );
camera.position.z = 2;
controls = new THREE.TrackballControls( camera );
//
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
......@@ -98,57 +89,68 @@
renderer.toneMapping = THREE.ReinhardToneMapping;
renderer.toneMappingExposure = 3;
var textureCube = new THREE.CubeTextureLoader()
.setPath( 'textures/cube/pisa/' )
.load( [ 'px.png', 'nx.png', 'py.png', 'ny.png', 'pz.png', 'nz.png' ] );
//
scene = new THREE.Scene();
scene.background = textureCube;
// LIGHTS
camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 0.01, 1000 );
camera.position.z = 2;
controls = new THREE.OrbitControls( camera, renderer.domElement );
//
scene.add( new THREE.HemisphereLight( 0x443333, 0x222233, 4 ) );
//
var path = 'models/obj/cerberus/';
new THREE.CubeTextureLoader()
.setPath( 'textures/cube/pisa/' )
.load( [ 'px.png', 'nx.png', 'py.png', 'ny.png', 'pz.png', 'nz.png' ], function ( textureCube ) {
scene.background = textureCube;
} );
//
var loader = new THREE.OBJLoader();
var material = new THREE.MeshStandardMaterial();
loader.load( path + 'Cerberus.obj', function ( group ) {
// var material = new THREE.MeshBasicMaterial( { wireframe: true } );
new THREE.OBJLoader()
.setPath( 'models/obj/cerberus/' )
.load( 'Cerberus.obj', function ( group ) {
var loader = new THREE.TextureLoader();
var loader = new THREE.TextureLoader()
.setPath( 'models/obj/cerberus/' );
material.roughness = 1;
material.metalness = 1;
material.roughness = 1; // attenuates roughnessMap
material.metalness = 1; // attenuates metalnessMap
material.map = loader.load( path + 'Cerberus_A.jpg' );
// roughness is in G channel, metalness is in B channel
material.metalnessMap = material.roughnessMap = loader.load( path + 'Cerberus_RM.jpg' );
material.normalMap = loader.load( path + 'Cerberus_N.jpg' );
material.map = loader.load( 'Cerberus_A.jpg' );
// roughness is in G channel, metalness is in B channel
material.metalnessMap = material.roughnessMap = loader.load( 'Cerberus_RM.jpg' );
material.normalMap = loader.load( 'Cerberus_N.jpg' );
material.map.wrapS = THREE.RepeatWrapping;
material.roughnessMap.wrapS = THREE.RepeatWrapping;
material.metalnessMap.wrapS = THREE.RepeatWrapping;
material.normalMap.wrapS = THREE.RepeatWrapping;
material.map.wrapS = THREE.RepeatWrapping;
material.roughnessMap.wrapS = THREE.RepeatWrapping;
material.metalnessMap.wrapS = THREE.RepeatWrapping;
material.normalMap.wrapS = THREE.RepeatWrapping;
group.traverse( function ( child ) {
group.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
if ( child instanceof THREE.Mesh ) {
child.material = material;
child.material = material;
}
}
} );
} );
group.position.x = - 0.45;
group.rotation.y = - Math.PI / 2;
scene.add( group );
group.position.x = - 0.45;
group.rotation.y = - Math.PI / 2;
scene.add( group );
} );
} );
var genCubeUrls = function( prefix, postfix ) {
return [
......@@ -170,7 +172,11 @@
var hdrCubeRenderTarget = pmremCubeUVPacker.CubeUVRenderTarget;
material.envMap = hdrCubeRenderTarget.texture;
material.needsUpdate = true;
material.needsUpdate = true; // is this needed?
hdrCubeMap.dispose();
pmremGenerator.dispose();
pmremCubeUVPacker.dispose();
} );
......@@ -204,8 +210,6 @@
requestAnimationFrame( animate );
controls.update();
renderer.render( scene, camera );
if ( statsEnabled ) stats.update();
......
......@@ -661,6 +661,8 @@ Object3D.prototype = Object.assign( Object.create( EventDispatcher.prototype ),
object.matrix = this.matrix.toArray();
if ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;
//
function serialize( library, element ) {
......
......@@ -795,10 +795,13 @@ Object.assign( ObjectLoader.prototype, {
object.uuid = data.uuid;
if ( data.name !== undefined ) object.name = data.name;
if ( data.matrix !== undefined ) {
object.matrix.fromArray( data.matrix );
object.matrix.decompose( object.position, object.quaternion, object.scale );
if ( data.matrixAutoUpdate !== undefined ) object.matrixAutoUpdate = data.matrixAutoUpdate;
if ( object.matrixAutoUpdate ) object.matrix.decompose( object.position, object.quaternion, object.scale );
} else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册