[BUG-230551] [Rendering] Add some way to strip an object face from rendering completely. #8203
Comments
Vir Linden commented at 2021-04-14T17:54:12Z We do already have a built-in texture called IMG_INVISIBLE. If a face is set to use that texture, it will be skipped very efficiently. What if we had a texture like SUPER_INVISIBLE which also causes clicks to be disabled? Would that address what you are shooting for? |
Vir Linden commented at 2021-04-14T17:54:40Z I'm not saying the name would really be SUPER_INVISIBLE, by the way :-) |
Kyrah Abattoir commented at 2021-04-15T08:39:22Z Wait when was IMG_INVISIBLE added? the only mention of it that i found is from a kokua comment: const LLUUID IMG_INVISIBLE ("3a367d1c-bef1-6d43-7595-e88c1e3aadb3"); It's also not recognized as a script constant or anywhere in the build tools.
"SUPER_INVISIBLE" (working title) would probably do the job, but most creators tend to only change the alpha value of an object, so that they don't have to touch any other visual parameter, which could have been adjusted by the owner of the object. |
Vir Linden commented at 2021-04-15T13:22:18Z IMG_INVISIBLE was added at the same time as we added alpha and tattoo wearables - maybe around 2011? If you set part of an alpha wearable to fully invisible via the checkbox, IMG_INVISIBLE is the UUID that gets used. I'm not sure if it's exposed as an LSL constant anywhere. |
Kyrah Abattoir commented at 2021-04-15T17:34:09Z Yeah I just tested it but on regular object it does "appear" to behave as just another alpha texture, I did see the specific checks related to it in the viewer sourcecode, but is it actually implement for prims and mesh objects too? Or just system avatars at the present time? |
Vir Linden commented at 2021-04-15T19:53:11Z I believe it should successfully make a face invisible with any prim, including meshes and avatars. Whether it's doing efficient skipping in all those cases would require some code review. |
Kyrah Abattoir commented at 2021-04-16T11:18:28Z Well yeah it is a 100% alpha texture, but it appears to react normally when you set alpha mode, so I'd be tempted to say its "special" properties aren't applied on regular objects. If this could be implemented, along with "super invisible" (in addition to having them as script constants and exposed on the viewer texture UI and have a special color in highlight transparent to avoid confusions) it would be a great addition, there are quite a fews applications i can think of.
|
Vir Linden commented at 2021-04-16T13:16:57Z I'm not sure what you mean by reacting normally when you set alpha mode. What is it doing now and what would you want it to be doing? |
Kyrah Abattoir commented at 2021-04-17T13:16:20Z On prims and meshs it behave like a regular alpha texture when you change the alpha settings (no alpha/masked alpha) unless that is intentional it doesn't look like it is doing any stripping on regular objects? I'm not even sure how to check that these faces are indeed being rendered or not. |
Vir Linden commented at 2021-04-21T17:48:51Z This seems like a potentially useful and not too complex feature. Specifically the proposal would be:
|
How would you like the feature to work?
I'm not entirely sure but here are some approaches:
Option A: Add a new default texture ( TEXTURE_STRIP for example ).
Option B: Allow to set the alpha value of a face to a value superior to 100%.
Option C: Add a new parameter to PRIM_ALPHA_MODE: PRIM_ALPHA_MODE_STRIP
The idea is to allow builders, (but mainly scripters) to completely exclude a given face of an object from rendering, not just make it invisible, but also exclude it from touch raycast selection, and more importantly, from transform operations (especially on avatars).
These would remain visible when "highlight transparency" is on, maybe in their own unique color?
Why is this feature important to you? How would it benefit the community?
It is common for scripted objects in SL to have "hidden" parts, accessories, hidden "slices" on mesh bodies.
For a lot of those being clickable, or even having them go anywhere near being rendered is just a waste of resources (why have hidden options of your mesh body render at all when you don't use them? and unfortunately it is rare that those bodies allow modding)
It would be a bad idea to use this in place of 100% alpha because a lot of hidden objects still require clicking, but having a specific option to explicitely mark a prim/mesh face as "do not render this" would be immensely useful for content optimization.
Original Jira Fields
The text was updated successfully, but these errors were encountered: