Difference between revisions of "LlSetAlpha"

From Second Life Wiki
Jump to navigation Jump to search
(fix bug in cloak function; would not fully cloak object before (left alpha at 0.1))
(Add Blinn-Phong terminology to page following PBR release.)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{LSL_Function/face|face}} {{LSL_Function/alpha|alpha}} {{LSL_Function
{{LSL_Function
|inject-2={{LSL_Function/face|face}}{{LSL_Function/alpha|alpha}}
|func_id=51|func_sleep=0.0|func_energy=10.0
|func_id=51|func_sleep=0.0|func_energy=10.0
|func=llSetAlpha|sort=SetAlpha
|func=llSetAlpha|sort=SetAlpha
Line 5: Line 6:
|p2_type=integer|p2_name=face
|p2_type=integer|p2_name=face
|func_footnote
|func_footnote
|func_desc=Sets the '''alpha''' on '''face'''
|func_desc=Sets the [[PBR_Materials#Nomenclature_changes|Blinn-Phong]] {{LSLP|alpha}} on {{LSLP|face}}
|return_text
|return_text
|spec
|spec
|caveats
|caveats
|constants
|constants
|examples=<lsl>
|examples=<source lang="lsl2">
float cloakSpeed = .1;
float cloakSpeed = 0.1;


default
default
{
{
     touch_start(integer total_number)
     touch_end(integer total_number)
     {
     {
        integer x;
         float alpha = 1.0;
         float xf;
         while(alpha > 0.0)
         for (x=9; x>=0; x--)
         {
         {
             xf = x * .1;
             alpha -= 0.1;
            llSetAlpha(alpha, ALL_SIDES);
             llSleep(cloakSpeed);
             llSleep(cloakSpeed);
            llSetAlpha(xf,ALL_SIDES);     
         }
         }
         state cloaked;
         state cloaked;
Line 31: Line 31:
state cloaked
state cloaked
{
{
     touch_start(integer total_number)
     touch_end(integer total_number)
     {
     {
        integer x;
         float alpha;
         float xf;
         while (alpha < 1.0)
         for (x=1; x<11; x++)
         {
         {
             xf = x * .1;
             alpha += 0.1;
            llSetAlpha(alpha, ALL_SIDES);
             llSleep(cloakSpeed);
             llSleep(cloakSpeed);
            llSetAlpha(xf,ALL_SIDES); 
         }
         }
         state default;
         state default;
     }
     }
}
}
</lsl>
</source>
|helpers
|helpers
|also_functions=
|also_functions=

Latest revision as of 13:25, 1 December 2023

Summary

Function: llSetAlpha( float alpha, integer face );

Sets the Blinn-Phong alpha on face

• float alpha from 0.0 (clear) to 1.0 (solid) (0.0 <= alpha <= 1.0)
• integer face face number or ALL_SIDES

If face is ALL_SIDES then the function works on all sides.

Caveats

  • The function silently fails if its face value indicates a face that does not exist.
All Issues ~ Search JIRA for related Bugs

Examples

float cloakSpeed = 0.1;

default
{
    touch_end(integer total_number)
    {
        float alpha = 1.0;
        while(alpha > 0.0)
        {
            alpha -= 0.1;
            llSetAlpha(alpha, ALL_SIDES);
            llSleep(cloakSpeed);
        }
        state cloaked;
    }
}

state cloaked
{
    touch_end(integer total_number)
    {
        float alpha;
        while (alpha < 1.0)
        {
            alpha += 0.1;
            llSetAlpha(alpha, ALL_SIDES);
            llSleep(cloakSpeed);
        }
        state default;
    }
}

Notes

In practical terms, "alpha" means "transparency" or "visibility".

To be clear, llSetAlpha will only affect the prim that the script it is in. It will not affect any linked prims. To set the alpha state for those, use llSetLinkAlpha

See Also

Events

•  changed CHANGED_COLOR

Functions

•  llGetAlpha Gets the prim's alpha
•  llGetColor Gets the prim's color
•  llSetColor Sets the prim's color
•  llSetLinkColor Sets link's color
•  llSetLinkAlpha Sets link's alpha

Articles

•  Translucent Color

Deep Notes

Search JIRA for related Issues

Signature

function void llSetAlpha( float alpha, integer face );