Good Building Practices: Difference between revisions
Hyper Mole (talk | contribs) No edit summary |
Hyper Mole (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
Physics Optimization: | Physics Optimization: | ||
(See handy script at bottom of page) | (See handy script at bottom of page) | ||
'''NOTE: Setting prims to Phantom does not stop them from being calculated by the physics engine!''' | |||
The less the physics engine has to calculate, the smoother your region will perform. Creating clean low poly physics shapes for your meshes is helpful, but you can also remove prim, mesh, and sculpted objects from the physics calculations completely. | The less the physics engine has to calculate, the smoother your region will perform. Creating clean low poly physics shapes for your meshes is helpful, but you can also remove prim, mesh, and sculpted objects from the physics calculations completely. | ||
Revision as of 13:09, 7 April 2012
Physics Optimization:
(See handy script at bottom of page)
NOTE: Setting prims to Phantom does not stop them from being calculated by the physics engine!
The less the physics engine has to calculate, the smoother your region will perform. Creating clean low poly physics shapes for your meshes is helpful, but you can also remove prim, mesh, and sculpted objects from the physics calculations completely.
-
Two trees set to Prim
-
Physical shape of trees
-
Results in the navmesh
Link your complicated geometry to simple shapes. Here we linked to a cube and set all child prims to physics shape type None (in Edit > Features > Physics Shape Type):
-
No physics on trees
-
Navmesh sees only cube set to Prim
To simulate a physics shape and keep avatars from walking through your optimized object, just add physics where it's needed.
-
Adding physics
-
As seen by physics engine
-
As seen by the navmesh
Here is another example scenario. This is a sculpted prim fence. The physics shape is not as clean as it could be, and the edges don't cover all edges of the fence itself. To fix it, I created a cube physics shape, linked the fence to the cube with the cube as the root prim, and set the fence to Physics Shape Type: None. As you can see, the resulting physics shape is lower in polygons and better covers the fence area.
-
Sculpted fence physics shape
-
Adding cube physics shape
-
Final Static Object physics shape
This is a tree comprised of many sculpted pieces. Keep in mind that the physics engine needs to calculate every part of the physics shape in the second picture. Here I created a cylinder for the physics shape to fit on the bottom of the tree trunk. By linking the cylinder to the tree, and setting the tree to physics shape none, I have a much cleaner static object.
-
Sculpted Tree
-
Un-optimized sculpted tree physics shape
-
Adding simplified physics to tree, setting to root
-
Final tree physics set to static obstacle
Use the following script to set all child prims to None. Be sure to check what physics are needed for your linkset prior to using, and/or add a simple cube as the root prim. <lsl> default {
state_entry() { llShout(0, "Setting all child prims to PRIM_PHYSICS_SHAPE_NONE"); llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN, [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE]); llRemoveInventory(llGetScriptName()); }
} </lsl>