提交 d1e8efae 编写于 作者: A aardgoose

use new hash value

上级 55d8eb49
...@@ -1463,20 +1463,10 @@ function WebGLRenderer( parameters ) { ...@@ -1463,20 +1463,10 @@ function WebGLRenderer( parameters ) {
releaseMaterialProgramReference( material ); releaseMaterialProgramReference( material );
} else if ( lightsHash.stateID !== lightsStateHash.stateID || } else if ( lightsHash.stateID !== lightsStateHash.stateID ||
lightsHash.directionalLength !== lightsStateHash.directionalLength || lightsHash.value !== lightsStateHash.directionalLength ) {
lightsHash.pointLength !== lightsStateHash.pointLength ||
lightsHash.spotLength !== lightsStateHash.spotLength ||
lightsHash.rectAreaLength !== lightsStateHash.rectAreaLength ||
lightsHash.hemiLength !== lightsStateHash.hemiLength ||
lightsHash.shadowsLength !== lightsStateHash.shadowsLength ) {
lightsHash.stateID = lightsStateHash.stateID; lightsHash.stateID = lightsStateHash.stateID;
lightsHash.directionalLength = lightsStateHash.directionalLength; lightsHash.value = lightsStateHash.value;
lightsHash.pointLength = lightsStateHash.pointLength;
lightsHash.spotLength = lightsStateHash.spotLength;
lightsHash.rectAreaLength = lightsStateHash.rectAreaLength;
lightsHash.hemiLength = lightsStateHash.hemiLength;
lightsHash.shadowsLength = lightsStateHash.shadowsLength;
programChange = false; programChange = false;
...@@ -1584,12 +1574,7 @@ function WebGLRenderer( parameters ) { ...@@ -1584,12 +1574,7 @@ function WebGLRenderer( parameters ) {
} }
lightsHash.stateID = lightsStateHash.stateID; lightsHash.stateID = lightsStateHash.stateID;
lightsHash.directionalLength = lightsStateHash.directionalLength; lightsHash.value = lightsStateHash.value;
lightsHash.pointLength = lightsStateHash.pointLength;
lightsHash.spotLength = lightsStateHash.spotLength;
lightsHash.rectAreaLength = lightsStateHash.rectAreaLength;
lightsHash.hemiLength = lightsStateHash.hemiLength;
lightsHash.shadowsLength = lightsStateHash.shadowsLength;
if ( material.lights ) { if ( material.lights ) {
...@@ -1661,12 +1646,7 @@ function WebGLRenderer( parameters ) { ...@@ -1661,12 +1646,7 @@ function WebGLRenderer( parameters ) {
material.needsUpdate = true; material.needsUpdate = true;
} else if ( material.lights && ( lightsHash.stateID !== lightsStateHash.stateID || } else if ( material.lights && ( lightsHash.stateID !== lightsStateHash.stateID ||
lightsHash.directionalLength !== lightsStateHash.directionalLength || lightsHash.value !== lightsStateHash.value ) ) {
lightsHash.pointLength !== lightsStateHash.pointLength ||
lightsHash.spotLength !== lightsStateHash.spotLength ||
lightsHash.rectAreaLength !== lightsStateHash.rectAreaLength ||
lightsHash.hemiLength !== lightsStateHash.hemiLength ||
lightsHash.shadowsLength !== lightsStateHash.shadowsLength ) ) {
material.needsUpdate = true; material.needsUpdate = true;
......
...@@ -117,7 +117,8 @@ function WebGLLights() { ...@@ -117,7 +117,8 @@ function WebGLLights() {
spotLength: - 1, spotLength: - 1,
rectAreaLength: - 1, rectAreaLength: - 1,
hemiLength: - 1, hemiLength: - 1,
shadowsLength: - 1 shadowsLength: - 1,
value: 0
}, },
ambient: [ 0, 0, 0 ], ambient: [ 0, 0, 0 ],
...@@ -331,19 +332,32 @@ function WebGLLights() { ...@@ -331,19 +332,32 @@ function WebGLLights() {
state.ambient[ 1 ] = g; state.ambient[ 1 ] = g;
state.ambient[ 2 ] = b; state.ambient[ 2 ] = b;
state.directional.length = directionalLength; var hash = state.hash;
state.spot.length = spotLength;
state.rectArea.length = rectAreaLength; if ( hash.directionalLength !== directionalLength ||
state.point.length = pointLength; hash.pointLength !== pointLength ||
state.hemi.length = hemiLength; hash.spotLength !== spotLength ||
hash.rectAreaLength !== rectAreaLength ||
state.hash.stateID = state.id; hash.hemiLength !== hemiLength ||
state.hash.directionalLength = directionalLength; hash.shadowsLength !== shadows.length ) {
state.hash.pointLength = pointLength;
state.hash.spotLength = spotLength; state.directional.length = directionalLength;
state.hash.rectAreaLength = rectAreaLength; state.spot.length = spotLength;
state.hash.hemiLength = hemiLength; state.rectArea.length = rectAreaLength;
state.hash.shadowsLength = shadows.length; state.point.length = pointLength;
state.hemi.length = hemiLength;
hash.stateID = state.id;
hash.directionalLength = directionalLength;
hash.pointLength = pointLength;
hash.spotLength = spotLength;
hash.rectAreaLength = rectAreaLength;
hash.hemiLength = hemiLength;
hash.shadowsLength = shadows.length;
hash.value++;
}
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册