But what exactly does it all mean for those of us who have only a passing interest in such things? What will be the impact on the consumers among us rather than the content creators? What are we going to be seeing, what do we need to be aware of?
There are a lot of very basic questions such as these that are being asked – some of which are, in fairness, addressed in the SL mesh wiki pages (albeit with a lot of techspeak) – so I thought I’d try to put together a very simple outline of some of the key aspects to it all.
Note that this is not in any way a technical discourse on mesh and its pros and cons or how to create and upload mesh objects – articles penned by others far more competent than I are available in a number of blogs. Nor is it meant to be an exhaustive overview of mesh. It is simply a primer on the subject from the point-of-view of the consumer rather than the creator, and a look at what some of the fuss (good and bad) is about.
What is mesh?
A mesh – or rather a polygon mesh – is a means of generating 3D computer graphics. Polygon meshes come in a variety of forms, and can be created using a range of software applications. Second Life actually already uses meshes to some degree: avatars, for example are basic mesh objects. “Mesh” within Second life therefore really refers to the ability for users to create polygon mesh objects using suitable 3D rendering tools and then import them into Second Life for general use.
Why have mesh?
Second Life has often been critiqued for it’s somewhat primitive look: the in-world tools and shapes can be very limiting when it comes to trying to replicate more organic, natural, and real-world shapes. The use of mesh should allow content creators and Second Life users to import far more realistic-looking objects and items, overcoming this perceived limitation.
Three types of mesh can be imported into Second Life:
- A simple mesh is a mesh with a single face. It can have a single colour and texture
- A multi-face mesh is a mesh that can have multiple colours and textures
- A rigged mesh is a mesh that conforms to your joints and motions. This means that you can wear a rigged model that changes the length and orientation of your avatar’s limbs and animates accordingly.
Note: it is possible for a mesh object to be a combination of these types; it can, for example be a multi-face rigged mesh, like “Seymour” in the image above. Meshes can also be textured prior to upload, as a part of the creation process, or once in-world.
Mesh objects for use in SL can be created in any 3D modelling tool that support the use of Collada 1.4 .DAE files for export. Such tools include high-end applications such as Autodesk Maya ($3,000+) through to the free tools like Blender and
Google’s Sketchup. Linden Lab maintain a list of suitable applications on their wiki pages.
Common terms associated with mesh
Those familiar with building in SL may find it easier to consider mesh in the following ways:
- Mesh - A collection of triangles with a single transformation matrix, roughly analogous to a “Prim” in SL (although not necessarily the equivalent of a prim – see PE, below).
- Submesh - A subset of a mesh, equivalent to a face/side on a normal prim.
- Model - A mesh or collection of meshes, equivalent to a coalesced (or linked) prim object.
PE – Prim Equivalence (now Land Impact)
Prim Equivalence (or to give it the official title: Prim Equivalent Weight) – abbreviated to PE, is one of the most important concepts for the “casual” mesh user / consumer, as well as a vital consideration for mesh creators. It has also been the subject of much controversy even before mesh has been launched on the Main grid. So with these points in mind, excuse me if I go on about it at some length.
Basically, PE is a means of trying to ensure that mesh objects and traditional prim objects receive fair shares of Viewer and server resources. Perhaps the easiest way to understand PE is to think of it as the number of prims that would be required to achieve the same level of detail, were they to be used instead of the mesh object.
PE itself is arrived at by taking the highest result from three performance weighting calculations made at the time a mesh is uploaded to Second Life. These are:
- The server weight – (also referred to as the simulation weight in the wiki) the impact an object has on the server-side resources needed to manage it.
- The streaming weight – essentially the bandwidth required for an object to be downloaded to your Viewer and rendered. Basically, the more complex the object = the higher the streaming weight
- The physics weight – possibly the hardest to grasp, refer to the complexity of an object’s physics model. (This is also where Viewer developers have issues with coding their Viewers to enable mesh uploads, as I’ve reported on previously, as the code used by LL to calculate the physics weight utilises the Havok physics engine, which is not open-source. Therefore TPV developers need to find a means of calculating the physics weight either by using a suitable open-source physics engine, or by obtaining a Havok license.)
These weightings are calculated based on the complexity of the mesh itself and how well it has been defined and optimised during the creation process; they can also (in the case of the streaming and physics weights) be adjusted during the upload process. Get everything right, and a mesh object should have a manageable PE value. Get anything wrong, and one can end up with a horribly-massive PE count.
And even when it is done right, it is possible for an object to still end up with a PE count in the high hundreds, or for a mesh object to come off less favourably than it’s prim / sculptie equivalent (take a mesh tree with a PE of 9 or 10; are you more likely to buy that, or a sculptie tree that is just 1 or 2 prims, even if it is of a potentially lower visual quality?).
The PE for a mesh object can be seen using the Build menu of any mesh-capable Viewer, as shown below.
Note: if you are using Kirstenlee’s Viewer (21 Build 9 upwards), you will also see the mesh object’s rendering cost and physics weight. These can be turned on in the mesh-enabled Viewer 2 by going to ADVANCED -> DEBUG SETTINGS and setting ShowAdvancedBuilderOptions to TRUE.
Are the physics weight and rendering cost important? Yes and not so much.
- Yes because an vehicle designed to be physical (movable) must have a physics weight of 32 or below (regardless of the PE value). Ergo, it is useful for content creators to have access to this figure post-upload. This figure might be of interest to consumers, but frankly, if the vehicle in question moves as intended, then displaying the physics weight in things like vendor boards is of questionable need
- Not so much because the rendering cost is for informational purposes only, and is not used as a physical measure (although doubtless it stands the risk of becoming a measure of controversy, much like ARC).
So, from the consumer’s perspective, the most important aspect of PE that must be grasped is that: it is not the “prim count” on a mesh object that is important – it is the PE value. As such, it marks a fundamental change to the way we’ve traditionally looked at object prim counts, and must be communicated utterly and completely clearly to the consumer community. The onus for doing this lies predominantly with Linden Lab – although obviously, content creators should ensure they display the PE count for their products when selling them.
In fairness, this actually cuts both ways, as a properly optimised mesh object can have a PE that is less than its “prim count”. Take the palm tree on the left, for example (created by Don Linden). It has a “prim count” of 15, but a PE of just 9; so it will effectively “take up” 9 prims when rezzed in-world, and not 15 as suggested by the prim count.
Finally, in rounding-out the discussion of PE, it would also be remiss of me not to cover a couple of additional points.
- Like prim attachments, mesh objects worn by avatars do not count against the prim count for a parcel of land. Therefore, the PE for worn mesh attachments is not as critical as it is for objects rezzed in-world.
- PE will most likely impact the price of mesh objects. This is because the upload price for mesh creations is calculated at
L$150 x PE. So, an item with a PE of 33 will cost L$4950 to upload, while an item with a PE of 350 (such as a house) will cost L$52,500, and content creators will understandably have to factor these costs into the price of their creations(see updates at the end of this article for the latest on charges.)
Mesh: advantages and current issues
Mesh objects should, if properly optimised, not only improve the look of Second Life, but also improve overall SL performance. This is because they should, in theory, put less strain on the server-side of things, free up resources, and have improved rendering at the client end of things. Mesh objects should also have superior physics compared to other objects in SL, allowing for improved avatar / object interactions (no more having your avatar appear to “bounce” when walking up a set of stairs or from the floor on to a carpet, etc.).
However, there are caveats to these benefits, not the least of which is the degree of skill, time and effort required to produce and upload meshes in order to achieve hoped-for goals. Certainly, if done right, there is no reason why a mesh house, for example, cannot have a very high level of detail, incorporate shapes that cannot be easily replicated using other means within SL, but at a cost that is equivalent to, or even less than, a similar house built using prims and sculpties.
But this does depend on people ensuring the get fully to grips with what is, to many in SL, an arcane science. Not everyone might be minded to learn all the ins and outs of mesh creation; others may opt to forego it altogether and stick with more “traditional” means of content creation and the increase to the maximum prim size (64x64x64m) that will accompany the introduction of mesh. Others may find the constraints currently placed upon mesh use simply too limiting; these currently include:
- Mesh clothing cannot be easily re-sized to fit your specific avatar shape in-world as there is currently no deformer / cage capability in SL to handle this
- Resizing of in-world mesh objects (such as building components, were they to be made) is also problematic: stretching or resizing a mesh item could drive up its PE value
- Linking complex prims like the torus to mesh objects in-world is not advisable as it can cause the mesh object’s PE to increase; if the prim has been tortured (sliced, twisted, etc), the increase to PE can be quite large.
But issues and concerns aside, some things within Second Life do stand to get a boost from mesh.
- Buildings and vehicles stand to gain a lot, simply because of the levels of realism that can be achieved with them.
- Furniture should also benefit: a sofa with a PE of 6-9 would match its sculptie cousin, but potentially be of a far higher level of detail and be more flexible in terms of texturing.
- Avatar attachments stand to gain as well, particularly smaller items such as jewellery and hair.
Rigged avatars should also prove popular – robots, etc. However, this all hinges on exactly how customisable the avatar rigs will be – after all, while robots can all tend to be alike, it is doubtful someone buying, say, a wolf avatar is going to want to look exactly like the other 2,000 users who have purchased the same avatar mesh…
Positive if worried
The majority of mesh content creators I’ve spoken to so far remain positive about mesh while acknowledging (indeed, highlighting) the issues I’ve touched upon here. Despite the complexities of actually getting a mesh object from their programme of choice, optimised and uploaded into SL in usable form, most define their view of mesh as “positive, if a little worried”.
Part of this worry is related to what will happen to content creation as a whole as mesh matures in Second Life should highly-skilled 3D modellers find the environment attractive as a means of making money. Will it in time see something of a demise within some aspects of the more traditional means of content creation as (/if) mesh capabilities improve and become more flexible? Could it eventually see elements of creativity within Second Life fade away, reducing its impact as a shared creativity tool?
Maxwell Graf, talking to me on the subject last night summed concerns up quite well. “The bottom line for me is this: I would prefer to build in mesh. Its better all the way around, and its what the rest of the world uses, its not a walled garden. My concern is how LL will implement it, and what effect it will have on our walled garden. Many plants can die when you introduce a non-native species into the garden.”
My thanks to all who helped with this item; those of you on the Beta grid and in the Main grid mesh sandboxes; your views and explanations of some of the more arcane aspects of mesh may not have made it into this piece, but they did help me understand the issue a lot more. Extra special thanks go to Max for patience and forbearance with my novice views on things.
- 1st August, 2011: updated to provide further information on physics weight and rendering cost, as displayed by the Build menu in the Viewer.
- 17th August, 2011: during the “Future of Mesh” presentation at SLCC 2011, Charlar and Runitai Linden dirrectly addressed a number of points that impact this article:
- The upload fee will now not be $150 x PE. This was discussed as a part of the Beta programme, but the initial fee will not be based on the L$150 figure, although no precise figure was supplied
- Google Sketchup is not recommended for the creation of mesh object for use in SL, as the Sketchup exporter does not create content that is efficient for the SL importer
- Charlar suggested that those wishing to try-out 3D content creation should try Wings 3D, which is available for Windows, Mac and Linux