Problem with glow and llSetAlpha(): No more scriptable hide/show?
|
|
Darien Caldwell
Registered User
Join date: 12 Oct 2006
Posts: 3,127
|
04-09-2008 13:21
I think some awareness needs to be raised about an issue with the current viewer, RenderGlow, and llSetAlpha(). I know many, many creators use llSetAlpha() or llSetLinkedAlpha() to hide/show sections of builds, attachments, and for various other effects. What has always been nice is the alpha would override all other settings, texture, fullbright, ect, for a quick, effective transition. The way glow works currently breaks with that precedent. if an object has glow set, and you use llSetAlpha()/llSetLinkedAlpha() to hide it, the glow remains. There are good and bad points to this. But for those wanting to continue to use the hide/show functionality we have come to depend on, it means you are now limited. You either can't use glow, or you have to hard code a glow value into your scripts and double the number of calls per link. One call to hide or show the prim, and one call to set/remove the glow. After i recently discovered this issue, i was dismayed to find many had known all along, and instead of getting it fixed, they chose instead to bury the JIRAs and start using the bad behavior because they thought it was *neat*. I have reopened the JIRA, and made comments listing the problems with the behavior, and proposing a compromise which will meet the needs of *both* sides. I would ask people to go read, vote and give your thoughts. Thanks. http://jira.secondlife.com/browse/VWR-4008
|
|
Pale Spectre
Registered User
Join date: 2 Sep 2005
Posts: 586
|
04-09-2008 14:07
From: Darien Caldwell What has always been nice is the alpha would override all other settings, texture, fullbright, ect, for a quick, effective transition. The way glow works currently breaks with that precedent. ...I don't think that's quite true. Light isn't affected by alpha. To switch off lighting you might get the light value, before setting the lighting off. Then set the light value to those you previously remembered when bringing it back. All the settings can be made simultaneously with a single call to llSetPrimitiveParams. Why should glow behave differently to light? Is that not the precedent that glow is following?
|
|
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
|
04-09-2008 14:37
You can enable/disable glow by doing: llSetPrimitives([25, ALL_SIDES, 0.1]) 25 is the value of the currently missing PRIM_GLOW constant, ALL_SIDES is the side, and 0.1 is the glow value. Noticed this myself when doing some lights that appear at night but hide during the day =) [edit]Noticed that you seem to be aware of this, however you don't require two calls, you can do: llSetLinkPrimitiveParams( LINK_SET, [ PRIM_COLOR, ALL_SIDES, ZERO_VECTOR, 0.0, 25, ALL_SIDES, 0.0 ] ); This will complete hide the glow effect, and make the items invisible.
_____________________
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)
|
|
Psyra Extraordinaire
Corra Nacunda Chieftain
Join date: 24 Jul 2004
Posts: 1,533
|
04-09-2008 14:40
Actually some people like myself do use glow on prims that are otherwise alpha'ed... so there are legitimate reasons for keeping the two commands seperated. Sorry. ^^
_____________________
E-Mail Psyra at psyralbakor_at_yahoo_dot_com, Visit my Webpage at www.psyra.ca  Visit me in-world at the Avaria sims, in Grendel's Children! ^^
|
|
Darien Caldwell
Registered User
Join date: 12 Oct 2006
Posts: 3,127
|
04-09-2008 15:05
From: Psyra Extraordinaire Actually some people like myself do use glow on prims that are otherwise alpha'ed... so there are legitimate reasons for keeping the two commands seperated. Sorry. ^^ I never said anything about not allowing alpha and glow, i agree it's useful. but you should still be able to hide a prim fully by setting alpha to 100%, as stated in my comments. I'm really surprised people are interested in implementing a less flexible, more script intensive solution, rather than a more flexible, less script intensive solution. I really can't understand the logic there. Has anyone actually read what I wrote in the JIRA? I'm beginning to think not.
|
|
Darien Caldwell
Registered User
Join date: 12 Oct 2006
Posts: 3,127
|
04-09-2008 15:08
From: Haravikk Mistral You can enable/disable glow by doing: llSetPrimitives([25, ALL_SIDES, 0.1]) 25 is the value of the currently missing PRIM_GLOW constant, ALL_SIDES is the side, and 0.1 is the glow value. Noticed this myself when doing some lights that appear at night but hide during the day =) [edit]Noticed that you seem to be aware of this, however you don't require two calls, you can do: llSetLinkPrimitiveParams( LINK_SET, [ PRIM_COLOR, ALL_SIDES, ZERO_VECTOR, 0.0, 25, ALL_SIDES, 0.0 ] ); This will complete hide the glow effect, and make the items invisible. I agree about light. However glow is on the texture pane, not the pane where light is, so to me that indicates it should follow how the other parameters on that page work. IF they want it to be a form of light, put it on the other pane. As well, light only affects surrounding objects, it doesn't make the object the light is coming from visible. Also, which is less script intensive, your llSetLinkPrimitiveParams() call, or the call to llSetLinkAlpha() that used to be sufficient? It's going to be sad when I have to tell my customers they can't use glow on their items as I'll have to clear it off during every hide. 
|
|
Darien Caldwell
Registered User
Join date: 12 Oct 2006
Posts: 3,127
|
04-09-2008 15:25
It seems this is now a moot issue, as BigPapi Linden has outlined why there are technical limitations preventing it from working as hoped. I and others will just have to work around this issue. Thanks everyone.
|
|
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
|
04-09-2008 15:26
From: Darien Caldwell as I'll have to clear it off during every hide.  That's what llGetPrimitiveParams is for ^^ Though that's only of use for one-prim items unless you use multiple scripts. I'm just not sure that it should be removed with texture alpha, it seems to me that it's neither a light, nor a texture effect, but rather a surface glow.
_____________________
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)
|