Jump to content

Combine mesh objects or keep separate


Remi Alpha
 Share

You are about to reply to a thread that has been inactive for 1350 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Apologies if this has been answered elsewhere, a search did not bring up an answer...

I am generally modelling with prims in SL then joining them and exporting to collada / DAE. Then in Blender I am converting to mesh and using 'decimate' to simplify them, then I am reimporting those back into SL. 

I am having varying levels of success. Sometimes the LI is really high even though I have supplied lower triangle count LOD versions.

An example here is is a tube with one end capped off - like a cup. And on one side I have a cube that joins with the tube. So this is 3 prims in SL. My purpose is to get the LI lower than 3, and using mesh this seems to be possible in some cases - but in other cases I end up with an LI quite a bit higher, like 7 or so.

I am then deleting the 'inside' faces in Blender that are not going to be seen. Then I optimise it and export as a two dae files - one with more decimation for lower LODs.
 

To achieve a low LI Is it generally be better to use 'join' in Blender first and then decimate the whole combined mesh model as one, and then import it as a single mesh object. OR... is it generally better to keep these "mesh equivalents" of the original prims and optimise them separately then import those into SL without joining them?

I guess there is probably no rule as such but from experience what would people suggest?

Edited by Rem Voxel
Link to comment
Share on other sites

In many to most cases it will be better to upload in large chunks of JOINED mesh objects. So main floor, roof, flooring and deck - etc.  You CAN upload a complete house as a single mesh object. Personally I find this a bit to complex for my temperament although I did it in Sansar because at one time that was the ONLY way you could upload a house :D.   

 

IN SL you can only have eight defined materials per mesh.  So if your model includes more than eight materials you cannot upload it as a single mesh. Note it IS possible to upload it but some very BAD things happen and you don't really want to go there.). 

Some people upload windows separately for reuse later. Others keep the windows with the main build.  Doors that will open of course need to be separate. 

 

It is important to understand that there are THREE areas that combine to make you land impact.  

Download cost (vertices),  physics, and server cost.

 

The actual land impact of an object is the GREATER of the three areas.  In the graphic below the final land impact of the ground floor of this building will be 11.  The physics will be 7 once changed to "prim" (see the chart numbers under physics - Firestorm only).   The server cost will be one.    

 

For example, if you modeled a "nut and bolt set" in a 3D program and uploaded it singly it would (if low poly) be .5 land impact as the number of vertices would be very low and you could use a cube or a six sided cylinder for the physics model.    But EACH one of those nuts sets would count as .5.  Use a dozen of them and it would increase your build by 6.  JOIN THOSE bolts to the main object and the increase in land impact would be negligible.   

 

There is a WHOLE LOT MORE to this, but that is a start.    There are tons of great posts on all of this from LONG ago when mesh was new. More folks were asking questions then of course. 

 

ALSO, if you want to build with prims (and I just made a very nice looking building for my new sim out of prims and it looks great and took me half an hour :D) you can oftentimes turn the prims to "convex hull" and save half of the land impact. This if you don't have any fancy cuts and such but are basically using rectangular cube shapes.   So maybe all the work you are going to isn't needed at all.  There is nothing wrong with Prims.  They load faster and work very well in many cases.      

 

1949230862_uploadmainwalls.thumb.png.16110607fda0ece74ab74de67bf88fff.png

Edited by Chic Aeon
adding info
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

i have only saved  primbased models to REcreate them in Blender. meaning creating each vertex, edge, and face anew. imported prim dae's are horrendously disorganized with completely over the top material artefacts that boggle the mind. these prim based models should never be regurgitated back into SL. doing so is lazy and you are cheating yourself out of the experience of actual 3D modeling.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

5 hours ago, Rem Voxel said:

To achieve a low LI Is it generally be better to use 'join' in Blender first and then decimate the whole combined mesh model as one, and then import it as a single mesh object. OR... is it generally better to keep these "mesh equivalents" of the original prims and optimise them separately then import those into SL without joining them?

I guess there is probably no rule as such but from experience what would people suggest?

There is one clear rule at least. Exporting prims and the reimport without joining them,  makes no sense at all. Both prims and mesh have their pros and cons as bulding materials but if you do it that way, you end up with all the disadvantages and none of the advantages of both.

Since it land impact you are mainly concerned about, it is not possible to get lower land impact by meshing prims unless you join them. Possibly with the exception of some very rare and unusual cases but even then the gain will be marginal. The reason for this is that each prim and each mesh in a linkset will always have a land impact of at least 0.5 and it is very rare for a prim to highr than that - at least not if you change its physics to convex hull.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

I'd say "it depends".

Sometimes it can be useful to keep things separate because they are essentially duplicates that use the same mesh and textures (in which case you only upload one and duplicate it in-world).

It makes your product a lot more reuseable (assuming that is intented), and can reduce how long it takes for your item to be downloaded.

The "lowest possible land impact" is, in my opinion, not necessarily the best approach, because it steers you towards many very popular "no nos" of SL/game asset modeling. (butchered and/or stripped lods for instance, useless colliders, etc...)

Some people are going to disagree with me, but i tend to look at LI in term of "what would this cost if it was made out of prims" and go down from there. Not all mesh objects should be 1LI, unless your user base is the type that enjoy lining their house with trash that disappears as soon as you lean back.

Also avoid the uploader's lod generator (and decimate if you can) and practice reducing your lods by hand. A good LOD model tries to maintain the overal appearance of the object

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

13 hours ago, Kyrah Abattoir said:

Sometimes it can be useful to keep things separate because they are essentially duplicates that use the same mesh and textures (in which case you only upload one and duplicate it in-world).

It's too late for me to edit my reply but I should have made myself clearer.

The way I understood OP, he was talking about exporting a prim build as mesh using Firestorm's exporter function and then re-import it without merging. That is a big no-no because there is nothing to gain from it and qutie a bit to loose. The reason LL went for procedural prims rather than polylist meshes back in 2002/2003 was that they found the reduced amount of data they required more than compensated for the occcasional superfluous geometry. This is still very much true today and the rule is if it can be made exactly the same with prims as with meshes, do it with prims. There are no rules without exceptions of course but in this case they are very few and very rare.

In addition, SL's LoD system was specially made to handle prims and does that far better than it handles meshes. You have to be prepared to spend a bit of time on maunal simplification if you want to match the LoD quality for meshed prims that the software does automatically for actual prims. Don't even think about using autogernerated LoD models (neither with Blender's decimate function or the uploader's GLOD algorithm) for this.

As if that wasn't enough, HAVOK, the physics engine used by SL, has four standardized extra efficient physics models that prims use whenever possible but are not available at all for mesh.

---

Splitting meshes in general is a completely different matter and as Kyrah says, there is no definite answer. There are a couple of guidelines that are good to follow though. Some of them are:

  • Splitting separate faces into separate meshes isn't going to affect performance significantly since the software handles each face as a separate submesh anyway.
  • Splitting a single face into several meshes will in itself reduce performance. However, there are several factors that may or may not more than compensate for this:
    • Usually you get the lowest land impact by making the download weight and server weight of a linkset as a whole as equal as possible. Splitting will always increase the server weight but often reduce the download weight.
    • Small and big triangles require different LoD handling and it is often a good idea to keep them separate for this reason.
    • Parts that are duplicated (windows on a house are a very good example of this) should be kept separate, uploaded only once and copied in-world. This saves a lot of download and processing time, enough to make the added draw call load it creates trivial by comparasion.
    • Using generic reusable meshes throughout a scene (not only within the same linkset) will also save a lot of download and processing time and is strongly recommended. We can't do this nearly as effectively as in a dedicated game (one of the reasons why SL has more performance issues than games) but we can try our best. This applies to textures too btw, not only meshes.
    • Different parts of a build may need different physics and may have to be split for that reason.

---

13 hours ago, Kyrah Abattoir said:

The "lowest possible land impact" is, in my opinion, not necessarily the best approach, because it steers you towards many very popular "no nos" of SL/game asset modeling. (butchered and/or stripped lods for instance, useless colliders, etc...)

I'm totally with Kyrah here but realistically - unless you have studied the topic in some detail - even though it is seriously flawed and long overdue an upgrade, the system with land impact and the four weights is the only metrics you have to judge your build's performance.

But there are two serious issues every builder should be aware of. As always, if you're only building for yourself it's nobody's business but your own but if you want to share your work (by selling ro gicing it away or by using it as part of a public build) and care about SL at all, you really, really should avoid these mistakes.

LoD Butchery

