Tests of Mesh Import to Second Life Beta Grid and OpenSim 0.7.1 Live Grid

Tests on 26-Oct-2010 of Mesh import to Second Life Beta Grid and live 0.7.1 OSGrid using current SL Viewer Beta 2.2 for Mesh Support. See http://wiki.secondlife.com/wiki/Mesh for more information.

Tested successfully on both grids with very simple meshes and plain coloured texturing from tutorials at: http://wiki.secondlife.com/wiki/Mesh_Walkthrough:_Mesh_Tour

Original Supercar 3D Model from Cinema 4D: created in 1998 by Mick Imrie and Austin Tate. See http://www.aiai.ed.ac.uk/~bat/GA/supercar-3d.html

Exported to 3DS format, and then through Blender and exported to Collada 1.4 .dae format.

The mesh was imported using the upload facility in the Beta Test Mesh Viewer. There were quite a few failures in upload in both Second Life and OpenSim. So some elements of the model are missing in the uploaded mesh.

The model as seen in the Second Life Viewer Mesh Beta is rendered in a reasonable fashion and is shown here after “Generate LOD” has been used:

Model complexity is as follows:

  • Imported Model:
    • Triangles: 216447
    • Vertices: 595047
    • Submeshes: 242
  • High Level of Detail:
    • Triangles: 216447
    • Vertices: 595047
    • Submeshes: 242
  • Medium Level of Detail:
    • Triangles: 53945
    • Vertices: 150518
    • Submeshes: 242
  • Low Level of Detail:
    • Triangles: 13396
    • Vertices: 37907
    • Submeshes: 242
  • Lowest Level of Detail:
    • Triangles: 6633
    • Vertices: 18994
    • Submeshes: 242

Here is the imported mesh in Second Life on a Beta Test Grid (Aditi) “Mesh Sandbox 11” Region on 26-Oct-2010:

Here is the uploaded mesh in OpenSim 0.7.1 r/14257 on the live OSGrid “Sandbox Plaza II” region on 26-Oct-2010:


Comments on Mesh in Second Life and OpenSim

Many of the problems for the original mesh upload related to reversed normals on the .3DS models tested. This led to some parts looking transparent, even though they were present. This was a problem also noted when importing the same models to Unity3D.

Some guidance on limits built into the viewer and/or region sim is also available at: http://wiki.secondlife.com/wiki/Mesh_Limits_test

Summary:
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. The size of attached mesh assets is effectively unlimited, but there’s no guarantee that all of your attachments will be downloaded by other viewers.
There is no maximum number of meshes per import. However anything greater than 15,000 meshes would not be able to be rezzed inworld.
The maximum asset size to import is 8 MB so this would be tested by testing the Maximum Import Model size above.
The scale limit is set to 64 M
There is not a maximum # of triangles a model can have, however the number of vertices is limited to 65,536.

Using Google Sketchup
http://wiki.secondlife.com/wiki/Mesh/Exporting_a_mesh_from_SketchUp

Note Google Sketchup version 7 (old version) must be used at present. Export to Collada 1.4

Using Studio 3DS Max

http://wiki.secondlife.com/wiki/Mesh/Exporting_a_mesh_from_3ds_Max

The basic way to fix flipped normals in Max is to select the bit that is wrong. If it’s the whole item then just right click on it and choose flip normals. If it’s a part of the object you need to go into face selection, choose the appropriate faces and then do the right click, flip normals. The actual process is different in every version of Max.

To fix reversed normals: Select the object. Right click and choose “Convert To: Editable polygon”. On the modifier panel, choose the red cube to select sub meshes. Select the flipped sub mesh, then find the “flip button” in the modifier panel. [Thanks to Robert Chadwick for that]

3D Studio Max combining several parts of a mesh to be a single mesh… Select one of the pieces, and look for the ‘attach’ button under the modifier panel. Then, pick the other mesh. This will combine both into the same vertex array in Collada. To reverse the process, select a group of faces while in subobject mode (or select an entire element) and find the detach button. It’s on the same panel as Attach. [Thanks to Robert Chadwick for that]

