Skip to content
This repository has been archived by the owner on Mar 28, 2024. It is now read-only.

[BUG-214736] LOD and ARC of Rigged Mesh is even worse than I had previously thought.... #3407

Open
4 tasks
sl-service-account opened this issue Mar 15, 2018 · 0 comments

Comments

@sl-service-account
Copy link

sl-service-account commented Mar 15, 2018

Steps to Reproduce

I was explaining why LOD swap occurred at unexpected ranges for rigged mesh on the fourm.
https://community.secondlife.com/forums/topic/419469-rigged-mesh-lod-bug

I referenced the Bounding Box "radius" calculation bug (https://jira.secondlife.com/browse/BUG-40665)
and as I reviewed this I noted that the BB of my avatar in all those images was ~2.8m

On the current Firestorm viewer and LL viewer (not so easy to see on LL viewer so FS is used for these images) the BB of my avatar shows as ~16m. Had Bento broken this more? The code didn't think so...
I tested a few things using an older viewer on aditi and in doing so detached my bento head.
the BB reverted to 2.8m. I tested this on Agni with a current viewer and the same behaviour happened.

without head BB is ~3m
https://i.gyazo.com/09649e52e81d64a5cffac57907e9b615.jpg

with head BB is ~16m
https://i.gyazo.com/61bac3cabda3d7030e87f423b4016abd.jpg

I rezzed the head on the ground and noticed that while the mesh head itself is large, it is not large enough for that discrepancy, there are a number of "boxes" that are part of the head link set that are pushed many metres away creating a link set with extents of around 16m.

When the head is worn the rigged mesh will, of course, adjust to the skeleton in accordance with the weights but the linked prims will remain at the extents of the box and force the avatar BB up.

Simple repro steps (LL viewer, with simple option note for FS)

  1. go to a sandbox with no other objects nearby and enable render metadata-> bounding boxes
  2. Note the size of your BB.
    Note: if you are using Firestorm and wearing any item of rigged mesh, you can edit that item and observe the effective BB size as the "object radius"
  3. Rez a prim resize it to 20m
  4. take the prim into your inventory
  5. attach the large prim to your head.
  6. Note the much-extended bounding box.
    Note: if you use firestorm, click away and back on the rigged mesh item to refresh that details.

Actual Behavior

This is an extension to my issue https://jira.secondlife.com/browse/BUG-40665
It confused me as I had nto realised how completely open to gaming this calculation was and thus how utterly broken ARC and LOD are for rigged mesh.

It can be demonstrated very easily that with a simple linkset or even a simple work prim, the Bounding box of an avatar that is used to calculate the LOD swap distances can be artificially extended; to the point where, by wearing a popular bento mesh head I can inflate my BB by more than 4 times what it previously was and force my entire avatar to be visible at high LOD to 80m on LL viewer defaults. and at Medium up to and beyond the 256m cap. Meaning that every item of rigged mesh that I am wearing. down to a tiny ring on my wiggly bento pinky will be rendered by all viewers in the region.

Expected Behavior

If wishes were fishes.....
At the very least the LOD swap should be based upon the avatar scale not the BB extents, even keeping the "radius" bug this would constrain the rigged mesh LOD swap to within 2x that of a non-rigged 2m object.

Ideally, this whole mess needs a thorough re-examination but therein lies a very scary minefield of broken content.

Other information

This is a growing issue. Animesh is going to expose this issue for objects that are non-avatars as it appears to apply to any rigged mesh. The ARC/complexity calculation that is already broken (as described in Liz's Jira https://jira.secondlife.com/browse/BUG-37577) because it uses the object scale not the rigged scale. means that a deliberately deceptive unscrupulous creator can create a rigged mesh item that is tiny and have a very low ARC, then they can they can link this with other items such that they create a link set with a very large bounding box. In combination, they then have a highly complex item that shows as low complexity and yet NEVER LOD swaps due to an artificial scale bump. In reality, this frequently happens by "accident" with someone wearing mesh fingernails or a wedding ring, while also wearing a mesh head such as the one I was wearing.

Links

Related

Original Jira Fields
Field Value
Issue BUG-214736
Summary LOD and ARC of Rigged Mesh is even worse than I had previously thought....
Type Bug
Priority Unset
Status Accepted
Resolution Accepted
Reporter Beq Janus (beq.janus)
Created at 2018-03-15T00:09:05Z
Updated at 2020-05-21T17:56:59Z
{
  'Business Unit': ['Platform'],
  "Is there anything you'd like to add?": 'This is a growing issue. Animesh is going to expose this issue for objects that are non-avatars as it appears to apply to any rigged mesh. The ARC/complexity calculation that is already broken (as described in Liz\'s Jira https://jira.secondlife.com/browse/BUG-37577) because it uses the object scale not the rigged scale. means that a deliberately deceptive unscrupulous creator can create a rigged mesh item that is tiny and have a very low ARC, then they can they can link this with other items such that they create a link set with a very large bounding box. In combination, they then have a highly complex item that shows as low complexity and yet NEVER LOD swaps due to an artificial scale bump. In reality, this frequently happens by "accident" with someone wearing mesh fingernails or a wedding ring, while also wearing a mesh head such as the one I was wearing.',
  'ReOpened Count': 0.0,
  'Severity': 'Unset',
  'System': 'SL Viewer',
  'Target Viewer Version': 'viewer-development',
  'What just happened?': 'This is an extension to my issue https://jira.secondlife.com/browse/BUG-40665\r\nIt confused me as I had nto realised how completely open to gaming this calculation was and thus how utterly broken ARC and LOD are for rigged mesh.\r\n\r\nIt can be demonstrated very easily that with a simple linkset or even a simple work prim, the Bounding box of an avatar that is used to calculate the LOD swap distances can be artificially extended; to the point where, by wearing a popular bento mesh head I can inflate my BB by more than 4 times what it previously was and force my entire avatar to be visible at high LOD to 80m on LL viewer defaults. and at Medium up to and beyond the 256m cap. Meaning that every item of rigged mesh that I am wearing. down to a tiny ring on my wiggly bento pinky will be rendered by all viewers in the region. ',
  'What were you doing when it happened?': 'I was explaining why LOD swap occurred at unexpected ranges for rigged mesh on the fourm.\r\nhttps://community.secondlife.com/forums/topic/419469-rigged-mesh-lod-bug\r\n\r\nI referenced the Bounding Box "radius" calculation bug (https://jira.secondlife.com/browse/BUG-40665)\r\nand as I reviewed this I noted that the BB of my avatar in all those images was ~2.8m\r\n\r\nOn the current Firestorm viewer and LL viewer (not so easy to see on LL viewer so FS is used for these images) the BB of my avatar shows as ~16m. Had Bento broken this more? The code didn\'t think so...\r\nI tested a few things using an older viewer on aditi and in doing so detached my bento head. \r\nthe BB reverted to 2.8m. I tested this on Agni with a current viewer and the same behaviour happened.\r\n\r\nwithout head BB is ~3m \r\n!https://i.gyazo.com/09649e52e81d64a5cffac57907e9b615.jpg!\r\n\r\nwith head BB is ~16m\r\n!https://i.gyazo.com/61bac3cabda3d7030e87f423b4016abd.jpg!\r\n\r\nI rezzed the head on the ground and noticed that while the mesh head itself is large, it is not large enough for that discrepancy, there are a number of "boxes" that are part of the head link set that are pushed many metres away creating a link set with extents of around 16m.\r\n\r\nWhen the head is worn the rigged mesh will, of course, adjust to the skeleton in accordance with the weights but the linked prims will remain at the extents of the box and force the avatar BB up. \r\n\r\nSimple repro steps (LL viewer, with simple option note for FS)\r\n1) go to a sandbox with no other objects nearby and enable render metadata-> bounding boxes\r\n2) Note the size of your BB. \r\n Note: if you are using Firestorm and wearing any item of rigged mesh, you can edit that item and observe the effective BB size as the "object radius"\r\n3) Rez a prim resize it to 20m\r\n4) take the prim into your inventory\r\n5) attach the large prim to your head.\r\n6) Note the much-extended bounding box.\r\nNote: if you use firestorm, click away and back on the rigged mesh item to refresh that details. \r\n\r\n\r\n\r\n',
  'What were you expecting to happen instead?': 'If wishes were fishes.....\r\nAt the very least the LOD swap should be based upon the avatar scale not the BB extents, even keeping the "radius" bug this would constrain the rigged mesh LOD swap to within 2x that of a non-rigged 2m object.\r\n\r\nIdeally, this whole mess needs a thorough re-examination but therein lies a very scary minefield of broken content.',
  'Where': 'Agni, aditi, anywhere. Best to repro in a wide open space if you are using the Lab viewer and reliant upon the cluttered BB metadata view to illustrate this.',
}
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant