diff options
7 files changed, 20 insertions, 16 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/cloudShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cloudShadowF.glsl index 0efde5f949..0157d166e0 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/cloudShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/cloudShadowF.glsl @@ -82,12 +82,12 @@ void main()          vec2 disturbance2 = vec2(cloudNoise((uv1 + uv3) / 4.0f).x, cloudNoise((uv4 + uv2) / 8.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);          // Offset texture coords -        uv1 += cloud_pos_density1.xy + (disturbance * 0.02);    //large texture, visible density +        uv1 += cloud_pos_density1.xy + (disturbance * 0.2);    //large texture, visible density          uv2 += cloud_pos_density1.xy;   //large texture, self shadow          uv3 += cloud_pos_density2.xy;   //small texture, visible density          uv4 += cloud_pos_density2.xy;   //small texture, self shadow -        float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y)); +        float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y) * 4.0);          cloudDensity *= 1.0 - (density_variance * density_variance); diff --git a/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl index d6bd0a7917..f6694aae2a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/cloudsF.glsl @@ -85,12 +85,12 @@ void main()      vec2 disturbance2 = vec2(cloudNoise((uv1 + uv3) / 4.0f).x, cloudNoise((uv4 + uv2) / 8.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);      // Offset texture coords -    uv1 += cloud_pos_density1.xy + (disturbance * 0.02);    //large texture, visible density +    uv1 += cloud_pos_density1.xy + (disturbance * 0.2);    //large texture, visible density      uv2 += cloud_pos_density1.xy;   //large texture, self shadow      uv3 += cloud_pos_density2.xy;   //small texture, visible density      uv4 += cloud_pos_density2.xy;   //small texture, self shadow -    float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y)); +    float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y) * 4.0);      cloudDensity *= 1.0 - (density_variance * density_variance); diff --git a/indra/newview/app_settings/shaders/class1/windlight/cloudShadowF.glsl b/indra/newview/app_settings/shaders/class1/windlight/cloudShadowF.glsl index 1d004b2b3e..82fad4db5a 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/cloudShadowF.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/cloudShadowF.glsl @@ -82,12 +82,12 @@ void main()          vec2 disturbance2 = vec2(cloudNoise((uv1 + uv3) / 4.0f).x, cloudNoise((uv4 + uv2) / 8.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);          // Offset texture coords -        uv1 += cloud_pos_density1.xy + (disturbance * 0.02);    //large texture, visible density +        uv1 += cloud_pos_density1.xy + (disturbance * 0.2);    //large texture, visible density          uv2 += cloud_pos_density1.xy;   //large texture, self shadow          uv3 += cloud_pos_density2.xy;   //small texture, visible density          uv4 += cloud_pos_density2.xy;   //small texture, self shadow -        float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y)); +        float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y) * 4.0);          cloudDensity *= 1.0 - (density_variance * density_variance); diff --git a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl index e7ae2d52e3..3ac0fc224b 100644 --- a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl +++ b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl @@ -86,12 +86,12 @@ void main()      vec2 disturbance2 = vec2(cloudNoise((uv1 + uv3) / 4.0f).x, cloudNoise((uv4 + uv2) / 8.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);      // Offset texture coords -    uv1 += cloud_pos_density1.xy + (disturbance * 0.02);    //large texture, visible density +    uv1 += cloud_pos_density1.xy + (disturbance * 0.2);    //large texture, visible density      uv2 += cloud_pos_density1.xy;   //large texture, self shadow      uv3 += cloud_pos_density2.xy;   //small texture, visible density      uv4 += cloud_pos_density2.xy;   //small texture, self shadow -    float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y)); +    float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y) * 4.0);      cloudDensity *= 1.0 - (density_variance * density_variance); diff --git a/indra/newview/app_settings/shaders/class3/deferred/cloudShadowF.glsl b/indra/newview/app_settings/shaders/class3/deferred/cloudShadowF.glsl index ae521afdad..32210f60dc 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/cloudShadowF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/cloudShadowF.glsl @@ -79,12 +79,12 @@ void main()          vec2 disturbance2 = vec2(cloudNoise((uv1 + uv3) / 4.0f).x, cloudNoise((uv4 + uv2) / 8.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);          // Offset texture coords -        uv1 += cloud_pos_density1.xy + (disturbance * 0.02);    //large texture, visible density +        uv1 += cloud_pos_density1.xy + (disturbance * 0.2);    //large texture, visible density          uv2 += cloud_pos_density1.xy;   //large texture, self shadow          uv3 += cloud_pos_density2.xy;   //small texture, visible density          uv4 += cloud_pos_density2.xy;   //small texture, self shadow -        float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y)); +        float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0 + disturbance2.x + disturbance2.y) * 4.0);          cloudDensity *= 1.0 - (density_variance * density_variance); diff --git a/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl b/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl index 1abe2fab63..e40d7e7c75 100644 --- a/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl +++ b/indra/newview/app_settings/shaders/class3/deferred/cloudsF.glsl @@ -95,12 +95,12 @@ void main()      vec2 disturbance = vec2(cloudNoise(uv1 / 16.0f).x, cloudNoise((uv3 + uv1) / 16.0f).x) * cloud_variance * (1.0f - cloud_scale * 0.25f);      // Offset texture coords -    uv1 += cloud_pos_density1.xy + disturbance; //large texture, visible density +    uv1 += cloud_pos_density1.xy + (disturbance * 0.2); //large texture, visible density      uv2 += cloud_pos_density1.xy;   //large texture, self shadow -    uv3 += cloud_pos_density2.xy + disturbance; //small texture, visible density +    uv3 += cloud_pos_density2.xy; //small texture, visible density      uv4 += cloud_pos_density2.xy;   //small texture, self shadow -    float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0)); +    float density_variance = min(1.0, (disturbance.x* 2.0 + disturbance.y* 2.0) * 4.0);      cloudDensity *= 1.0 - (density_variance * density_variance); diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index d149a61d89..02ef7612a7 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -5522,6 +5522,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)  						}  						LLMaterial* mat = te->getMaterialParams().get(); +                        bool fullbright = te->getFullbright();  						if (mat && LLPipeline::sRenderDeferred)  						{ @@ -5536,15 +5537,18 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)  								alpha_mode = LLMaterial::DIFFUSE_ALPHA_MODE_BLEND;  							} -							if (!is_alpha || te_alpha > 0.f)  // //only add the face if it will actually be visible +                            if (fullbright && (alpha_mode == LLMaterial::DIFFUSE_ALPHA_MODE_NONE)) +                            { +                                pool->addRiggedFace(facep, LLDrawPoolAvatar::RIGGED_FULLBRIGHT); +                            } +							else if (!is_alpha || te_alpha > 0.f)  // //only add the face if it will actually be visible  							{   								U32 mask = mat->getShaderMask(alpha_mode);  								pool->addRiggedFace(facep, mask);  							}  						}  						else if (mat) -						{ -							bool fullbright = te->getFullbright(); +						{							  							bool is_alpha = type == LLDrawPool::POOL_ALPHA;  							U8 mode = mat->getDiffuseAlphaMode();  							bool can_be_shiny = mode == LLMaterial::DIFFUSE_ALPHA_MODE_NONE || | 
