提交 c5024cda 编写于 作者: A aardgoose

remove need for state.id

上级 03ff8811
...@@ -1441,8 +1441,7 @@ function WebGLRenderer( parameters ) { ...@@ -1441,8 +1441,7 @@ function WebGLRenderer( parameters ) {
var lights = currentRenderState.state.lights; var lights = currentRenderState.state.lights;
var shadowsArray = currentRenderState.state.shadowsArray; var shadowsArray = currentRenderState.state.shadowsArray;
var lightsHash = materialProperties.lightsHash; var lightsStateVersion = lights.state.version;
var lightsStateHash = lights.state.hash;
var parameters = programCache.getParameters( var parameters = programCache.getParameters(
material, lights.state, shadowsArray, fog, _clipping.numPlanes, _clipping.numIntersection, object ); material, lights.state, shadowsArray, fog, _clipping.numPlanes, _clipping.numIntersection, object );
...@@ -1462,11 +1461,9 @@ function WebGLRenderer( parameters ) { ...@@ -1462,11 +1461,9 @@ function WebGLRenderer( parameters ) {
// changed glsl or parameters // changed glsl or parameters
releaseMaterialProgramReference( material ); releaseMaterialProgramReference( material );
} else if ( lightsHash.stateID !== lightsStateHash.stateID || } else if ( materialProperties.lightsStateVersion !== lightsStateVersion ) {
lightsHash.version !== lightsStateHash.version ) {
lightsHash.stateID = lightsStateHash.stateID; materialProperties.lightsStateVersion = lightsStateVersion;
lightsHash.version = lightsStateHash.version;
programChange = false; programChange = false;
...@@ -1567,14 +1564,8 @@ function WebGLRenderer( parameters ) { ...@@ -1567,14 +1564,8 @@ function WebGLRenderer( parameters ) {
materialProperties.fog = fog; materialProperties.fog = fog;
// store the light setup it was created for // store the light setup it was created for
if ( lightsHash === undefined ) {
materialProperties.lightsHash = lightsHash = {}; materialProperties.lightsStateVersion = lightsStateVersion;
}
lightsHash.stateID = lightsStateHash.stateID;
lightsHash.version = lightsStateHash.version;
if ( material.lights ) { if ( material.lights ) {
...@@ -1613,9 +1604,6 @@ function WebGLRenderer( parameters ) { ...@@ -1613,9 +1604,6 @@ function WebGLRenderer( parameters ) {
var materialProperties = properties.get( material ); var materialProperties = properties.get( material );
var lights = currentRenderState.state.lights; var lights = currentRenderState.state.lights;
var lightsHash = materialProperties.lightsHash;
var lightsStateHash = lights.state.hash;
if ( _clippingEnabled ) { if ( _clippingEnabled ) {
if ( _localClippingEnabled || camera !== _currentCamera ) { if ( _localClippingEnabled || camera !== _currentCamera ) {
...@@ -1645,8 +1633,7 @@ function WebGLRenderer( parameters ) { ...@@ -1645,8 +1633,7 @@ function WebGLRenderer( parameters ) {
material.needsUpdate = true; material.needsUpdate = true;
} else if ( material.lights && ( lightsHash.stateID !== lightsStateHash.stateID || } else if ( material.lights && materialProperties.lightsStateVersion !== lights.state.version ) {
lightsHash.version !== lightsStateHash.version ) ) {
material.needsUpdate = true; material.needsUpdate = true;
......
...@@ -100,7 +100,7 @@ function UniformsCache() { ...@@ -100,7 +100,7 @@ function UniformsCache() {
} }
var count = 0; var nextVersion = 0;
function WebGLLights() { function WebGLLights() {
...@@ -108,17 +108,15 @@ function WebGLLights() { ...@@ -108,17 +108,15 @@ function WebGLLights() {
var state = { var state = {
id: count ++, version: 0,
hash: { hash: {
stateID: - 1,
directionalLength: - 1, directionalLength: - 1,
pointLength: - 1, pointLength: - 1,
spotLength: - 1, spotLength: - 1,
rectAreaLength: - 1, rectAreaLength: - 1,
hemiLength: - 1, hemiLength: - 1,
shadowsLength: - 1, shadowsLength: - 1,
version: 0
}, },
ambient: [ 0, 0, 0 ], ambient: [ 0, 0, 0 ],
...@@ -347,7 +345,6 @@ function WebGLLights() { ...@@ -347,7 +345,6 @@ function WebGLLights() {
state.point.length = pointLength; state.point.length = pointLength;
state.hemi.length = hemiLength; state.hemi.length = hemiLength;
hash.stateID = state.id;
hash.directionalLength = directionalLength; hash.directionalLength = directionalLength;
hash.pointLength = pointLength; hash.pointLength = pointLength;
hash.spotLength = spotLength; hash.spotLength = spotLength;
...@@ -355,7 +352,7 @@ function WebGLLights() { ...@@ -355,7 +352,7 @@ function WebGLLights() {
hash.hemiLength = hemiLength; hash.hemiLength = hemiLength;
hash.shadowsLength = shadows.length; hash.shadowsLength = shadows.length;
hash.version ++; state.version = nextVersion++;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册