提交 f4d862f6 编写于 作者: M Mr.doob

lights_* glsl clean up.

上级 63f8ded1
......@@ -16,14 +16,18 @@ vLightFront = vec3( 0.0 );
vLightBack = vec3( 0.0 );
#endif
IncidentLight directLight;
float dotNL;
vec3 directLightColor_Diffuse;
#if NUM_POINT_LIGHTS > 0
for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
IncidentLight directLight = getPointDirectLight( pointLights[ i ], geometry );
directLight = getPointDirectLight( pointLights[ i ], geometry );
float dotNL = dot( geometry.normal, directLight.direction );
vec3 directLightColor_Diffuse = PI * directLight.color;
dotNL = dot( geometry.normal, directLight.direction );
directLightColor_Diffuse = PI * directLight.color;
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
......@@ -41,10 +45,10 @@ vLightFront = vec3( 0.0 );
for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
IncidentLight directLight = getSpotDirectLight( spotLights[ i ], geometry );
directLight = getSpotDirectLight( spotLights[ i ], geometry );
float dotNL = dot( geometry.normal, directLight.direction );
vec3 directLightColor_Diffuse = PI * directLight.color;
dotNL = dot( geometry.normal, directLight.direction );
directLightColor_Diffuse = PI * directLight.color;
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
......@@ -61,10 +65,10 @@ vLightFront = vec3( 0.0 );
for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
IncidentLight directLight = getDirectionalDirectLight( directionalLights[ i ], geometry );
directLight = getDirectionalDirectLight( directionalLights[ i ], geometry );
float dotNL = dot( geometry.normal, directLight.direction );
vec3 directLightColor_Diffuse = PI * directLight.color;
dotNL = dot( geometry.normal, directLight.direction );
directLightColor_Diffuse = PI * directLight.color;
vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
......@@ -78,23 +82,18 @@ vLightFront = vec3( 0.0 );
#endif
{
#if NUM_HEMI_LIGHTS > 0
for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
#if NUM_HEMI_LIGHTS > 0
vLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );
for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
#ifdef DOUBLE_SIDED
vLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );
vLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );
#endif
#ifdef DOUBLE_SIDED
}
vLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );
#endif
}
#endif
......@@ -19,18 +19,20 @@ geometry.position = - vViewPosition;
geometry.normal = normal;
geometry.viewDir = normalize( vViewPosition );
IncidentLight directLight;
#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )
PointLight pointLight;
for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
PointLight pointLight = pointLights[ i ];
pointLight = pointLights[ i ];
IncidentLight directLight = getPointDirectLight( pointLight, geometry );
directLight = getPointDirectLight( pointLight, geometry );
#ifdef USE_SHADOWMAP
if ( pointLight.shadowEnabled ) {
directLight.color *= getPointShadow( pointLightsShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] );
}
if ( pointLight.shadowEnabled ) directLight.color *= getPointShadow( pointLightsShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] );
#endif
RE_Direct( directLight, geometry, material, reflectedLight );
......@@ -41,16 +43,16 @@ geometry.viewDir = normalize( vViewPosition );
#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )
SpotLight spotLight;
for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
SpotLight spotLight = spotLights[ i ];
spotLight = spotLights[ i ];
IncidentLight directLight = getSpotDirectLight( spotLight, geometry );
directLight = getSpotDirectLight( spotLight, geometry );
#ifdef USE_SHADOWMAP
if ( spotLight.shadowEnabled ) {
directLight.color *= getShadow( spotLightsShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] );
}
if ( spotLight.shadowEnabled ) directLight.color *= getShadow( spotLightsShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] );
#endif
RE_Direct( directLight, geometry, material, reflectedLight );
......@@ -61,16 +63,16 @@ geometry.viewDir = normalize( vViewPosition );
#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )
DirectionalLight directionalLight;
for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
DirectionalLight directionalLight = directionalLights[ i ];
directionalLight = directionalLights[ i ];
IncidentLight directLight = getDirectionalDirectLight( directionalLight, geometry );
directLight = getDirectionalDirectLight( directionalLight, geometry );
#ifdef USE_SHADOWMAP
if ( directionalLight.shadowEnabled ) {
directLight.color *= getShadow( directionalLightsShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] );
}
if ( directionalLight.shadowEnabled ) directLight.color *= getShadow( directionalLightsShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] );
#endif
RE_Direct( directLight, geometry, material, reflectedLight );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册