What is mesh?
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:
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’. And 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:
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:
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.
How is Land Impact calculated? Let’s have a comparative look at the model below against the 3-prim barrel in the earlier screenshot.
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
Number of total prims you have selected
|WEIGHTS OF SELECTED|
|For individual objects, the highest of download, physics, or server weight determines the object’s land impact|
Download weight of the selected objects
Physics weight of the selected objects
Server weight of the selected objects
Display weight of the selected objects. This weight does not affect land impact
|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
|Rezzed on land
Land impact of objects on the current land parcel
Remaining land capacity on the current land parcel
Total land capacity of the current parcel
… all briefly summed up in the following video:
Importing Google Sketchup models
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/Exporting a mesh from SketchUp
Linden Lab, Calculating land impact
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.
The Free 3D Models
» http://thefree3dmodels.com/stuff (select DAE from the pull-down menu)
Both free and paid models
Both free and paid models
Intellectual property and copyright: some references