For face selection, select the object by clicking on it in any window. Then look at the right hand set of control panels. There should be five tabs, you need to select the Modify panel which is the 2nd one looking from left to right. This has a square with a blue arc in it. A bit further down should be a section call Selection. Click on the 4th of the five symbols just under this which is Polygon model. Now you can select faces by clicking on them in the window or by drawing a selection box around them. Selected polygons should turn red. Right Click and choose Flip Normals and you are done. [Thanks to Mateen Greenway for that]

Studio 3DS Max – Update Autodesk FBX Collada Exporter
http://usa.autodesk.com/adsk/servlet/pc/index?id=6837478&siteID=123112

OpenCollada Exporter for Max 2011
http://opencollada.org/

Mesh Simplification
MeshLab – http://meshlab.sourceforge.net/

July 26, 2011 – 10:41 — Ai Austin
OpenSim MySQL Database Limit Change for Large OpenSim Meshes

With some large Collada meshes imported to OpenSim 0.7.2 dev master r/16234, I noticed some errors saying that the asset was not being stored due to the limit on max_allowed_packet which it seems by default for the server side is 1MB in MySQL. Funnily though the meshes that said they failed to store did seem to persist in world and in inventory, and could be rezzed out of inventory even after the OpenSim.exe error was indicated. However, I upped the max_allowed_packet to 16MB and the meshes were stored fine. The answer is to add max_allowed_packet=16M into the [mysqld] section of your MySQL config .ini file.

[mysqld]
max_allowed_packet=16M

See this for information, where it explicitly indicates that the server size is set low at 1MB and you may need to increase it if you work with large BLOBS, which I assume Collada content is stored in:
http://dev.mysql.com/doc/refman/5.5/en/packet-too-large.html

July 26, 2011 – 10:45 — Ai Austin
OpenSim Mesh Rendering at Various Levels of Detail – LODs

