secondlife / jira-archive

2 stars 0 forks source link

[BUG-3645] Automatic alpha masks behaving unexpectedly for 2 textures sharing a common piece of alpha channel. #11884

Open sl-service-account opened 11 years ago

sl-service-account commented 11 years ago

Steps To Reproduce

  1. Download Texture A & Texture B attached to this issue and upload both textures to SL. Texture A is a transparent grid on a black background. Texture B is the same as Texture A but with the middle of the grid removed.
  2. Rez 2 prims, Prim A & Prim B, side by side sized at <5, 0.05, 5>.
  3. Add Texture A to front face of Prim A & Texture B to front face of Prim B.
  4. Set Sun to midday (not necessary step, just makes the grid easier to see)
  5. Observe how the 2 textures render on the prims at both near and mid range camera distances.
  6. Now disable Automatic Alpha Masks under Develop -> Rendering and observe how the 2 textures render on the prims at both near and mid range camera distances. If ALM is disabled, toggle Automatic Alpha Masks (non- deferred). If ALM is enabled, toggle Automatic Alpha Masks (deferred).

    Observed Behaviour

When Automatic Alpha Masks are enabled

When camera is very close to prim A & B - Texture A will render as expected and Texture B will render as expected.

When camera is zoomed away slightly from the prims, Texture A will render as expected but Texture B will quickly develop missing grid lines - see Fig 1.

When camera is moved further away, Texture A will render as expected but Texture B will display as all black with no grid lines - See Fig 2.

Move camera away even further and both prims will just render as black (expected).

Why do the grid lines on Texture B disappear at a much closer camera distance then for Texture A?

When Automatic Alpha Masks are disabled

Both Texture A and Texture B behave as expected at different camera distances. The grid lines on both textures fully render until the camera is too far away to display them and the grid lines on both textures disappear at the same camera distance - see Fig 3.

Expected Behaviour

When automatic alpha masks are enabled, the grid lines on Texture B should render the same as on Texture A at each camera distance.

Other Information

Attachments

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-3645 | | Summary | Automatic alpha masks behaving unexpectedly for 2 textures sharing a common piece of alpha channel. | | Type | Bug | | Priority | Unset | | Status | Been Triaged | | Resolution | Triaged | | Reporter | Whirly Fizzle (whirly.fizzle) | | Created at | 2013-08-19T01:47:20Z | | Updated at | 2014-03-10T21:13:14Z | ``` { 'Business Unit': ['Platform'], 'Date of First Response': '2013-08-19T19:32:03.686-0500', 'System': 'SL Viewer', 'Target Viewer Version': 'viewer-development', 'What just happened?': '.', 'What were you doing when it happened?': 'Filling in details', 'What were you expecting to happen instead?': '.', } ```
sl-service-account commented 11 years ago

Marissa Linden commented at 2013-08-20T00:32:04Z

Setting Priority to Minor because if you log out and log back in Texture B renders correctly.

sl-service-account commented 11 years ago

Whirly Fizzle commented at 2013-08-20T11:13:34Z

Oh thats strange! What build are you using Marissa? I can't reproduce that. Texture B is still borked for me after relog if I have automatic alpha masks enabled.

sl-service-account commented 11 years ago

Marissa Linden commented at 2013-08-20T17:28:40Z

Actually, you're right Whirly. It seems I found a way to trick myself. If I apply 1% Transparency to the face where Texture B is applied, then the grid appears to render correctly. I applied the transparency and forgot by the time I logged back in, ticking myself into believing the relog "fixed" the issue. Relogging doesn't do anything.

sl-service-account commented 11 years ago

Whirly Fizzle commented at 2013-08-20T17:38:35Z

Oh! I forgot to add that to my issue too!

Yes, setting 1% transparency or a teeny amount of glow makes Texture B behave as expected when alpha masks are enabled.