Browse Source

WebGLBackend: Fix geometry change (#29880)

sunag 1 year ago
parent
commit
d9b1b3ca84
1 changed files with 11 additions and 4 deletions
  1. 11 4
      src/renderers/webgl-fallback/WebGLBackend.js

+ 11 - 4
src/renderers/webgl-fallback/WebGLBackend.js

@@ -166,7 +166,7 @@ class WebGLBackend extends Backend {
 
 	}
 
-	  async resolveTimestampAsync( renderContext, type = 'render' ) {
+	async resolveTimestampAsync( renderContext, type = 'render' ) {
 
 		if ( ! this.disjoint || ! this.trackTimestamp ) return;
 
@@ -664,9 +664,11 @@ class WebGLBackend extends Backend {
 
 		//
 
-		let vaoGPU = renderObject.staticVao;
+		const renderObjectData = this.get( renderObject );
 
-		if ( vaoGPU === undefined ) {
+		let vaoGPU = renderObjectData.staticVao;
+
+		if ( vaoGPU === undefined || renderObjectData.geometryId !== renderObject.geometry.id ) {
 
 			const vaoKey = this._getVaoKey( renderObject.getIndex(), renderObject.getAttributes() );
 
@@ -678,7 +680,12 @@ class WebGLBackend extends Backend {
 
 				( { vaoGPU, staticVao } = this._createVao( renderObject.getIndex(), renderObject.getAttributes() ) );
 
-				if ( staticVao ) renderObject.staticVao = vaoGPU;
+				if ( staticVao ) {
+
+					renderObjectData.staticVao = vaoGPU;
+					renderObjectData.geometryId = renderObject.geometry.id;
+
+				}
 
 			}
 

粤ICP备19079148号