This bug only affects rigged mesh.
Unrigged mesh and normal prims do not reproduce the problem.
If anyone reports that their rigged mesh body is pure black/pure white/broken when underwater only, this is the reason.
For those having the problem with a rigged mesh body, there are 2 workarounds:
1) Either enable Advanced Lighting Model under Preferences -> Graphics
2) Or, on the body HUD, go to the Layers settings and set the layers to have the Mode "Blend" instead of "Mask".
Note that there is a side effect of using Blend mode instead of Mask mode - you may see alpha fighting between the tattoo, clothing & underwear layers if the textures contain any alpha.
Some rigged mesh body replacemnts have Mask mode enabled by default for the body layers, for example the Belleza mesh body.
Steps to Reproduce
Wear any rigged mesh & texture it with a diffuse texture containing some alpha.
Wear any unrigged mesh textured with the same diffuse texture containing some alpha.
Wear a normal box prim textured with the same diffuse texture containing some alpha.
Set the diffuse texture on the rigged, unrigged and box attachments to Alpha Blending.
Observe that the diffuse texture on all 3 attachments displays correctly both above and below water with both ALM enabled and ALM disabled.
See attached images showing expected behaviour.
I am wearing a rigged mesh body with layers set to alpha blending, a rigged mesh cube, an unrigged mesh cube and a default box prim - all set to alpha blending.
Fig 1 - Above water, ALM disabled.
Fig 2 - Above water, ALM enabled.
Fig 3 - Underwater, ALM disabled.
Fig 4 - Underwater, ALM enabled.
Change the diffuse texture on all attachments to Alpha Masking mode & set a suitable mask cutoff so the correct part of the texture is alpha.
Observe how the diffuse texture displays on all 3 attachments both above and below water with both ALM enabled and ALM disabled.
Observed Behaviour
When above water, the alpha masked diffuse texture displays correctly with both ALM enabled and disabled.
Fig 5 - Above water, ALM disabled.
Fig 6 - Above water, ALM enabled.
Note in the above 2 images, my mesh body layers have been changed to alpha masking mode and the rigged, unrigged & box prim attachments are all using alpha masking mode.
When underwater, the alpha masked diffuse texture displays correctly when ALM is enabled.
Fig 7 - Underwater, ALM enabled.
The Bug
When underwater with ALM disabled...
The alpha masked diffuse texture displays correctly on the box prim and on the unrigged mesh attachment.
The alpha masked diffuse texture loses all its alpha on the rigged mesh attachment.
See Fig 8 showing the correct texture display on the unrigged mesh attachement & the box prim, but the broken texture on the rigged mesh cube and on the mesh body.
Expected Behaviour
Alpha masked textures on rigged mesh should display correctly underwater when ALM is disabled.
Other Information
Note about Fig 1
You can see in Fig 1 that the texture on the rigged mesh cube isn't actually displaying correctly (no alpha) - this only happens when viewing the rigged mesh against Linden water when the texture is set to alpha blending mode & ALM is disabled - I filed this as a seperate bug at BUG-9852
BUG-9852 is also the reason the Belleza strip around the waist loses its alpha background when viewed against the LL water on some of the images.
This bug only affects rigged mesh. Unrigged mesh and normal prims do not reproduce the problem.
If anyone reports that their rigged mesh body is pure black/pure white/broken when underwater only, this is the reason.
For those having the problem with a rigged mesh body, there are 2 workarounds: 1) Either enable Advanced Lighting Model under Preferences -> Graphics 2) Or, on the body HUD, go to the Layers settings and set the layers to have the Mode "Blend" instead of "Mask". Note that there is a side effect of using Blend mode instead of Mask mode - you may see alpha fighting between the tattoo, clothing & underwear layers if the textures contain any alpha.
Some rigged mesh body replacemnts have Mask mode enabled by default for the body layers, for example the Belleza mesh body.
Steps to Reproduce
Wear any rigged mesh & texture it with a diffuse texture containing some alpha.
Wear any unrigged mesh textured with the same diffuse texture containing some alpha.
Wear a normal box prim textured with the same diffuse texture containing some alpha.
Set the diffuse texture on the rigged, unrigged and box attachments to Alpha Blending.
Observe that the diffuse texture on all 3 attachments displays correctly both above and below water with both ALM enabled and ALM disabled.
See attached images showing expected behaviour. I am wearing a rigged mesh body with layers set to alpha blending, a rigged mesh cube, an unrigged mesh cube and a default box prim - all set to alpha blending.
Change the diffuse texture on all attachments to Alpha Masking mode & set a suitable mask cutoff so the correct part of the texture is alpha.
Observe how the diffuse texture displays on all 3 attachments both above and below water with both ALM enabled and ALM disabled.
Observed Behaviour
When above water, the alpha masked diffuse texture displays correctly with both ALM enabled and disabled.
When underwater, the alpha masked diffuse texture displays correctly when ALM is enabled.
The Bug
When underwater with ALM disabled...
The alpha masked diffuse texture displays correctly on the box prim and on the unrigged mesh attachment.
The alpha masked diffuse texture loses all its alpha on the rigged mesh attachment.
See Fig 8 showing the correct texture display on the unrigged mesh attachement & the box prim, but the broken texture on the rigged mesh cube and on the mesh body.
Expected Behaviour
Alpha masked textures on rigged mesh should display correctly underwater when ALM is disabled.
Other Information
Note about Fig 1 You can see in Fig 1 that the texture on the rigged mesh cube isn't actually displaying correctly (no alpha) - this only happens when viewing the rigged mesh against Linden water when the texture is set to alpha blending mode & ALM is disabled - I filed this as a seperate bug at BUG-9852 BUG-9852 is also the reason the Belleza strip around the waist loses its alpha background when viewed against the LL water on some of the images.
Attachments
Links
Duplicates
Original Jira Fields
| Field | Value | | ------------- | ------------- | | Issue | BUG-9851 | | Summary | Alpha masked textures on rigged mesh render opaque underwater when ALM is disabled. | | Type | Bug | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | Whirly Fizzle (whirly.fizzle) | | Created at | 2015-08-06T03:01:53Z | | Updated at | 2017-05-10T22:23:14Z | ``` { 'Business Unit': ['Platform'], 'Date of First Response': '2016-11-09T15:50:20.020-0600', 'Severity': 'Unset', 'System': 'SL Viewer', 'Target Viewer Version': 'viewer-development', 'What just happened?': '...', 'What were you doing when it happened?': 'Filling in...', 'What were you expecting to happen instead?': '...', } ```