Преглед на файлове

Update skeleton only once in a frame

Takahiro преди 6 години
родител
ревизия
58bd51ef36
променени са 2 файла, в които са добавени 10 реда и са изтрити 1 реда
  1. 2 0
      src/objects/Skeleton.js
  2. 8 1
      src/renderers/WebGLRenderer.js

+ 2 - 0
src/objects/Skeleton.js

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

+ 8 - 1
src/renderers/WebGLRenderer.js

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