2
0
Эх сурвалжийг харах

Merge pull request #16613 from takahirox/UpdateSkeletonOnce

Update skeleton only once in a frame
Mr.doob 5 жил өмнө
parent
commit
8d12d49d1f

+ 2 - 0
src/objects/Skeleton.js

@@ -19,6 +19,8 @@ function Skeleton( bones, boneInverses ) {
 	this.bones = bones.slice( 0 );
 	this.bones = bones.slice( 0 );
 	this.boneMatrices = new Float32Array( this.bones.length * 16 );
 	this.boneMatrices = new Float32Array( this.bones.length * 16 );
 
 
+	this.frame = - 1;
+
 	// use the supplied bone inverses or calculate the inverses
 	// use the supplied bone inverses or calculate the inverses
 
 
 	if ( boneInverses === undefined ) {
 	if ( boneInverses === undefined ) {

+ 8 - 1
src/renderers/WebGLRenderer.js

@@ -1322,7 +1322,14 @@ function WebGLRenderer( parameters ) {
 
 
 				if ( object.isSkinnedMesh ) {
 				if ( object.isSkinnedMesh ) {
 
 
-					object.skeleton.update();
+					// update skeleton only once in a frame
+
+					if ( object.skeleton.frame !== info.render.frame ) {
+
+						object.skeleton.update();
+						object.skeleton.frame = info.render.frame;
+
+					}
 
 
 				}
 				}