Skip to content

Commit 05681cb

Browse files
committed
PMREMNode: Added pmremVersion logic
1 parent 7fbe746 commit 05681cb

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

examples/jsm/nodes/pmrem/PMREMNode.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)