This is what Kyrah was talking about. You can usually (but not always) lower the land impact by over-simplifying the LoD models. The negatice effect of this is that you either have to increase your LOD factor (which again increases your gpu's workload) or live with seeing a scene filled collapsed object eyesores.

Conversely, there are some builders (unfortunately including the Moles and also one of SL's best Home and Garden designers) who consistently over-strenghtens their LoD models. This is not nearly as big a mistake as butchered LoD but it's still a serious one. The only way to make truly performant content for SL is to use the LoD system to cull superfluous details whilst maintaining the significant ones. Finding the right balance here is a combination of craftsmansip and art and one of the most important skills every SL builder should work on.

LoD butchery is of course all about reducing the land impact. But there are several non-destructive methods that can do that just as well and even better, such as:

  • Proper reduction of the main model's geometry.
  • Carefully and manually made LoD models that really take into account the details actually needed at different view distances.
  • Intelligent use of normal maps, specular maps and baked textures (no, not Blender/Substance Painter auto bakefail, I said intelligent use!).
  • And lots and lots of other tricks and techniques. The list goes on and on. Those three and the mesh splitting trick I mentioned earlier in the post are by far the most significant though.

The fitmesh rendercost bug(s)

This is a bit off topic of course since it only applies to worn items and is about render cost only, not land impact. But I think i should include it for the sake of completeness.

When LL introduced fitted mesh, they made a couple of serious mistakes, leaving a HUGE loophole for inconsiderate creator to exploit. The render cost and land impact of an item depends a lot on its size. The actual size of a fitted mesh is of course determined by the size of the avatar who wears it, not by its own scale. This means that if you upload the mesh at a very tiny scale you can drastically reduce its nominal but not its actual render cost. Sadly, many fitmesh creators exploit this loophole either deliberately or accidentally (since some programs used to make fitmesh does this by default) and this is one of the two by far biggest causes of performance issues in SL today (texture abuse is the other one).

---

And finally, to really make this a complete (allbeit a bit off topic) overview of the general principles of good geometry handling for SL

Sculpt are not generally recommended today. They're not completely useless though. With megaprims they can be made much larger than what is possible with mesh and that can sometimes be a big advantage. For smaller items, if the physics and LoD is acceptable, you don't use an oversampled sculpt map (that is a map with more than four pixels per vertice) and make good use of half the triangles or more, they can perform just as well as most meshes and better than some.

Oh and when it comes to system vegetation - as far as I know there are no hidden issues there, what you see is what you get.

Edited by ChinRey
  • Like 3
Link to comment
Share on other sites

for the life of me i can't figure out why anyone would resort to doing what the OP suggests. there's just no fixing the result of the horrible prim export in Blender or whatever software the rich folk (or thieves) use.

as a fools attempt to illustrate the mess Firestorm's export is i saved one of my prim based models and imported it into Blender. after fixing the 34 material slots and some 600 duplicated vertices i joined the "prims" into a single object, applied some materials and uploaded inworld accepting the suggested LoD parameters. no UVs, no texuring.

well, if i hadn't seen it, i wouldn't have believed it. it came out as 6LI. hmmm. if i didn't know any better and LI was the be all end all, i might wanna try to populate SL with 2009 era models myself instead of making SL as beautiful as my limited talents can. i'm constantly blown away with the extreme levels of technical expertise required for achieving the ultimate world we can live within. my clunky failures at mesh design don't reduce my aspirations for crawling up the way steep slope of making 3D art. i'll never attain the big-head status, but i do try. it's amazing how the pain i have in learning always births some useful baubles others are willing to enjoy.

  • Like 3
Link to comment
Share on other sites

22 hours ago, ChinRey said:

Trying new tools and methods is never foolish. :)

haha, no, that was merely a literary device to capture the ill intent. i've done it enough times to know it's not a method i'd ever consider worth more than mocking.

  • Haha 1
Link to comment
Share on other sites

  • 4 weeks later...

Oh my word, I’m so sorry for the silence – thanks for all the replies. I will have a good read through. 

Literally minutes after I posted the question a very kind person replied to me privately in world and he spent a good 30 or more minutes explaining in great detail about optimising LOD levels, how LI is calculated, the physics factor in the calculation and more.

It was so helpful and I got all my items down to 1LI, that I forgot to check back here on the forum... then after that I wasn't in SL for a good few weeks. So I probably came across as ungrateful. 

Off to bed now but I will have a good read through over the weekend.

Thank you! Very grateful for all the replies. Amazing SL community as always :) 

 

Link to comment
Share on other sites

On 7/15/2020 at 8:31 PM, EnCore Mayne said:

i have only saved  primbased models to REcreate them in Blender. meaning creating each vertex, edge, and face anew. imported prim dae's are horrendously disorganized with completely over the top material artefacts that boggle the mind. these prim based models should never be regurgitated back into SL. doing so is lazy and you are cheating yourself out of the experience of actual 3D modeling.

Yeah. I guess I like to start in SL to get a feel for the rough size of things compared to where they might go (e.g. inside a house). But sometimes I replace the whole object(s) to the best of my ability in Blender. I’m slowly getting better a modelling in Blender.

Link to comment
Share on other sites

On 7/17/2020 at 7:00 AM, EnCore Mayne said:

for the life of me i can't figure out why anyone would resort to doing what the OP suggests.

I was more asking for advice than suggesting. I didn’t at the time know what the best approach was with regard to joining meshes or not. But now I understand the three factors: Download, physics, and server cost it is very clear.

I have never tried exporting prims from Blender, maybe I explained it badly. I didn’t even know you could do that and I certainly don’t want to. Everything is mesh.

