@@ -20,24 +20,26 @@ function WebGLCubeUVMaps( renderer ) {
2020
2121 if ( isEquirectMap || isCubeMap ) {
2222
23- if ( texture . isRenderTargetTexture && texture . needsPMREMUpdate === true ) {
23+ let renderTarget = cubeUVmaps . get ( texture ) ;
2424
25- texture . needsPMREMUpdate = false ;
25+ const currentPMREMVersion = renderTarget !== undefined ? renderTarget . texture . pmremVersion : 0 ;
2626
27- let renderTarget = cubeUVmaps . get ( texture ) ;
27+ if ( texture . isRenderTargetTexture && texture . pmremVersion !== currentPMREMVersion ) {
2828
2929 if ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator ( renderer ) ;
3030
3131 renderTarget = isEquirectMap ? pmremGenerator . fromEquirectangular ( texture , renderTarget ) : pmremGenerator . fromCubemap ( texture , renderTarget ) ;
32+ renderTarget . texture . pmremVersion = texture . pmremVersion ;
33+
3234 cubeUVmaps . set ( texture , renderTarget ) ;
3335
3436 return renderTarget . texture ;
3537
3638 } else {
3739
38- if ( cubeUVmaps . has ( texture ) ) {
40+ if ( renderTarget !== undefined ) {
3941
40- return cubeUVmaps . get ( texture ) . texture ;
42+ return renderTarget . texture ;
4143
4244 } else {
4345
@@ -47,7 +49,9 @@ function WebGLCubeUVMaps( renderer ) {
4749
4850 if ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator ( renderer ) ;
4951
50- const renderTarget = isEquirectMap ? pmremGenerator . fromEquirectangular ( texture ) : pmremGenerator . fromCubemap ( texture ) ;
52+ renderTarget = isEquirectMap ? pmremGenerator . fromEquirectangular ( texture ) : pmremGenerator . fromCubemap ( texture ) ;
53+ renderTarget . texture . pmremVersion = texture . pmremVersion ;
54+
5155 cubeUVmaps . set ( texture , renderTarget ) ;
5256
5357 texture . addEventListener ( 'dispose' , onTextureDispose ) ;
0 commit comments