|
@@ -1441,8 +1441,7 @@ function WebGLRenderer( parameters ) {
|
|
|
var lights = currentRenderState.state.lights;
|
|
|
var shadowsArray = currentRenderState.state.shadowsArray;
|
|
|
|
|
|
- var lightsHash = materialProperties.lightsHash;
|
|
|
- var lightsStateHash = lights.state.hash;
|
|
|
+ var lightsStateVersion = lights.state.version;
|
|
|
|
|
|
var parameters = programCache.getParameters(
|
|
|
material, lights.state, shadowsArray, fog, _clipping.numPlanes, _clipping.numIntersection, object );
|
|
@@ -1462,11 +1461,9 @@ function WebGLRenderer( parameters ) {
|
|
|
// changed glsl or parameters
|
|
|
releaseMaterialProgramReference( material );
|
|
|
|
|
|
- } else if ( lightsHash.stateID !== lightsStateHash.stateID ||
|
|
|
- lightsHash.version !== lightsStateHash.version ) {
|
|
|
+ } else if ( materialProperties.lightsStateVersion !== lightsStateVersion ) {
|
|
|
|
|
|
- lightsHash.stateID = lightsStateHash.stateID;
|
|
|
- lightsHash.version = lightsStateHash.version;
|
|
|
+ materialProperties.lightsStateVersion = lightsStateVersion;
|
|
|
|
|
|
programChange = false;
|
|
|
|
|
@@ -1567,14 +1564,8 @@ function WebGLRenderer( parameters ) {
|
|
|
materialProperties.fog = fog;
|
|
|
|
|
|
// store the light setup it was created for
|
|
|
- if ( lightsHash === undefined ) {
|
|
|
|
|
|
- materialProperties.lightsHash = lightsHash = {};
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- lightsHash.stateID = lightsStateHash.stateID;
|
|
|
- lightsHash.version = lightsStateHash.version;
|
|
|
+ materialProperties.lightsStateVersion = lightsStateVersion;
|
|
|
|
|
|
if ( material.lights ) {
|
|
|
|
|
@@ -1613,9 +1604,6 @@ function WebGLRenderer( parameters ) {
|
|
|
var materialProperties = properties.get( material );
|
|
|
var lights = currentRenderState.state.lights;
|
|
|
|
|
|
- var lightsHash = materialProperties.lightsHash;
|
|
|
- var lightsStateHash = lights.state.hash;
|
|
|
-
|
|
|
if ( _clippingEnabled ) {
|
|
|
|
|
|
if ( _localClippingEnabled || camera !== _currentCamera ) {
|
|
@@ -1645,8 +1633,7 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
material.needsUpdate = true;
|
|
|
|
|
|
- } else if ( material.lights && ( lightsHash.stateID !== lightsStateHash.stateID ||
|
|
|
- lightsHash.version !== lightsStateHash.version ) ) {
|
|
|
+ } else if ( material.lights && materialProperties.lightsStateVersion !== lights.state.version ) {
|
|
|
|
|
|
material.needsUpdate = true;
|
|
|
|