Importing Mesh to Second Life and OpenSim

This is a page of resources related to creating mesh models suitable for upload and use in Second Life and OpenSim.

Beq Janus Advice

Beq Janus, who improved the mesh uploader now in use in Second Life/OpenSim viewers, and hence understands the limits, offered this advice…

  • Mesh limits more correctly should be interpreted as applying to each mesh element, not the whole model.
  • It is each sub-mesh in a model that has a 64K vertex limit because as you might surmise there is a 16bit index involved.
  • Every material is split into a separate mesh because it will enter the renderer differently depending on its nature (alpha blended, bump mapped, etc).
  • If a hard-surface model approaches the limits you need to go back to the drawing board… it is not a good model for any gaming platform.
  • Nurb models are certainly not allowed.
  • The models need to be triangulated too, not quads, you can let the uploader do that for you but frankly I would never leave a job like that to be done automatically.
  • You will need to take your curve based models and convert them to mesh. Again, even if you did have the option to convert on import the viewer would have to decide on the sampling frequency and you’d lose control of how it appears.

Collected Hints

  1. Any 3D modelling software will work, as long as it can output models in COLLADA (.dae) format. Note: Second Life uses COLLADA 1.4.1. (see Second Life Wiki – Mesh Background Information
  2. A “model” can have many separate “mesh” parts in it.
  3. The maximum mesh asset size after compression is 8MB, roughly equivalent to a 256MB raw COLLADA file. An entire region can support up to 128MB of distinct mesh assets after compression, not including attachments.
  4. A single convex hull is limited to 256 triangles.
  5. Maximum number of vertices is limited to 65,536.
  6. Scale limit is set to 64 meters.
  7. Take care to create low polygon meshes (as few verts as possible).
  8. Use no more than 8 face textures (8 materials assignments) on any mesh. These will import as “faces” in Second Life/OpenSim, which can be individually textured. You need to create a UV mapping for your model and its mesh parts which defines what part of the texture will go on which polygons of each mesh.
  9. Avoid intersecting faces (unless intersections are intended).
  10. Avoid duplicate vertices (unless you want to use the split modifier).
  11. Avoid creating more than 21844 tris per texture face.
  12. Avoid creating extremely small polygons (< 0.1 cm edge length).
  13. Make sure the objects, materials, submaterials and textures in the meshes do not contain any spaces. (so not “Box 001” which will give the “Error: element is invalid”, but “Box001” or “Box_001”).
  14. You can use any of the modelling tools while working on your model, but in the final form it should be saved before export as an Editable Poly.
  15. Before you export your mesh, make sure that it doesn’t have any stray vertices or overlapping edges. These will either cause unexpected visual results in Second Life or worse, the mesh will fail to upload entirely.
  16. For all meshes, make sure that the “Up Axis” is set to “Z-up”. If the axis isn’t set to Z-up, the mesh axis will be flipped on its side and/or rotated in Second Life/OpenSim.
  17. Advice on Levels of Detail (LOD)… note the need for the bounding box to be identical in all models, and all LODs to have same number of textures. See http://wiki.secondlife.com/wiki/Mesh_and_LOD.
This entry was posted in OpenSim, Second Life and tagged , , , . Bookmark the permalink.