User:Darien Caldwell/New Materials

From Second Life Wiki
Jump to navigation Jump to search

•LSL support for materials is in testing

•Certain Aditi regions (DRTSIM-253 channel, presently) have LSL support for materials

•Regions “roller-test102″ and “roller-test103″ are on this channel

•This is still a work-in-progress – testing is still underway

•Materials can be added to object faces with llSetPrimitiveParams() functions

•[PRIM_SPECULAR, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossy, integer environment]

•[PRIM_NORMAL, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians]

•[PRIM_ALPHA_MODE, integer face, integer alpha_mode, integer alpha_cutoff]

•Valid alpha_mode options are PRIM_ALPHA_MODE_NONE, PRIM_ALPHA_MODE_BLEND, PRIM_ALPHA_MODE_MASK, PRIM_ALPHA_MODE_EMISSIVE


•Materials can be read with the various llGetPrimitiveParams() functions

•[PRIM_SPECULAR, integer face] returns [string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossy, integer environment]

•[PRIM_NORMAL, integer face] returns [string texture, vector repeats, vector offsets, float rotation_in_radians]

•[PRIM_ALPHA_MODE, integer face] returns [integer alpha_mode, integer alpha_cutoff]


•Behavior for both getting and setting materials parameters should basically correspond to behavior with PRIM_TEXTURE

•The color vectors use 0.0-1.0 as the range, as with llSetColor()

•The integer parameters for PRIM_SPECULAR correspond to the same values that you see in the build tool

•Components of a material can be ‘reset’ as follows:

• •PRIM_NORMAL and PRIM_SPECULAR settings are set to ‘default’ values by setting the texture to NULL_KEY

•PRIM_ALPHA_MODE settings are set to ‘default’ values by setting the alpha_mode to PRIM_ALPHA_MODE_BLEND

•mask_cutoff is actually reset to 0 unless the alpha mode is PRIM_ALPHA_MODE_MASK

•When PRIM_NORMAL, PRIM_SPECULAR, and PRIM_ALPHA_MODE settings are all set to ‘default’ values, the material is deleted from that prim face, and LI may be updated accordingly

•Known issues

•There is a viewer rendering issue, where the face will not be rendered and you’ll see log spam (BUG-6187),

•If the viewer has ALM enabled

•and a prim face has a material on it

•and PRIM_ALPHA_MODE is PRIM_ALPHA_MODE_BLEND (this is the default after a material is added)

•and the diffuse texture does not have an alpha channel (e.g. plywood)

•The version currently on Aditi lacks proper throttling, so there could be performance issues if scripts behave badly