Tuesday, August 8, 2017

2017 IMA: HELP: HG: OS 0.9.x may be close to release. It won't automatically mess up your mesh

2017  IMA:  HELP: HG: OS 0.9.x may near release.  
It won't automatically mess up your mesh
A summary of the information I have gathered from discussions about the effect of ubODE on mesh objects, with excerpts from the original sources.
  • Yes, ubODE may "break" a lot of mesh objects.
  • But the default physics engine for 0.9.x is BulletSim.
  • The ubODE engine is optional.  If you are concerned about mesh, don't use it.
  • The concrete meaning of breaking mesh is either:
  • Objects that need act like solids (floors and walls) are phantom.
  • OR: Objects that are supposed to be solid get an invisible hull around them.
  • Technically the hull is called a convex hull, but it is like the hull of a pecan.
  • You can't walk through doors or may walk well above the visible surface.
  • If your mesh objects are okay phantom, you won't care.
  • Kitely will probably convert any problem object to phantom.  
  • Some other grids may do that too.
  • The real problem is that the mesh objects were incorrectly uploaded.

    • (More after the break, scroll down!)

    Metaverse events, current and upcoming

    Tritina Short Poetry Workshop-Tue, 8/8, 7pm SLT

    This week the Short Poetry Workshop presents the Tritina, which is a 10 line form with a pattern of repeating words and is similar to the Sestina. So join us at the Short Poetry Library to learn, write and share your Tritina. East Cookie, Cookie (185, 121, 23)
      Discliamer: I don't build in mesh and have never tested any of the following advice.  I am just passing on information from knowledgeable sources. I hope to post an invited article soon from someone who does build in mesh and teaches it.

      Feel free to post comments with corrections, clarifications, elaborations or objections.  I learn more from being wrong than from being right,

      How to fix objects with broken mesh

      • The following information comes from Mike Lorrey, with assent by Ubit Umarov 
      • Ubit is the dev who developed ubODE.  Mike teaches about mesh in Kitely.
      • If you just have a few objects with broken mesh you can fix them:
      • If it is phantom, put an invisible prim where you need something to be solid.
      • If if has an invisible hull, make it phantom and use the method above.
      • Or you can always stick with BulletSim.

      How to upload mesh "correctly"

      Bill.Blight @grid.opensim.life:8002: Pretty much you can follow the standards that SL uses, other than step 2 in the uploader, 

      Ubit.Umarov @hg.osgrid.org: when uploading a new mesh, if you want it to have high resolution collisions, DO select a Physics mesh. That way it will work on any physics engine

      Ubit.Umarov @hg.osgrid.org: review some mesh tutorials made for SL; ignore old ones made for opensim

      There is general agreement not to use step 2

      • Bill.Blight @grid.opensim.life:8002: we don't use step 2
      • Bill.Blight @grid.opensim.life:8002: that is made for the Havok physics engine
      As of begin of February 2013, when uploading a mesh, do not use steps 2 and 3 in the "physics" tab of the mesh upload panel because it is breaking physics so if using them, your object will be as phantom and you will see a "[MESH]: No recognized physics mesh found in mesh asset....." in the simulator console. --OpenSimulator instructions on Mesh

      Comments by Avatar JayR Cela

      The OpenSim Power Boat Association is Still Alive and Kicking

      ...we tried the ubODE Physics Engine, which rendered quite a bit of imported Free-Bee content to be PHANTOM Prims. This is a common problem due to the fact that a lot of people that upload Mesh content into OpenSim are unable to understand the incomprehensible instructions located within the OpenSim Doc's, thereby inadvertently uploading their MESH Content as Visual as opposed to the Collision physics model. It is a very common mistake, and if you have ever tried to read the instructions on the OpenSim site, it is easy to see why. They seriously need a rewrite.

      Sounds confusing, doesn't it ? Yes it is confusing, and it should not be that way. ubODE looks as if it will be the future Physics Engine for OpenSim. Unfortunately ubODE render's a TON of current Mesh content unusable. that is unless you idea of a good time is running around and placing Invisi-Prims all over your Grid. And believe me that is not going to change. The advantages of ubODE are really something else, I have seen them in action on The OpenSim Life grid run by Bill Blight, and the results are spectacular to say the least. But that is because he knows what he is doing and does not need to read instructions.

        Comments from Ilan Tochner

        Kitely won't be rushing to upgrade to OpenSim 0.9.0 when it is officially released. People have uploaded a lot of content into Kitely and we think it is unacceptable to break many historic builds just so we'd be able to say we're running the latest official OpenSim release. We'll only upgrade if we encounter major technical problems that force us to do so or we see that there is overwhelming customer demand for it. In other words, unless we find a good technical solution to the issues that OpenSim 0.9.0 creates, or we see that the market punishes grids that don't use OpenSim 0.9.0, we won't be upgrading to this new version in the foreseeable future.
        Of note is that Kitely already handles meshes that have been uploaded incorrectly by automatically making the ones that actually cause problems Phantom. See: https://www.kitely.com/virtual-world-news/2016/08/24/automatic-world-optimization-and-other-improvements/

        About physics engines

        Chat logs from recent Dev office hours.  

        Extensive discussion about ubODE in these meetings.  Note:  to search on page in Chrome: Ctrl f gets a search bar.  

        Transcript of Kitely community meeting: Conversation with Ubit Umerov

        13:04] Selby Evans: Re: previous discussion on BulletSim: Comments from Mister Blue:
        TL;DR: there are no plans to change how BulletSim uses meshes.

        Long form: ubODE is doing it the way SL handles the mesh settings. BulletSim, which was developed before LL finalized the SL mesh settings, is more 'friendly' as it uses the display mesh if the physical mesh is not in the mesh file. This seems to happen a lot in OS meshes and thus BulletSim is not changing as changing to SL compatibility breaks some existing content

        [13:06] Ubit.Umarov @hg.osgrid.org: well that comment is not correct. that meshes issue is not only SL compatibility. [It] is in world usability, especially if you want to do vehicles etc. It’s not about making life easy... [it] was making it wrong

        [13:08] Selby Evans: I think Bulletsim is the default physics for 0.9

        [13:09] Ubit.Umarov @hg.osgrid.org: well possible that will need to change Bullet is has no active support for a lot of time so bullet is still the default, but possible that will need to change..

        [13:08] Dot Matrix: Ubit, what is your understanding of the situation, please? It would be very helpful to hear -- thanks.

        [13:11] Ubit.Umarov @hg.osgrid.org: issue bullets with meshes is incomplete or wrong handling on Physics Shape Type. The (incorrect) use of the visual mesh is only a detail so that handling of physics shape type, will need to be fixed. The impact of that on the (incorrect) use of the visual mesh, is something to see then

        [13:15] Ubit.Umarov @hg.osgrid.org: when we speak about ODE or Bullet we mainly speak about opensim’s use of the external physics libraries and at this point opensim is the actually quality defining part. ubOde and Old Ode basically use the same external library [but] with very different results

        [13:16] Mike Lorrey: ODE isn't native to Opensim. It’s an industrial physics engine people coopted for OS with incomplete implementation. For instance, ODE has hierarchies for mechanical linkages, hinges, robotics, but OS doesn't implement hierarchies in linksets.

        [13:17] Ubit.Umarov @hg.osgrid.org: ubOde is basically a redesign of the old ODE opensim side code. only recently ubOde started using a modified external library. We now did fork ODE library also because ubOde did reach the point where that does make a difference.

        [13:20] Rosa Alekseev: which difference Ubit?

        [13:20] Ubit.Umarov @hg.osgrid.org: well the meshes issue.. just meshes are not simple things like MIke can tell you, so some "simplifications" do not work and end up creating the issue we now have

        [13:20] Dot Matrix: So does that mean that the OpenSim version is diverging from the basic ODE?

        [13:20] Ubit.Umarov @hg.osgrid.org: Yes Dot. no longer the same code as original ODE

        [13:21] Ubit.Umarov @hg.osgrid.org: well for now on some details.. thing is that [the external] ODE [library] dev also stopped and some basic bugs are still there, like that old one that made avatars fall on terrain you remember?

        [13:23] Selby Evans: Yes -- avatars fell though the ground

        [13:23] Ubit.Umarov @hg.osgrid.org: well that capsule/heightmap bug is still not fixed in ODE. I just worked around it in ubOde. This just to say that yes at this point 0.9 is using also a fork of external ODE.

        [13:25] Dot Matrix: Right, by working around that bug, and others, at a guess?

        [13:25] Ubit.Umarov @hg.osgrid.org: yes and other little issues

        [13:27] Ubit.Umarov @hg.osgrid.org: when uploading a new mesh, if you want it to have high resolution collisions, DO select a Physics mesh. That way it will work on any physics engine

        [13:29] Dot Matrix: As a non-techie, may I ask about how this affects existing mesh?

        [13:29] Ubit.Umarov @hg.osgrid.org: some will not work on ubOde at least; houses are a typical example all over

        [13:30] Selby Evans: Will not have collision?

        [13:30] Ubit.Umarov @hg.osgrid.org: worse, it will have a CONVEX collision, i.e. no openings etc. In some parts you may see the avatar in air

        [13:31] Ubit.Umarov @hg.osgrid.org: you can check it here: edit the object.. go to features, Physics Shape Type. Those meshes will not show PRIM here, and of course ubODE will not do PRIM, since it is not there

        [13:33] Dot Matrix: What should show there, Ubit? For meshes that will continue to work?

        [13:33] Ubit.Umarov @hg.osgrid.org: meshes that do show PRIM will work fine on any engine. Problem is that Bullet decide to to PRIM when it is not there, so everyone never noticed that the upload was not correct

        [13:35] Dot Matrix: What about meshes done in the old ODE system?

        [13:36] Ubit.Umarov @hg.osgrid.org: err understand.. this are upload options. Does not matter the engine you have selected, only the options you select on the upload

        [13:36] Nathan Adored: so, prims, convex hull, and physics-model are what we SHOULD have as mesh upload options, but don't?

        [13:37] Ubit.Umarov @hg.osgrid.org: to have PRIM you need to select a mesh on step 1 of the physics tab on upload and for a house, PRIM is needed, for example. while for a car.. it’s better now not have it.. and add prims later because a car should be very light on physics so a lot better to do its collisions using boxes and spheres. you need to understand that uploaded meshes are not generic anymore

        [13:40] Mike Lorrey: yes the only part of the car that should be prim is the invisible root that the script is in and which contacts the ground.

        [13:40] Nathan Adored: okay, so what happens if you want to make, say, a large space vehicle that you want to be able to walk around in like a house, but occasionally want to be able to fly it around?

        [13:40] Mike Lorrey: flying vehicles shouldn't be a problem since they only contact things on takeoff or landing

        [13:41] Nathan Adored: okay, so what if its a large sandcrawler thingy you sometimes want to use as a house, but sometimes want to drive it around the sim?

        [13:41] Ubit.Umarov @hg.osgrid.org: [Parts with] the shape type None is not sent to physics at all

        [13:42] Mike Lorrey: since many of us are creators who sell across the hypergrid, it is an issue of some importance, not to mention the debate over upgrading Kitely's OS when 0.9 finally becomes an official release

        [13:43] Nathan Adored: assuming it does. anyway

        [13:43] Ubit.Umarov @hg.osgrid.org: review some mesh tutorials made for SL; ignore old ones made for opensim

        [13:44] Nathan Adored: yeah, the old OS ones got scrapped when they started moving towards 0.9 dev

        [13:52] Ada Radius: I had no clue, was reading the wrong advice - I knew something was wrong with the thing and gave up.

        [13:44] Dot Matrix: Question: What should we do with older meshes?

        [13:44] Ubit.Umarov @hg.osgrid.org: try to re-upload them correctly

        [13:44] Dot Matrix: What if that is not an option? If they were made by someone else, for example, but are still part of an overall build

        [13:45] Ubit.Umarov @hg.osgrid.org: then it’s a nice opportunity for you to get a new house :p

        [13:45] Nathan Adored: Yeah, is there some means of implementing an optional item-by-item conversion thingy on them in the DB like was done with some of the sit-positions stuff after that changed?

        [13:46] Ubit.Umarov @hg.osgrid.org: well possible.. but not nice to keep bad stuff around because ppl meshes are a bit complex things

        [13:46] Dot Matrix: Is it not possible to adjust things inworld, Ubit? It's not nice having to scrap favourite models either

        [13:46] Mike Lorrey: make your house phantom and use invisible prims for floors and walls

        [13:47] Dot Matrix: Thanks, Mike -- is that what we need to do? Turn the things to phantom, then add invisible prims?

        [13:47] Ubit.Umarov @hg.osgrid.org: need a bit more learning.. remember how we did need to learn about prims? all those torture etc ? well meshes are a bit more complex like mike is teaching. upload a mesh and tell physics to use a mesh equal to a LOD is not a good option especially if you plan to sell it !! to have a product worth paying for, you need to have a bit more work like providing a proper mesh for physics (as proper LODs... viewers not always make them nice)

        [13:50] Nathan Adored: and yeah, the LOD/prims-count goes UP when you add prims to a mesh [in Opensim], while on SL it will often absorb that land impact into the LOD of the mesh. at least it did that on ONE of my projects there

        [13:51] Mike Lorrey: we may not have upload costs when we upload a mesh, but there is still an impact on region stability from having too much high streaming cost high-poly-physics meshes in a region

        [13:51] Dot Matrix: OK... that is what creators need to do. What about those of us who have meshes made by others? How can we sort those out in our own builds where we DON'T want to get new things?

        [13:52] Nathan Adored: yeah, ultimately there DOES need to be some way to "reform" old meshes that you can't get re-uploaded by the maker.... but that break with the new system.

        [13:52] Mike Lorrey: ah well any old meshes that are not structures that need to be walked on, used as walls, you should set them to NONE; that way the physics engine ignores those anyways

        [13:52] Ubit.Umarov @hg.osgrid.org: yes many of those meshes are actually ok, for example avatar ones need no physics or as i said for cars.. etc. that is why i can't add a magic automatic fix tool

        [13:52] Ada Radius: Obsolete stuff meh. I just got rid of the last of the VHS tapes in my library.

        [13:53] Dot Matrix: Ada, in "classic" builds it is a big issue.

        [13:54] Ada Radius: @Dot - I know it's a big issue. None of us are going to like the answers but we need to deal with it. Selby, for example, has a gorgeous Greek theater iSL that was built for him in around 2010 I think. All sculpt maps. Should he just delete it? probably.

        [13:56] Nathan Adored: but he doesn’t wanna delete it because he has such a strong ties to it?

        [13:57] Ada Radius: I just meant that we all have a lot of wonderful builds in obsolete formats. There are hacks and workarounds, sure, and some good reasons to keep legacy artwork.

        [13:55] Ubit.Umarov @hg.osgrid.org: well I’m open to suggestions.. I’m not changing things to make ppl unhappy of course

        [13:55] Nathan Adored: well, obviously a generic across the board fix won't work, but it would be interesting if there was some way to select a specific asset in the DB, and have some under the hood conversion done on THAT and all identical copies of it that have spread thru that system

        [13:56] Mike Lorrey: it’s tough due to the permissions system, for content whose creators are no longer active. Dragging them back in kicking and screaming to fix stuff isn't likely going to happen.

        [13:56] Mike Lorrey: I have a trick for exporting sculpt maps to blender. You can use a script function to grab the UUID of a sculpt map, apply it to your own created prim, and export that to blender.

        [14:00] Ada Radius: @Mike: another way to get sculpt maps into Blender is to hack the map out of cache, run it through a sculpt generator (I have a freeby) and save it as dae.

        [13:56] Ubit.Umarov @hg.osgrid.org: sculpt maps are a different thing. actually i never tested them on bullet. they work on on ubOde and now that the 3 options including full convex as all prims

        [13:58] Ubit.Umarov @hg.osgrid.org: if you have prims select as convex, that does nothing here or on bullet and it will work on ubOde, so another thing to watch out

        [14:00] Ubit.Umarov @hg.osgrid.org: think sculpts are still a nice option. the fact we have meshes does not mean they are the best option always

        [14:01] Ada Radius: Right - sculpts are limited. We can do more with fewer vertices in mesh. That said, I learned a lot about texturing mesh by looking at Aley's sculpts and her use of them for things like moving parts on creatures and such is harder to do with mesh

        [14:03] Nathan Adored: I've mostly just used Mesh Studio over on SL to convert linksets to mesh.... tho most of the linksets are from my build platform on one of the opensim worlds ...with me then bringing the resulting mesh back to that opensim world

        [14:03] Ubit.Umarov @hg.osgrid.org: not sure that is good in lots of cases

        [14:05] Nathan Adored: Mesh Studio is a scripted thingy where you drop it into the root of the linkset you want to convert, and it sends a message to their server describing the object, and it then gives you a mesh based on that linkset as a zip file to download

        [14:05] Ubit.Umarov @hg.osgrid.org: you can do the analyse steps [for the physics upload on the viewer’s physics TAB].. but that may fail more because of the viewer’s code and that does deform the mesh. SL likes the analyse options on physics mesh upload.. not so good for us, at least now

        [14:09] Nathan Adored: yeah, I usually just give it a simplified model instead.... or try to, anyway, sometimes it’s simpler to just feed it another copy of the regular mesh, if it’s a fairly simple object.. Say, a table or something

        [14:09] Ubit.Umarov @hg.osgrid.org: well analyse is also a format change. it also does convex decomposition havok needs

        [14:11] Dot Matrix: Yes -- thank you very much, Ubit, for patiently answering questions and explaining things. I bet you weren't expecting all that!

        [14:13] Nathan Adored: these meetings get really interesting.... all sorts of different sometimes-meaty subjects. It’s one of the things that keeps me coming back every week. :D

        [14:14] Dot Matrix: Well, it's past the hour so time to bring the discussion to a close.



        • Original text in this blog is CC By: unless specified public domain
        • Use as you please with attribution: link to the original.
        • All images without attribution in this blog are CC0: public domain.

        News and Notes

        HG links-- depending on your interests 

        Communities in the virtual worlds

        Radio in the virtual worlds

        Metaverse beginner help

        The Hypergrid WIP Show

        • The Hypergrid WIP is a one hour "show & tell" of works in progress. 
        • Everyone is invited.  Building, scripting, entertainment-- whatever you are working on.
        • Selby may capture video of presentations in voice, for posting on YouTube.
        • The WIP show normally meets on 2 Sundays a month at 12 pm California time.
        • The show meets at the Pandora location on the second Sunday 
        • But will not meet in the summer.
        • And at Cookie II on the fourth Sunday.  
        • To keep up with the WIP meetings, join the Kitely group, Work in progress.

        Next WIP meeting

          • Sunday August 27, noon SLT (California) time
          • Cookie II location (fourth Sunday of the month)
          • HG address below: paste into the World Map next to Find. Click Find, TP
          • grid.kitely.com:8002:Cookie II 
          • In Kitely, put Cookie II into the find bar of the world map. 
          • Suspended for Summer: Pandora Location: (second Sunday of the month)
          • Pandora allows presenters to run high threat OSSL functions.
          • world.narasnook.com:8900
          • Put the line above in your World Map next to Find.  Click FindTP
          • At Narasnook, use World Map to search for Pandora

                  Previous Articles from the WIP show 


                    No comments:

                    Post a Comment