|
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
|
06-30-2006 13:11
This is a fairly simple suggestion. From tests, FPS for me appears to be the same if I have a complex scene with loads of visible prims, and if I make them all full transparent I get the same.
This would seem to suggest that the client still deals with them exactly the same way, which is fairly enough.
However, one of the uses of this is to completely hide an object, such as an avatar attachment.
The suggestion is simply an LSL function, or llSetPrimitiveParams() parameter along the lines of PRIM_RENDERED.
What this basically does is tells the client not to render any phantom primitives with this flag unset. I was going to say all prims but felt phantom only (e.g attachments) may be best. This basically causes the client not to render the object at all, thereby removing any hit the object (which can't be seen) would cause. Showing invisible objects would ignore this feature so you can find lost items. Ordinary use the objects wouldn't be treated as there at all for touches as well, so clicking it would click something that IS rendered instead (e.g the avatar beneath the attachment).
This is from me making armour, can deploy/hide the armour, but wearing it hidden is a bit wasteful (the deploy effect is kick-ass awesome though that's not really important ^_^).
_____________________
Computer (Mac Pro): 2 x Quad Core 3.2ghz Xeon 10gb DDR2 800mhz FB-DIMMS 4 x 750gb, 32mb cache hard-drives (RAID-0/striped) NVidia GeForce 8800GT (512mb)
|
|
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
|
06-30-2006 19:53
I agree a client change is needed, but not a "don't render phantom prims" option. What we need is to extend culling. Have the client cull 100% alpha surfaces, and not upload them to the GPU at all. The client knows what these surfaces are, because it has a "show transparent" option!
That would mean that there would be a little delay after you turned on "show transparent" as the extra surfaces loaded. I think that's a reasonable hit.
|
|
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
|
07-01-2006 03:32
Hrm, hadn't though of that actually. My original idea for a flag also though is that it's theoretically easier to switch on/off than setting alpha to 0.0 on all sides via script.
But either solution is ideal really, you can't see the objects anyway, and unless you suspect that they're there then you shouldn't need to see them anyway.
My main reason however for making it apply only to phantom objects is that otherwise you may collide with an invisible phantom object, while I'll admit switching to show transparent isn't that difficult for some users, it isn't as user friendly as being able to just right-click on the object like you would anything else you can walk into I think.
_____________________
Computer (Mac Pro): 2 x Quad Core 3.2ghz Xeon 10gb DDR2 800mhz FB-DIMMS 4 x 750gb, 32mb cache hard-drives (RAID-0/striped) NVidia GeForce 8800GT (512mb)
|
|
Angel Fluffy
Very Helpful
Join date: 3 Mar 2006
Posts: 810
|
07-02-2006 12:24
From: Argent Stonecutter I agree a client change is needed, but not a "don't render phantom prims" option. What we need is to extend culling. Have the client cull 100% alpha surfaces, and not upload them to the GPU at all. The client knows what these surfaces are, because it has a "show transparent" option!
That would mean that there would be a little delay after you turned on "show transparent" as the extra surfaces loaded. I think that's a reasonable hit. Agreed. Instead of adding an extra flag, just make 100% transparent surfaces not render at all. Don't even download their texture, or name, or any information other then their position, shape and size (so they can be shown with view transparent, and right clicked there if needed at which point the additional information is fetched).
|