@@ -26,7 +26,9 @@ function _getPMREMFromTexture( texture ) {
2626
2727 let cacheTexture = _cache . get ( texture ) ;
2828
29- if ( cacheTexture === undefined ) {
29+ const pmremVersion = cacheTexture !== undefined ? cacheTexture . pmremVersion : - 1 ;
30+
31+ if ( pmremVersion !== texture . pmremVersion ) {
3032
3133 if ( texture . isCubeTexture ) {
3234
@@ -36,7 +38,7 @@ function _getPMREMFromTexture( texture ) {
3638
3739 }
3840
39- cacheTexture = _generator . fromCubemap ( texture ) ;
41+ cacheTexture = _generator . fromCubemap ( texture , cacheTexture ) ;
4042
4143 } else {
4244
@@ -46,10 +48,12 @@ function _getPMREMFromTexture( texture ) {
4648
4749 }
4850
49- cacheTexture = _generator . fromEquirectangular ( texture ) ;
51+ cacheTexture = _generator . fromEquirectangular ( texture , cacheTexture ) ;
5052
5153 }
5254
55+ cacheTexture . pmremVersion = texture . pmremVersion ;
56+
5357 _cache . set ( texture , cacheTexture ) ;
5458
5559 }
@@ -104,13 +108,14 @@ class PMREMNode extends TempNode {
104108
105109 }
106110
107- updateBefore ( frame ) {
111+ updateBefore ( ) {
108112
109113 let pmrem = this . _pmrem ;
110114
111- if ( pmrem === null ) {
115+ const pmremVersion = pmrem ? pmrem . pmremVersion : - 1 ;
116+ const texture = this . _value ;
112117
113- const texture = this . _value ;
118+ if ( pmremVersion !== texture . pmremVersion ) {
114119
115120 if ( texture . isPMREMTexture === true ) {
116121
0 commit comments