FWIW I have some items constructed in SL that are something like 9 LI made out of prims (way to high for their given purpose), and reimported as a single joined mesh (or 2 parts in some cases where I need to control one part separately) I have got them all down to 1LI and they look great, and from all distances too (they are all around 10cm across or less).

SL is really my sketching area just for trying stuff out, and what I take into Blender is a starting point. And I’m starting to use the modelling tools in Blender too (the learning curve is pretty steep).

Edited by Rem Voxel
Link to comment
Share on other sites

On 7/15/2020 at 11:14 AM, Rem Voxel said:

I am generally modelling with prims in SL then joining them and exporting to collada / DAE. Then in Blender I am converting to mesh and using 'decimate' to simplify them, then I am reimporting those back into SL. 

This generally isn't ideal. Decimation can only get you so far, which is why you are experiencing a huge fluctuation. Your best bet is to use the geometry you built with prims as a guide line. And manually build the polygon mesh around them yourself. This will normally result in a much lower LI cost. Additionally, part of the LI cost reduction is in proper LODs, and physics mesh if required.

Link to comment
Share on other sites

13 minutes ago, Cyrule Adder said:

This generally isn't ideal. Decimation can only get you so far, which is why you are experiencing a huge fluctuation. Your best bet is to use the geometry you built with prims as a guide line. And manually build the polygon mesh around them yourself. This will normally result in a much lower LI cost. Additionally, part of the LI cost reduction is in proper LODs, and physics mesh if required.

Agreed. 

IF you are going to use the prims you exported AS the model (actually more work than making a new model once you learn some Blender basics) The first thing "I" do is turn them back into quads so that the geometry is easier to see.  Alt +J is the key combo for that once you select your mesh. THEN get rid of all the doubles (W_key and choose Remove Doubles). THIS gives you a clean cube to work with.  Note the difference between the "adjusted" prim (steps above) on the left and the  exported prim on the right. 

 

A "prim" is mesh by the way, but a specialized version standardized for SL with parameters built into the viewer.  A prim has a LOT more vertices so that (in the olden days) the light would reflect more realistically. So to SIMPLIFY you need to turn the SL "prim" mesh back to a 3D modeled shape (a cube in this example).

 

image.png.4623c1808f13f7b166896e2c8102df85.png

 

To simplify you select one of the  edge loops along the cube (the lines that circle the cube horizontally and vertically). 

And then you REMOVE the edge loops.  

 

Alt + Shift and left click (right click I think in 2.8 but not sure) and select the loops, 

image.png.967043ef57c986caf2ac0685c7305b42.png

 

With loops selected W_key  to get this menu

image.png.8b52080ac9b7c68f6cf91ff7ff4884ce.png

 

This is the result.

image.png.63d0904f9d7b25fade0ae8aa693db962.png

 

Select two more edgeloops  in the other direction and repeat. Repeat again. You can of course do this all in one step but easier at the beginning a bit at a time I think.

 

This is your result.

 

image.png.c3d0151b82f8c6ebba9c0b6f97d4398c.png

 

If you were going to continue with the process you would join the meshes and merge vertices where possible and in general "clean up" your mesh. But just doing these steps should get you a much better model that will upload easier.  If your mesh is clean and optimized before uploading "I" have found the custom LODs are much less necessary (note that others will argue the point and I am fine with that :D).  

Good luck. 

Link to comment
Share on other sites

2 hours ago, Chic Aeon said:

With loops selected W_key  to get this menu

image.png.8b52080ac9b7c68f6cf91ff7ff4884ce.png

It's the X key, not W.

This is very good advice but in a case like this it's faster to select the whole object and use the Limited DIssolve function:

Select all and type X to bring up the Delete menu:

bilde.png.0378892a4f02a8ec1f8c472dfa53e4a4.png

Select Limited Dissolve and the job is done,  triangles merged into nice quads with all the wasted vertices removed:

bilde.png.8dd7c966ca68beb6c31e5eb60c91dec6.png

Limited Dissolve is bar far the most pwoerful mesh simplification tool in Blender's arsenal. Unlike the Decimate modifier you can apply it to only a part of the object and by adjusting the Max Angle and using the various Delimiter options you have very good control of how much simplification you want.

 

Edited by ChinRey
Link to comment
Share on other sites

3 hours ago, Cyrule Adder said:

This generally isn't ideal. Decimation can only get you so far, which is why you are experiencing a huge fluctuation. Your best bet is to use the geometry you built with prims as a guide line. And manually build the polygon mesh around them yourself. This will normally result in a much lower LI cost. Additionally, part of the LI cost reduction is in proper LODs, and physics mesh if required.

Thanks for your advice. This quotes my original message since which I’ve moved on a lot as explained in later comments. I am mostly modelling in Blender now as mentioned above. Thanks.

Edited by Rem Voxel
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1350 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...