Jump to content

Land Impact: individual vs linked upload


Devriv
 Share

Recommended Posts

Hello Everyone,

Perhaps you can help settle a minor disagreement between myself (amateur) and a friend, who is an experienced creator in SL.

Given a build that consists of 15 or more individual/separate objects, would uploading them individually and then linking them have any effect on the total LI in comparison to having uploaded them all at once?

I know that it will have no effect whatsoever. The calculations are identical.* My friend disagrees, and believes that uploading individually will lower the LI.  I said that I would ask the residents in the mesh forum.

Thank you.

 

*There can be some physics issues, but that’s a different matter altogether.

Link to comment
Share on other sites

My experience and tests over the last four years (maybe 3.5 who knows) show that your friend is indeed correct.

 

LOGIC is on your side, but logic does not necessarily have much to do with what the uploader determines as land impact.  Have you actually TESTED your "I know" statement -- like on the beta grid? Uploading a house for instance all in one piece and then in those fifteen pieces?  If you have not, then you actually don't KNOW.   And the phyics issues are not a different matter; they are PART of the upload process. Having a house you can't walk into or rez anything inside is pretty much worthless *wink*.

 

Lots of us have done those tests and come up with our best method depending on what we make. So I susggest -- if you have not done a physical test, that you do just that. It will no doubt be instructive. :D

 

Good luck.

Link to comment
Share on other sites

You are both wrong, so that might be some consolation.

 

For a split up model, the value for download weight will be lower, since the size per object is smaller, but the value for server weight will be higher, because there are more objects. So it depends which value is the highest, since that will determine the landimpact. (unless the physics weight is even higher)

  • Like 1
Link to comment
Share on other sites

Hello Chic,

Well I must say that’s both interesting and most puzzling, as that has not been my experience (consequently the “I know”).

I have not tested uploading the pieces of this set individually, no, only in the past with quite a few other sets, mainly to avoid having to align and link inworld.

I can of course test this set, but if I don’t know by what logic the uploader determines the land impact, or if how it behaves depends on the linked set or other factors of which I may be ignorant, can I answer my general question conclusively?

Knowing the answer, the logic, we would not have to test with every single set, every time.

Thank you very much for your reply :heart:

Link to comment
Share on other sites

Hello Pamela,

“Uploading separate meshes as a group can often have higher LI than uploading each mesh separately.”

That was the very point of our disagreement. The rule of thumb you mention is what I thought she was thinking of. Anyway, now I know to always check the server weights to compare with the download weights.

Thank you for your reply :heart:

Link to comment
Share on other sites

Is there perhaps some ambiguity in the question here?

I read the question in the context of comparing uploads of the identical sets of mesh objects either together in a scene, or individually. In that case, all my understanding of the upload process suggests that all the weights and therefore the LI will be exactly the same, although I never explicitly tested it. In other words, the weights and LI of a mesh object is expected to be independent of which other objects may be uploaded at the same time.

This is completely different from comparing the upload of separate objects (whether individually or in a single upload) with the uploading of a new mesh obtained by joining those component meshes, or, conversely, of comparing the upload of a single mesh with upload of a set of meshes produced by splitting it into separate objects. In those case there will generally be large effects on the weights and LI of the alternatives.

 

Link to comment
Share on other sites

Hello Drongle,

“I read the question in the context of comparing uploads of the identical sets of mesh objects either together in a scene, or individually. In that case, all my understanding of the upload process suggests that all the weights and therefore the LI will be exactly the same, although I never explicitly tested it. In other words, the weights and LI of a mesh object is expected to be independent of which other objects may be uploaded at the same time.”

This is exactly what I meant and what the disagreement/question concerned Drongle. You read the question in the correct context, and I hope the others who kindly replied did too.

To make it perfectly clear, this is a picture of this build:

 

It's a large building and there are 15 different objects.

I too believed that it would make no difference at all how they were uploaded, individually or as a group (in which case they’d be linked automatically once uploaded).

Now if Kwakkelde also understood what I meant, then aren’t we in the wrong given his explanation?

“For a split up model, the value for download weight will be lower, since the size per object is smaller, but the value for server weight will be higher, because there are more objects. So it depends which value is the highest, since that will determine the land impact.”

