What is mesh?

Wireframe showing triangular meshes

Wireframe showing triangular meshes

Although ‘mesh’ was touted and hyped as ‘the next big thing’ in Second Life a couple of years back (August 2011), in fact everything in Second Life, OpenSim, and pretty much every other 3D virtual environment, is made of mesh and always has been. And that includes the standard basic prims as well as ‘sculpties’ (see later). A basic box prim, for example, is made up of 24 triangles. Switch to wireframe mode in your viewer and you’ll see what I mean.

And, yes, even your avatar is mesh!  You’ll find a couple of straightforward introductions to mesh here:


and here:


So what was all the hype and fuss about when Linden Lab announced the coming of ‘mesh’? Well, the basic prim types of Second Life were both limited and limiting. Having the basic Lego-like building blocks lowered the entry barrier for building in Second Life–no special skills or knowledge were needed, so pretty much anyone could create content–but it meant that a simple object (a table, for example) of 72 triangles built from cubes would use up 3 (linked) primitives rather than being a single object.

Second Life allows you 15,000 prims per region. OpenSim is more generous in allowing up to 100,000 prims per region (in Kitely, for example). This may sound a lot; but you should be aware that performance degrades with higher prim usage (as well as with large textures, scripted objects, and the number of avatars): you experience ‘lag’. Screenshot 14:03:2013 11:27And it’s very easy to use up a lot of prims very quickly. A single chair might be perhaps a modest 9 prims; but build a conference room with 40 chairs, walls, flooring, doors, podium, display panel, and other furnishings, and you could be up close to 500, or 600, or maybe 1000 prims before you know it. (The new term for prim count is Land Impact, which roughly means “how many prims are actually deducted from your total available in About Land”.  The basic prim objects have a land impact rating equal to the number of prims they contain.) So you should always be aiming for a low-lag “low land impact”, i.e., creating content that uses as few prims as possible and that has the lowest impact on performance and on land use.

An important way of accomplishing this is to use 3D models created with external modeling programmes such as Blender, 3D Studio Max, Maya, or Wings 3D. To this end, Linden Lab originally made available to content creators (via the Build window) a special kind of primitive called a sculpted prim (or ‘scultpie’), a three-dimensional mesh created from a special kind of texture called a ‘UV-texture’ which defines the mapping between plain texture files and the object surface. However, a sculpted prim has exactly and inflexibly 2048 triangles—far more than would be needed for most of the things (a cushion or a pillar, for example) one makes with sculpties.

With the introduction of mesh a couple of years back sculpties are now deprecated, though for historical reasons you might wish learn a little more about them and about applications such as Sculptypaint, a Java™ programme for creating sculpt maps for Second Life:

Importing 3D objects

You may have created models in 3D Studio Max, Blender, Maya, SketchUp, or similar. (A list of 3D modeling packages that can export mesh can be found on the Second Life wiki.)  You’ll export these in Collada digital asset exchange format so that you’ll then be able to import them as meshes into OpenSim, Open Wonderland, Unity, or whatever your platform of choice. This also means, of course, that you’ll be able to copy assets between any of these worlds.

So what is Collada? it’s the lingua franca, the philosopher’s stone, of 3D objects.  Collada (short for COLLAborative Design Activity) defines an open standard digital asset XML database schema for interactive 3D applications enabling the exchange of digital assets between applications without loss of information. Or, to put it more simply, Collada provides an application-independent schema for representing 3D objects. This means that you can create a model in, say, Blender, export to Collada (as a .dae file, i.e. ‘Digital Asset Exchange’ format) and import into, for example, OpenSim.

Before you are allowed to upload mesh objects to Second Life you are required to complete a tutorial-cum-quiz on copyright. This is Linden Lab’s precaution against you uploading models and logos that might infringe the copyright of others. You’ll see the following screens:

Mesh Upload Status_ Christopher | Second Life

and then:

IP Tutorial Start_ 2

and then ten pages of tutorial with quiz. Once you have completed this, you may then upload your models.