I have noticed is that there is a change in the rendering in world of my complex meshes between LL 2.7.2 and 2.7.4 viewers. For ones UPLOADED in 2.7.2 (or Kirstens S21(8) RC1 on OpenSim r/16234 they render fine in both 2.7.2 and 2.7.4 viewers with LOD handled well as you zoom out. BUT, for ones uploaded in LL 2.7.4 (exactly the same model, and exactly the same OpenASim.exe server), the LOD is handled poorly, and some quite large parts of the meshes disappear even when only zooming out 30-60 metres.

I was able to adjust the viewer debug setting RenderVolumeLODFactor and adjust it from the default 1.0 to 4.0 and the vehicle renders reasonably now as the view distance gets progressively greater.

Some guidance on LOD settings and rendering can be seen at

Revised #SL Mesh Arriving

But relatively large sub meshes were dropping out at far too short a distance, and meshes uploaded in an earlier 2.7.2 viewer looked fine.. so something has altered.

August 7, 2011 – 16:32 — Ai Austin
Mesh Test Statistics

Stats and mesh complexity for Second Life Main Grid Mesh Region on 26-Jul-2011:

August 3, 2011 – 09:40 — Ai Austin
Mesh Tests in Recent Viewers

With some simplification of the 3D Studio Max meshes, and breaking up the sub meshes into more manageable sized pieces, and export with either the AutoDesk FBX/Collada exporter or OpenCollada (available up to 3D Studio Max 2011 only at present), the meshes are now importing fine into OpenSim 0.7.2 dev master r/16234 on tests with recent viewers:
Linden Labs Viewer 2.7.4 (2.7.5 is not mesh enabled for OpenSim at present)
Linden Labs Project Viewer – Mesh 2.8.1 (236285) Jul 20 2011
Kirsten’s Viewer S21 2.8.2 (9) Jul 22 2011

An example render of the Supercar mesh after upload is shown here:

After some tidying up of the textures and adding back the side and bottom logos, the imported model looks like this:

August 7, 2011 – 16:32 — Ai Austin
Simplified Meshes and Partitioning Meshes in Blender

“P”ing in Blender. This process separates the mesh into new objects. You select an object, hit Tab to go to Edit view and then select one vertex of the part you want to Mesh – Separate. Hit Control L and all of the vertices in that part are selected. Hit P and Separate Selected. This deselects the part, as it is now a new object, and you are still in Edit mode. Hit B to square (de)select and BB to round (de)select with mouse and wheel. Toggle / for whole/local view. Blender has a bit of a learning curve, but once you get the basics, it is clear sailing with a powerful open source app. Mostly mouse and hotkey with cursor command over each subwindow. [Thanks to Chris Coggon, Canada, for that]

July 24, 2013 – 22:30 — Mateen Greenway
To fix the problem with normals on the model being incorrect, Mateen Greeenway, one of the people involved in creating the original 3D Studio max version of the Supercar model, suggests “Simply select all the objects you want to apply this to at the same time and add a Shell modifier with very small 0.001 inner and outer amounts, that should thicken every wall creating both an inside and outside face”.

Also note you can simplify the mesh by using “Utilities” and then “More” and “Batch ProOptimizer”. See
http://www.cadforum.cz/cadforum_en/how-to-optimize-complex-3D-models-tip6660.

August 14, 2013 – 08:24 — Mateen Greenway
Scale a whole model using the Select Tool – select all the items you want to scale. Then on the ribbon select the following scale control – Select and Scale: Breaks down into three tools—Select and Uniform Scale, Select and Non-Uniform Scale, and Select and Squash. The first allows you to select an object and scale it larger and smaller in all dimensions; the second allows you to scale an object larger and smaller only in selected or unlocked dimensions. The third is a tool that you will rarely use; it “squashes” your shapes and can severely interfere with any modifiers applied. So select uniform scale. Then if you right click on the tool it will bring up a data box where you can select e.g. 70% as the scale.

January 29, 2016 – 18:01 – Ozwell Wayfarer (Kitely)
How to correctly upload mesh

See this blog post by Ozwell Wayfarer of Worlds End landscaping & Roleplay for advice on how to correctly upload mesh, mesh complexity, level of detail, etc. He also provided an article on Tips for better world building in OpenSim.

Firestorm 5.0.11 – Mesh Examination Tools

Firestorm 5.0.11 (January 2018) introduced some mesh complexity exploration aids in the Build tool. These enable an examination of mesh parts at various levels of detail and show what viewing range these show at. See this blog post by Beq Janus…

http://beqsother.blogspot.co.uk/2018/01/for-lods-sake-stop.html

Colours are used to show the impact/compexity of mesh and mesh parts when the physics envelope is shown.. blue being relatively low impact, through orange to red for high impact… this is explained in this blog post…

https://beqsother.blogspot.co.uk/2017/10/blue-sky-thinking-physics-view-explained.html

February 25th, 2020 – Fred Beckhusen, Outworldz.com
Blender notes for porting to Second Life and OpenSim – Turn on Backface Culling

SL only supports one-sided meshes. Blender defaults to two-sided meshes. If you are not careful, you will end up with what appear to be holes in your SL upload. Flipping Normals in Blender…

https://www.outworldz.com/Secondlife/posts/blender-tips/Important-Blender-settings-for-Second-Life-and-OpenSim.htm

There is also a method used in 3D Studio Max to “thicken” the elements (via a “shell modifier” to add a small 0.01 thickness on the inside and outside of each element of the models, a helpful suggestion made by Mateen Greenway of the GAMMA modelling group) to prevent flipped normals that had caused holes and missing faces to appear in early Second Life and OpenSim mesh import tests.

About Ai Austin

Artificial Intelligence, Robotics and Virtual Worlds
This entry was posted in OpenVCE and tagged , , , , , . Bookmark the permalink.