Thank you very much for your help.

Link to comment
Share on other sites

I have never seen any reason for the discrepency, but there is no doubt it is there. This is what I have to do with, say, a house: upload the whole thing as grouped meshes, then go back and replace many prims with ones individually imported, but which come in at a lower LI. Makes no sense! And is a pain.

Link to comment
Share on other sites

You are right, and a simple experiment shows why this happens (probably). I uploaded a set of six Blender stock objects (gear, bolt, teapot, diamond, honeycomb(extruded), torus knot), both all at once and separately. Indeed the individual LIs are different when they are unlinked from the linkset than when they are individually uploaded. The biggest differences are in the download weight, although the physics weights differ too. The download weights are (2.9/1.1, 6.9/14.4, 4.2/3.7, 0.1/0.4, 2.6/0.1, 7.9/4.0) for together/alone objects in the order above. Note that some have higher weights alone while others have lower. In either case, the linkset, uploaded together or separately then linked, have roughly the same upload weights (24.6/23.4). There's the clue.

Now we can look at the triangle and vertex counts at different LODs by using Develop-Show Info->Show Render Info and zooming and/or changing RenderVolumeLODFactor. The counts at high LOD are, of course, the same, but at lower LODs they are very different. For example, the bolt (triangles/verts) is 4980/8467, 621/1538, 309/766, 76/190 when uploaded as a linkset, but 4980/8476, 1244/3050, 309/770, 154/406 when uploaded alone. Similarly, the extruded honeycomb is 204/288, 102/166, 50/105, 50/105 and 204/288, 50/99, 12/34, 6/16. The differences are very obvious just by zooming in and out from the two object collections.

So the answer is that the reason for these differences is that the triangle budget for the LOD generator is shared between the multiple objects when they are uploaded together. This results in much more drastic decimation of the objects with smaller triangles (like the bolt). That explains why the differences for the whole collection roughly balanced out, so that the total LI was nearly the same. This is presumably intended to remove smaller details first for the whole linkset. In this case the sizes were such that the download weight is dominated by the lowest LOD, and the differences between those in the download alternatives account for the differences in LI.

The default physics convex hull is generated from the low LOD mesh. So the observed differences in physics weight are also explained by differences in the LOD meshes.

I Guess I have never noticed this before because I nearly always make my own LOD meshes. I would suggest this provides yet another reason for not relying on the automatic LOD generator. Maybe someone would like to test this with custom LOD meshes, to make sure there isn't anything else going on.

  • Like 1
Link to comment
Share on other sites


Drongle McMahon wrote:

I Guess I have never noticed this before because I nearly always make my own LOD meshes. I would suggest this provides yet another reason for not relying on the automatic LOD generator.
Maybe someone would like to test this with custom LOD meshes, to make sure there isn't anything else going on.

I did a test with a custom LOD/Physics multi mesh upload, containing 7 meshes. Then picked 3 objects from it, with various sizes and poly counts and uploaded each on it's own. All weights were 100% identical with the multi mesh upload.

  • Like 1
Link to comment
Share on other sites

Thank you Drongle, and thank you very much Arton for doing the test,

I should have mentioned that I had made all the LODs myself. I tested today, using the five creatures on the hat. The LI’s were the same :)  (actually a tiny bit lower on the linked upload!):



Link to comment
Share on other sites

Drongle, could it have anything to do with my not positioning the singles the same way as the linked set? The linked set of course rezzed as you saw in that picture. The singles I just rezzed next to each other, then moved them apart to their correct positions (more or less). And yes , all UV mapped.

Edited:

I may have used an older model of one of the objects, I may have not, but this must be more accurate. The LI’s are identical. This time I left the physics be (not set to none as before). All the objects are exactly the same, as are their textures (I double checked all the textures, to see if that was responsible for the display cost.) I don’t know why the display costs are so different.



Link to comment
Share on other sites

NOTE: edited in the morning :D  - see strikethroughs

 

"would uploading them individually and then linking them have any effect on the total LI in comparison to having uploaded them all at once"

 

So when "I" read this question the TOTAL LI was a big part of the question. Obviously there are three parts to the upload.  Download, physics and server. I have seen the server cost very high even in one joined object. I don't know WHY but I am guessing because of the complexity? That was puzzling.  I am often puzzled by the uploader *wink*. Hence testing testing testing.

Re strikethrough text --   While I have not uploaded anything lately to Inworldz, it could easily be THERE that I am thinking about. Same looking uploader, same viewer, very different rules. And in OpenSim there would be no discussion of this topic -- any JOINED build is 1 land impact no matter how complex or what size. Obviously that does not reflect TRUE land impact :D.

 

It seems like the real answer is that it will depend on the project and the only way to really know is to test both methods of upload -- and of course the LOD holding when inworld (a big part of the testing process for me). Each time I have tested (not every upload but on more complex builds) I have had a much better TOTAL LAND IMPACT (which is what I thought you were asking) from uploading in parts rather than as a linked object. I mostly upload small to medium sized houses. So there could be a completely different answer for other types of builds.

 

 And later thoughts ----   one, this is an excellent thread so thanks for that! 

I woke up thinking about this (not a good sign) and it seems like there is one question wrapped inside another and more complexity than your original question actual asked. Perhaps that is why there are differing points of view.

My  buildings for example would almost always have more than eight materials (not necessarily textures; I tend to put several materials on one texture for upload) so most times this question wouldn't even come up.

I also tend to make buildings very low poly except for things mentioned like doorknobs, so there is often no need for custom LODs (and I am sure there could be a long discussion on that) for most parts of the house.

So while I am still siding with your friend *wink*, I can see your point also. ALSO, there may certainly be times when you NEED things in parts for scripting or the ability to modify when inworld. So there are many factors which could have you chose one method over the other (and I know that was not your question - just pondering).

So I am going to leave this now  and move on, but it was a very GOOD question. I hope you all get it worked out and find "the answer".  And the next time I have a large build with less than eight materials I will remember to test both ways -- just for my curiosity!  

Cheers.

 

 

 

Link to comment
Share on other sites

Re the difference in display costs. Are you uploading the textures with the model?  I never do that, but if you are and some pieces take the same texture (not a baked texture) couldn't that account for the difference? If you are using say ONE 512 texture on several parts -- that would be less download that if you were using the "same" (but uploaded separately with different UUIDs) on the other model?

 

I don't KNOW this is true but it seems like it would be. In Cloud Party, once you uploaded a mesh with textures you could use it as many times as you wanted with no additional resource costs. That was a different platform of course but we know that using the same texture on many builidings is much less intensive than using many similar textures.

 

Just a thought. It is late and I am tired - LOL. 

Link to comment
Share on other sites

"I have had a much better TOTAL LAND IMPACT" from uploading in parts rather than as a linked object"

It would be interesting to know the weights and the LOD triangle counts of the components uploaded in the two ways, to see what might (or might not) be making the difference. There is one possibility that comes to mind. The LI depends on, amongst other things, the size of the compressed data for the upload. Assuming the compression is done on the combined data, it's possible that compression could be more effective with the combined data. This is most likely to be the case with models having lots of identical normals, which could be the case with buildings with walls etc at right angles. However, I don't know if the compression is done that way, and I wouldn't expect the effect to be very large. Also, uploading together would be better, which is not* be in the direction you report.

Meanwhile, I did an experiment to see if I could find a case where the "balancing" out of component LI differences from sharing the triangle budget would fail. I used two 8x8m 2-sided (duplicate & flip normals) planes subdivided into 32x32, project-from-view-bounds UV maps. In the first, the duplicates were left perfectly superimposed. In the second they were moved slightly apart. The LOD generator can't reduce the first at all, while it works normally on the second. Uploaded alone, the first had download weight (Dwt) =92.0 and all LODs the same. The second had Dwt=12.8, with progressive LODs. Uploaded together, the first was exactly the same, but the second had Dwt=1.6, as it was collapsed to one triangle at all three lower LODs. That's the result of sharing the triangle budget when half of the model can't be reduced. This was enough to have a significant effect on the LIs. Separately uploaded, the linkset LI was 105; uploaded together it was 94. However, this is the opposite way round from your report; so it doesn't offer any explanation of that.

I believe the server weight depends only on the number of objects (prims) and whether the linkset is scripted, not on the complexity. At least that used to be the case. So I am not sure changes in server weight can account for the effects you see, unless there are differences in scripting? Did you ever check the server weights? It's certainly the case that the LI of linksets of simple meshes can be dominated by the server weights.

*ETA: I had this the wrong way round. Changed appropriately

 

Link to comment
Share on other sites

“I have had a much better TOTAL LAND IMPACT (which is what I thought you were asking)”

I was, hehe, that is precisely what I was asking Chic: The total land impact when uploading objects separately then linking them inworld, versus the land impact when uploading them all at once to avoid the need to align and link inworld. In every build where I’ve had several objects, I’ve always uploaded it as a set, all at once, unless the physics types got in the way. Unless the entire build was a single object, I don’t think I had even tried uploading one by one before, until the little test today.

But I’m often puzzled too. Only last week I was looking at some mesh balloons which had a physics weight of nearly 8000 (Eight thousand!) but a land impact in the 20’s!   But as far as larger builds, I follow the same rule mentioned by Pamela: To make smaller (small triangle) or high poly parts separate objects.

“…and of course the LOD holding when inworld (a big part of the testing process for me).”

Of most importance to me too, but not from the beginning, and I’ll explain why for the benefit of the helpers here. When I first began to build and was searching for guidance and answers, I was reading everywhere and told by others that it is the residents’ responsibility to increase their viewer LOD settings to 3 or 4, and not that it was the responsibility of the builders to make sure the LODs hold for the viewer default of 1.125. So in the beginning (just a few months) I would at times zero the lowest and sometimes even the low LOD. Soon, however, I would read very informative posts like this specially and understood to never sacrifice the integrity of a mesh for a low land impact, and deleted and rebuilt any zero-LODed object I had made. My viewer LOD has been on the default 1.125 since (which I’m certain is assigned even to cards like the GTX 980).

To answer your question regarding the textures, yes I usually upload them with the models. I just find it more convenient and a time saver. In this set of the five creatures, the entire set is textured using two 128x128 textures and a single 64x64 (Thank you Penny). On the lowest LOD’s I have four alpha textures, three that are 128x64 and single 64x32. I have no idea why the display costs are different, I’m still learning and very much a newbie.

Drongle,

Would you at all be interested in inspecting these inworld? I can rez and leave them there in Sandbox #22. I can even post a download link here to all the files and textures (my own), but I’ve never “packed” a Blend file before and will need instructions. Thanks awfully

Link to comment
Share on other sites


Devriv wrote:

On the lowest LOD’s
I have four alpha textures
, three that are 128x64 and single 64x32. I have no idea why the display costs are different, I’m still learning and very much a newbie.

Perhaps you have set the Alpha Mode to "masking" on the linked models, and forgot to do that on the single models, and have them at the default setting, which is Alpha blending, still.

Which could explain the discrepancy in display weights

Link to comment
Share on other sites

"I usually upload them with the models"

Of course it's up to you if you want to do that for convenience, but there are a couple of implications you might want to consider.

First, you pay the L$ upload cost every time you include the same texture in a new upload. So that's every time you upload it with an altered mesh, or every time you reuse it on a different model. That doesn't matter on Aditi, of course.

Second, each of those uploads will make a new folder in you inventory (Textures>Objectname>Objecname-Texture n). Of course you can clean those up.

Thirdly, and by far the most serious, each time you upload it, the texture will make a new entry in the SL asset database, with a new UUID. As far as the system is concerned, each upload is a different texture. Now it has to be downloaded again for each object it's used on which isn't a copy of the same upload event, instead of just once for all those objects. I like to re-use as many simple textures as possible, such as woodgrains or bricks, to minimise lag. That advantage is lost by uploading them with each object, as they have then become different textures as far as the asset system is concerned.

This doesn't apply to the case where you use the same texture on several objects in a multi-object upload. In that case, the texture is only uploaded once. So if you are only going to use the texture for that one object-set, you don't compromise the lag saving.

I'll have a look for your object on mesh sandbox 22 - assuming that's on Aditi.

 

  • Like 1
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...