LlSetPhysicsMaterial
From Second Life Wiki
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Contents |
Summary
Function: llSetPhysicsMaterial( integer mask, float gravity_multiplier, float restitution, float friction, float density );Used to set the physical characteristics of an object.
| • integer | mask | – | bitwise combination of DENSITY, FRICTION, RESTITUTION, and GRAVITY_MULTIPLIER and specifies which floats to actually apply | |
| • float | gravity_multiplier | – | range [-1.0, +28.0], default: 1.0 | |
| • float | restitution | – | range [0.0, 1.0], default: [0.3, 0.9] [1] | |
| • float | friction | – | range [0.0, 255.0], default: [0.2, 0.9][1] | |
| • float | density | – | range [1.0, 22587.0] kg/m^3, default: 1000.0 |
The default values for friction and restitution depend upon the material type.
| mask Flags | V | Description | |||||
|---|---|---|---|---|---|---|---|
| DENSITY | 1 | Indicates that density parameter is enabled and will override the previous value. | |||||
| FRICTION | 2 | Indicates that friction parameter is enabled and will override the previous value. | |||||
| RESTITUTION | 4 | Indicates that restitution parameter is enabled and will override the previous value. | |||||
| GRAVITY_MULTIPLIER | 8 | Indicates that gravity_multiplier parameter is enabled and will override the previous value. | |||||
Caveats
- A collision between two objects with restitution 1.0 will still not be perfectly elastic due to damping in the physics engine.
- Using PRIM_MATERIAL to set the material type will reset the values for friction and restitution to that material's defaults.
Examples
- Basic Example
llSetPhysicsMaterial(FRICTION, 1.0,0.9,0.1,0.5); // Sets FRICTION to 0.1
- Multiple Settings
llSetPhysicsMaterial(GRAVITY_MULTIPLIER | RESTITUTION | FRICTION | DENSITY, 0.5,0.9,0.1,1.0);
Deep Notes
Material Defaults
Using PRIM_MATERIAL changes the the values for friction and restitution to the values listed for the material type.
| material Flags | Description | Friction | Restitution | ||||
|---|---|---|---|---|---|---|---|
| PRIM_MATERIAL_STONE | 0 | stone | 0.8 | 0.4 | |||
| PRIM_MATERIAL_METAL | 1 | metal | 0.3 | 0.4 | |||
| PRIM_MATERIAL_GLASS | 2 | glass | 0.2 | 0.7 | |||
| PRIM_MATERIAL_WOOD | 3 | wood | 0.6 | 0.5 | |||
| PRIM_MATERIAL_FLESH | 4 | flesh | 0.9 | 0.3 | |||
| PRIM_MATERIAL_PLASTIC | 5 | plastic | 0.4 | 0.7 | |||
| PRIM_MATERIAL_RUBBER | 6 | rubber | 0.9 | 0.9 | |||
| | 7 | light, DEPRECATED: Looks the same as [ PRIM_FULLBRIGHT, ALL_SIDES, TRUE ] | |||||
llSetPhysicsMaterial cannot use these flags.
History
- Content taken from Release Notes/Second Life Server/11#11.09.23.241511
- Documentation expanded with information from Physics Material Settings test.
Tests
| • | Physics Material Settings test |
Footnotes
- ^ The default values for friction and restitution depend upon the prim's material.
- ^ The ranges in this article are written in Interval Notation.
This article wasn't helpful for you? Maybe the related article at the LSL Wiki is able to bring enlightenment.
Categories: Articles in need of version number/LSL | LSL Functions | LSL Parameters/mask | LSL Parameters/gravity multiplier | LSL Parameters/restitution | LSL Parameters/friction | LSL Parameters/density | LSL Keywords/All | LSL Functions/Without IDs | LSL Physics | LSL Material | LSL Physics/Material

