Просмотр исходного кода

RenderObjects: Force update if geometry has changed. (#29807)

* getParallaxCorrectNormal: fix import

* force update if geometry has changed
sunag 1 год назад
Родитель
Сommit
693341461f

+ 1 - 1
src/nodes/functions/material/getParallaxCorrectNormal.js

@@ -1,4 +1,4 @@
-import { positionWorld } from '../../accessors/Position';
+import { positionWorld } from '../../accessors/Position.js';
 import { float, Fn, min, normalize, sub, vec3 } from '../../tsl/TSLBase.js';
 
 // https://devlog-martinsh.blogspot.com/2011/09/box-projected-cube-environment-mapping.html

+ 5 - 2
src/renderers/common/RenderObjects.js

@@ -40,9 +40,12 @@ class RenderObjects {
 
 			renderObject.updateClipping( clippingContext );
 
-			if ( renderObject.version !== material.version || renderObject.needsUpdate ) {
+			// force update if geometry has changed
+			const forceUpdate = renderObject.geometry.id !== renderObject.object.geometry.id;
 
-				if ( renderObject.initialCacheKey !== renderObject.getCacheKey() ) {
+			if ( forceUpdate || renderObject.version !== material.version || renderObject.needsUpdate ) {
+
+				if ( forceUpdate || renderObject.initialCacheKey !== renderObject.getCacheKey() ) {
 
 					renderObject.dispose();
 

粤ICP备19079148号