Jump to content

Weird download impact calculations on mesh upload


JackTheOtterFox
 Share

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

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

Recommended Posts

11 minutes ago, Ana Stubbs said:

She (er, I hope? i never asked...) 's talking about the LOD Factor viewer setting, not the individual LOD levels.

I'm not quite sure what she is saying then... I have that set to the default (2.0). If that's what she was talking about she should have specified that though, it is common practise to actually call the different LOD meshes LOD1, LOD2, ..., so that kind of confused me :D

Link to comment
Share on other sites

1 hour ago, Chic Aeon said:

Just read through quickly but looking at your OP, is there a reason why you have zeroed out ALL THREE LOWER LODs? 

Have you looked at your build in anything other than LOD4 to test what people see?

So you know in case you don't. LOD2 is standard for Firestorm viewer (most folks I believe) and 1.25 for the Linden viewer. A whole lot of folks do not use LOD4 as it really slows down computers (even hefty ones). 

So if you plan on anyone else seeing your path (or have hopes for that anyway) you might want to take a look.

And I heartily agree that the beta grid is your mesh making friend. 

Calm down, OP mentioned they Zeroed the lods to make sure only the high lod would matter for the test.

Link to comment
Share on other sites

1 hour ago, Toastfan123 said:

Thanks in advance, and sorry for just dragging this thread on and on, but I feel like I at least should be close by now >.<

What I always recommend is, to upload mesh with the official Second Life viewer. I dunno if it will help with your issue, but it rules out unwanted behaviors TPV may introduce.

Link to comment
Share on other sites

7 hours ago, OptimoMaximo said:

The bounding has increased its height, so the physics plane is adjusting accordingly, in my opinion. Try to use a cube instead

Well, they are still two completely separate objects, it's not like they have to have the same dimensions, they should just have the same origin so that they can be lined up, right?

Link to comment
Share on other sites

13 hours ago, Toastfan123 said:

Well, they are still two completely separate objects, it's not like they have to have the same dimensions, they should just have the same origin so that they can be lined up, right?

The physics shape gets its bounding box shrunk or inflated to match that of the visual mesh, AFAIK

Edited by OptimoMaximo
typo
  • Thanks 1
Link to comment
Share on other sites

15 hours ago, Toastfan123 said:

I'm actually starting to slowly get frustrated,

Welcome to the world of SL mesh making! :)

Making good mesh for a dynamic 3D environment will never be easy and there are four reasons why it's extra difficult in SL, I already mentioned two of them:

  1. SL wasn't made for polylist mesh in the first place, it had to be grafted onto an existing software optimized for procedural building materials.
  2. LL doesn't have anybody with practical knowledge about high performance mesh so they approached it purely from a theoretical point of view
  3. Polylist mesh was launched during the Six Dark Years when the general quality of development was very low.
  4. LL tried very hard to simplify the process and as often when people overdo simplification, they ended up making it more complicated instead.

I'm sorry but that's how it is. If there's any comfort, everybody who have replied here have been through exactly the same frustrations as you. You have our full understanding and sympathy and remember, if we could do it, you can too!

 

15 hours ago, Toastfan123 said:

I've double checked that all objects (Mesh, LOD Mesh and collision pane) have the same origin point...

Origin point doesn't matter, the SL software doesn't even know what an origin point is. Size does though. All models, LoD and physics, are scaled to the same size as the main by the uploader. If they aren't you get results like this.

Now, here is a very important point to keep in mind: Blender is not made for SL mesh. It's not even made for fast game mesh at all. Just like all other mesh editing software I know of, it's really intended for high poly, slow render objects. It is possible to make game assets in general and SL mesh specifically in Blender but many of the tools you need are add-ons and often hidden deep in its rather complex UI.

 

15 hours ago, Toastfan123 said:

I'm not quite sure what she is saying then... I have that set to the default (2.0).

Default LoD factor for the standard viewer with medium graphics is 1.125. The Firestorm developers decided to increase it because there are so many meshes and sculpts with faulty LoD in SL.

Higher LoD factor comes at a cost since it can drastically increase the effective land impact and render cost for all objects in the scene, not only the ones that need LoD strengthening. Not everybody have computers and internet connections that can handle the extra load well so you should take that into account if you're buiding something that's intended to be viewed by the SL audience in general. I use the original 1.0 LoD factor as my reference point when building so I have some margin of error.

That being said, don't overdo it. Some builders (including LL's own Moles) strengthen their LoD models to a ridiculous amount, adding a lot of unneccessary land impact and render cost.

 

15 hours ago, Toastfan123 said:

I highly doubt that people disable the highest level of detail, because it's the original mesh. LOD is a performance method, it's supposed to reduce complexity if the object is far away from the camera, in the most optimal case you wouldn't even see the transision. Nothing other than the highest quality mesh is supposed to be viewed from close up, so if someone actually disables the high quality mesh, well, without being rude, that's not my problem. That's not how LOD is supposed to be used, and I can't adjust for every misuse of technology

Unfortunately the "misuse of technology" is built into the software and can't be avoided.

SL's LoD system leaves a lot to be desired. It was specially made for procedural objects (prims) and not very suitable for semi-procedural (sculpts) or non-procedural (polylist meshes) ones.

Unlike modern game engines, the LoD swap distances in SL are not customisable for individual objects, they are calculated according to these formulas:

  • L2=√(x*x+y*y+z*z)*Lf/0.48
  • L3=L2*4
  • L4=L2*8

(Cylinder prims uses a modified formula omitting the z factor but that's not relevant for meshes anymore.)

  • L2, L3 and L4 are swap distances betwwen high-mid, mid-low and low-lowest respectively
  • x, y, and z are the dimensions along the three axises
  • Lf is the LoD factor
  • The 0.48 constant is slightly different for different object classes but not much

There is always a little bit of delay in the swaps - how much depends mainly on the overall gpu/cpu load - so actual swap points will never be exactly identical to the calculated ones.

The distances are from the camera position - by default (if I remember correctly) 3 m behind and 1 m above the avatar.

If you fill in some values, you'll soon see how inadeqaute this is. It only gives (barely) reasonable results for obejcts within a very narrow range of sizes (about 2-3 m or so). Changing the LoD factor does not correct this fundamental flaw, it only shifts the "ideal size range" up or down. And of course, with an adjustable LoD factor it's not even possible for the content creator to know where that ideal range is, since it depends on the viewer settings for each individual user.

Edited by ChinRey
Typos
  • Thanks 2
Link to comment
Share on other sites

1 hour ago, ChinRey said:

Origin point doesn't matter, the SL software doesn't even know what an origin point is. Size does though. All models, LoD and physics, are scaled to the same size as the main by the uploader. If they aren't you get results like this.

Okay, that is a huge problem. What is a good workaround for it? Because I'm sure there are lots of situations where the collission mesh (or even the LOD mesh) are smaller than the high definition mesh...

Link to comment
Share on other sites

37 minutes ago, Toastfan123 said:

What is a good workaround for it? Because I'm sure there are lots of situations where the collission mesh (or even the LOD mesh) are smaller than the high definition mesh...

There are even rare occasions when you want the physics nodel to be larger than and/or offset from the visual. The Moles did that very efectively at the Linden Realms to create invisible traps for the players.

You have already figured out the most common method: adding invisible triangles to a model.

Edit - a bit more in depth:

Apart from the bounding box size, there is no correlation between the visual and the physics model of an SL mesh. You can make them completely different if you like.

The LoD models all need to have the same number of faces, they need to have the same bounding box size and there are some differences in dae syntax (that don't affect the actual looks) that wil cause the uploader to choke. But apart from that, they to can be totally different. This is the key to two of the advanced LI saving techniques, drastic retopo and impostors.

Edited by ChinRey
Link to comment
Share on other sites

1 hour ago, ChinRey said:

You have already figured out the most common method: adding invisible triangles to a model.

Okay, it's the most common method, but what other methods are there?

I'm asking because I dislike this approach a lot, only did it once yesterday and it felt really dirty...

Link to comment
Share on other sites

5 minutes ago, Toastfan123 said:

Okay, it's the most common method, but what other methods are there?

I'm asking because I dislike this approach a lot, only did it once yesterday and it felt really dirty...

Yes, I agree.

Another method is to use a single loose vertice instead. Loose vertices are supposed to be eliminated by the uploader but the first vertice listed in the dae file is always kept anyway. This is technically a bug but it's not one LL is going to "fix".

Link to comment
Share on other sites

1 minute ago, ChinRey said:

Yes, I agree.

Another method is to use a single loose vertice instead. Loose vertices are supposed to be eliminated by the uploader but the first vertice listed in the dae file is always kept anyway. This is technically a bug but it's not one LL is going to "fix".

So it only works with one vertex? That's sadly most likely not gonna help in all cases I suppose... Although it sounds like a lot cleaner solution.

Link to comment
Share on other sites

Okay, I had a few thoughts on this while I was bored at university, and I would like to list them here and ask for some feedback.

First: The high-res Mesh, all LOD meshes and the collision mesh are all aligned by just scaling their dimensions to the same, right? If so, is the high-res model alwys the "reference" dimensions? (I suppose it is, because otherwise that would get deformed, which would probably be the worst possible outcome.)

Second: I can add invisible triangles (scale it to have a size of "0", so all 3 verts at the same coordinate.) to extend the bounding box. Are there problems when adding these invisible tris to the collision mesh? Because, well, it's used for physics calculation, and if one of the tris is above the object for example, could some other physics object get stuck on it or bug out somehow?

Third: If I take all meshes (So high-res, LOD1-LOD4 & Collision), draw a bounding box around their dimensions, combine all bounding boxes to one big bounding box that includes them all and add two invisible triangles to each model at the coordinates of two opposite edges of the big bounding box, am I correct that this would allign all models perfectly? (Because if so, that could probably be automated ^^)

Link to comment
Share on other sites

34 minutes ago, Toastfan123 said:

First: The high-res Mesh, all LOD meshes and the collision mesh are all aligned by just scaling their dimensions to the same, right?

Yes.

 

35 minutes ago, Toastfan123 said:

Second: I can add invisible triangles (scale it to have a size of "0", so all 3 verts at the same coordinate.) to extend the bounding box. Are there problems when adding these invisible tris to the collision mesh? Because, well, it's used for physics calculation, and if one of the tris is above the object for example, could some other physics object get stuck on it or bug out somehow?

That will work with analyzed physics but probably not for unanalyzed since it'll trigger a degenerate triangles error. I think Arton uses that method for doors so maybe he can give some more details.

 

38 minutes ago, Toastfan123 said:

Third: If I take all meshes (So high-res, LOD1-LOD4 & Collision), draw a bounding box around their dimensions, combine all bounding boxes to one big bounding box that includes them all and add two invisible triangles to each model at the coordinates of two opposite edges of the big bounding box, am I correct that this would allign all models perfectly? (Because if so, that could probably be automated ^^)

That's a very itneresting idea and yes, it would work.

But the two most common ways to create LoD models are either to start with the high and simplify it to create the others or start with the simplest and then add more details for the others. With etiher method size diffrence between the models wil ahrdly ever be a problem and with no problem, there's no need ofr a solution. ;)

Here's a bonus tip that may seem out of place but I have a feeling is relevant: Use the edit mode, not the object mode.

I mean, you have to sue both of course but edit mode is the main one. That's where most of the really good tools for mesh optimisation are.

Link to comment
Share on other sites

5 minutes ago, ChinRey said:

That will work with analyzed physics but probably not for unanalyzed since it'll trigger a degenerate triangles error. I think Arton uses that method for doors so maybe he can give some more details.

All right, I will try that out! Thanks for that info, I would have probably messed that up otherwise ^^

 

5 minutes ago, ChinRey said:

But the two most common ways to create LoD models are either to start with the high and simplify it to create the others or start with the simplest and then add more details for the others.

Yes, but even like that vertexes could change position, especially for more natural shaped objects. And while it's probably not even noticable, it wouldn't be 100% aligned anymore once the bounding box changes slightly, which I don't like. I've also thought about my idea, since I need to add opposite points of the big bounding box, maybe I can add a single vertex at the "(0,0)" corner of the .dae file, allthought I would have to look into the file format before I can make that assumption. That way I would only add 4 additional vertexes to the models instead of 6. Not a huge difference, but it's something I suppose!

 

9 minutes ago, ChinRey said:

Here's a bonus tip that may seem out of place but I have a feeling is relevant: Use the edit mode, not the object mode.

This kind of confuses me, what are you talking about? Are you talking about the editing modes in Blender? Without editing mode I couldn't do any actual mesh editing, so telling me to use it sounds very obsolete :D
...
Then again you are probably talking about something in SL, which would make a lot of more sense.

Link to comment
Share on other sites

25 minutes ago, Toastfan123 said:

This kind of confuses me, what are you talking about? Are you talking about the editing modes in Blender? Without editing mode I couldn't do any actual mesh editing, so telling me to use it sounds very obsolete :D

You'd be amazed how many mesh makers never get to know their vertices and triangles on a personal level. :P

Link to comment
Share on other sites

1 minute ago, ChinRey said:

You'd be amazed how many mesh makers never get to know their vertices and triangles on a personal level. :P

Hehe, all right, I'll better not ask any further questions :P Just know that I've actually been using blender for years, and I've read up a lot on mesh editing, so I should at least know enought to make relatively high quality models...

That is, at least if SL lets me.
All right, so, I'm back at the previously solved problem, just that it isn't solved anymore :D
image.png.354c041410ba8d2fe58bdf3ffd456b09.png

So, here is what I changed:
First, all models have the bounding box expanding zero-size triangles added. In the uploader everything is lined up perfectly. Secondly, the height of the object is detected as 0.7, so it's higher than 0.5, which should mean that it actually uses the collision mesh... But it doesn't.


Since I needed to this time post-process the collision mesh, here is what I did:image.png.b5ab29605546d491c750d2238a16f3c8.png
As you can see, everything looks perfect in the preview. Also, once again, the model detects as
image.png.971fee0aa0db245a20f4f02a82dda8f7.png
so it should actually use the provided physics mesh...

The lineup of things in the preview is perfect now, so I'm really happy that this is resolved and I'll maybe look into trying to create a little blender script that helps preparing the model for upload. But that's not the point, now. In theory I now have solutions to all problems I was facing, now I just need to make sure all of the solutions actually work at once, and then I should be good to go :D
(Also, still no access to the beta grid, so bye bye L$ :P)

Link to comment
Share on other sites

3 minutes ago, Toastfan123 said:

it's higher than 0.5, which should mean that it actually uses the collision mesh... But it doesn't.

First, I think we forgot to mention, that 0.5 m limit only applies to triangle (ie unanalyzed) physics. There are no such size limits for hull (ie analyzed) physics.

I assume you remebered to change the physics to prim after uploading (it's easy to forget such little details when you do multiple tests) so, here's another quirk:

Are you using the Second Life only version of Firestorm or the one enabled for other grids too? You see, the analyze function is part of the HAVOK physics software which is currently owned by Microsoft. Firestorm and other third party viewers are allowed to use LL's license for Second Life but not for other grids. That means the multiple grid edition of Firestorm can't analyze the physics properly so you often end up with a result like what you describe.

Oh, and before you ask. There may be a limit to how many SL mesh quirks there are, but nobody's found it yet.

Link to comment
Share on other sites

2 minutes ago, ChinRey said:

I assume you remebered to change the physics to prim after uploading (it's easy to forget such little details when you do multiple tests)

Okay, I will hide in a corner now. Thank you so much! I did actually forget about that!
image.png.4915368a3dda35db9ebd6195538bd8f3.png

It's perfect. FINALLY! :D
Thanks to everyone involved in helping me, that was a long and difficult jounrney, but I'm finally there now.

(Apparently the physics are now at 1.6 LI though, I mean, it's only 8 triangles, but apparently that's just too much to be one LI.
I might try to remove a vertex somewhere, but that's good enough for me right now ^^)

Link to comment
Share on other sites

Just now, Toastfan123 said:

Okay, I will hide in a corner now. Thank you so much! I did actually forget about that!

That's one of the requirements for becoming a true SL builder. A few more things left to do before you're properly qualified:

  • Accidentally delete your work platform 1000 m or more up in the air
  • Fall off the platform whilst being so preoccupied with your build you don't notice
  • Retexture a huge linkset when you only intended to change one little face of it
  • Accidentally unlink a 255 part linkset
  • Send you build off so far into the distance it's lost forever
  • Upload a mesh with physics so heavy it overloads a sim all on its own

Did I miss anything?

Link to comment
Share on other sites

All right, just for the sake of completeness, final result of the first section of my new stone walkway in front of my new home! :D
image.thumb.png.49b88767892eed76d8f07afdeff11c8b.png

I'm kind of a little sad though, the bump- and specular maps seem to actually not have any impact, but hey, at least I'm done now!
I might remove the maps completely, like, it is nearly invisible and I would go from 24 to 8 1024x1024 images, I mean, it's only 3 and 1 channel for both, but it adds up.

Anyway, thanks again for all of your help, I will now work on uploading the rest of it! ^w^

(Wow, so much work for just a few pebbles...)

  • Thanks 1
Link to comment
Share on other sites

9 minutes ago, ChinRey said:

Did I miss anything?

• Trying to drop a texture onto an object, but put it on a plants alpha plane, which happened to be infront of your object. And this plant is No Copy, and isn't your own creation, so you don't have the original texture to fix it afterwards.

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

1 minute ago, arton Rotaru said:

Wait, just for the stones alone? That's rather excessive, to put it politely. 😮

Yeah, I thought it would be, well, more worth it, but the actual influence of the bump and specular maps are almost unnoticable, so I'll drop it down to 8 textures :P
And I could have probably made the textures 512x512, but I honestly do like the extra detail for closeups ^^
(And also I don't want to upload them all again :P)

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1882 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...