提交 c5024cda 编写于 作者: A aardgoose

remove need for state.id

上级 03ff8811
......@@ -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;
......
......@@ -100,7 +100,7 @@ function UniformsCache() {
}
var count = 0;
var nextVersion = 0;
function WebGLLights() {
......@@ -108,17 +108,15 @@ function WebGLLights() {
var state = {
id: count ++,
version: 0,
hash: {
stateID: - 1,
directionalLength: - 1,
pointLength: - 1,
spotLength: - 1,
rectAreaLength: - 1,
hemiLength: - 1,
shadowsLength: - 1,
version: 0
},
ambient: [ 0, 0, 0 ],
......@@ -347,7 +345,6 @@ function WebGLLights() {
state.point.length = pointLength;
state.hemi.length = hemiLength;
hash.stateID = state.id;
hash.directionalLength = directionalLength;
hash.pointLength = pointLength;
hash.spotLength = spotLength;
......@@ -355,7 +352,7 @@ function WebGLLights() {
hash.hemiLength = hemiLength;
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.
先完成此消息的编辑!
想要评论请 注册