A word of advice: the Second Life upload fee for mesh is not the standard L$10 you’d pay for images and sounds but rather calculated per upload on a ‘weight’ basis (see below), and can be costly.  So you may prefer to upload mesh to your OpenSim region or to the free Second Life Preview grid.

Choose Build > Upload > Mesh Model from your viewer menus, and select a Collada .dae file from your hard drive; the following window will then appear:

Upload mesh

You’ll probably want to change the model name to something meaningful; and you should also choose a model type from the pull-down ‘This model represents’ menu.  The Levels of Detail determine what your model looks like from various distances. As you get farther away from a model, it renders in less detail to boost visual performance. Second Life generates these lower detail models by default, but you may use this step to tweak each level or even upload your own lower detail models. You can preview your model at any level of detail by clicking High, Medium, Low, or Lowest.  You might also, under the Physics tab, choose ‘Level of detail’—’medium’ should generally suffice.  But don’t worry about the other parameters at this stage.

Now click ‘Calculate weights and fee’.  You’ll then see, at the bottom of the window, the upload cost and the Land Impact (as the highest of the three server-side measures—this is explained in more detail below).  Finally, click ‘Upload’, and find your model in your Inventory.

Screenshot 14:03:2013 15:07

How is Land Impact calculated?  Let’s have a comparative look at the model below against the 3-prim barrel in the earlier screenshot.

Screenshot 14:03:2013 15:13

In calculating Land Impact, the three server-side values we care about here are Download (a measure of how much bandwidth is needed to send out the information about an object so that everyone can see it), Physics (how difficult the object is for the physics and Havok processes to create, track, and update), and Server (how difficult the object is for the server processes to create, track, and update).  Land Impact is the highest of these server-side weights.  (Display is client-side, indicating how difficult it is for your viewer to draw / render the object; and thus has no implications for Land Impact.)  You’ll see in the highlighted server-side fields in the table below that the highest value for the linked object is 15.8 (Physics) compared with a meagre 4.6 for the equivalent mesh object.

Linked prims Mesh object
Number of objects you have selected
1 1
Number of total prims you have selected
3 1
For individual objects, the highest of download, physics, or server weight determines the object’s land impact
Download weight of the selected objects
1.1 2.4
Physics weight of the selected objects
15.8 4.6
Server weight of the selected objects
1.5 0.5
Display weight of the selected objects. This weight does not affect land impact
844 899
A land parcel’s land capacity determines how much land impact it can support from objects rezzed upon it
Total land impact rating of the selected objects
3 5
Rezzed on land
Land impact of objects on the current land parcel
10848 10859
Remaining capacity
Remaining land capacity on the current land parcel
4162 4141
Total capacity
Total land capacity of the current parcel
15000 15000

… all briefly summed up in the following video:

Importing Google Sketchup models

@@@@ [t.b.c.]

Mesh Studio

Mesh Studio is an in-world gadget that will allow you to take a prim build and, via the application of a LSL script, convert it to a mesh.  In essence, you’ll drop the script into the Content tab of the root prim of your linked object, close the Edit window, click the object, and grab the download URL sent to local chat.  The mesh model downloads as a .dae file to your hard drive; you can then upload it as a mesh model into Second Life.  A nifty tool but expensive, and really only useful for converting linked objects you’ve already created in-world.  Otherwise, it makes better sense simply to use an in-world modeling package to create your model.

Readings and references

Linden Lab, Mesh

Linden Lab, Mesh/Exporting a mesh from SketchUp

Linden Lab, Calculating land impact


VRshed, SketchLife



Inara Pey, ‘A very simple guide to mesh in SL’
As the title of the post says, this is a simple guide; but one that also tells you most of what you need to know.

Model libraries

The COLLADA Test Model Bank

Google, Trimble 3D Warehouse

The Free 3D Models
» (select DAE from the pull-down menu)

Both free and paid models

Both free and paid models

Intellectual property and copyright: some references

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s