Jump to content

How to make efficient mesh - general principles


ChinRey
 Share

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

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

Recommended Posts

15 hours ago, Codex Alpha said:

Yes sometimes everyone forgets that we had to build with prims, and so 3 Li was reached even if only 6 blocks.. Now we can get fully detailed doors or even entire walls for 3 Li, but people demand low Li! This is probably where the problems arise and why people are kind of gaming the system as their customers demand it with such Li shortage :D (yet I can't believe 32 x 1024 textures won't have more impact than a 4800 tri 1m object - or a 320 tri 5m object ffs LL)

 

 

 

Just because they demand it doesn't mean you are obligated to provide, they have desires, but you as the content creator know best on what is a reasonable expectation.

Textures not being accounted in LI is a reflection of the "old days" of SL where Linden Lab simply did not care about anything but sim-side load, and since textures are ignored by simulators...

Link to comment
Share on other sites

13 minutes ago, Kyrah Abattoir said:

Just because they demand it doesn't mean you are obligated to provide, they have desires, but you as the content creator know best on what is a reasonable expectation.

Textures not being accounted in LI is a reflection of the "old days" of SL where Linden Lab simply did not care about anything but sim-side load, and since textures are ignored by simulators...

Sure. Thanks for the supporting comment. You are correct. I do my best and be the most efficient I can and becoming more so as I can. My purpose is to make stuff so that people can fill their worlds lag free - and I want to contribute to the success of SL (and did the same in Sansar) in that department. I was just commenting on what customers want - they have no idea what it takes behind the scenes and will usually go for the prettiest thing out there - completely oblivious to what it will cost them when they try to use it in their sims.

Might be beating a dead horse trying to encourage LL to start making Land Impact actually reflect TRUE land impact of things, especially with texture use, and also not to punish me for uploading a wall that is 5m x 15m size (composition) and punishing me with 50 Li when the composition is only 960 tris, and if I uploaded individual parts (each with their own physics shape, not just one) at 5mx5m each suddenly it only costs me 3-5Li when I join them together. Makes me want to cry sometimes :D (not really but almost haha so frustrating sometimes).

I'm figuring it out though, but in general the SL Uploader punishes anything big, regardless if it is very low tris, but allows what I've seen up to 100,000 tris and beyond as 1 Li (with multiple texture sets) just because it is 1m-2m in size...

But if they claim to be making SL more efficient and want it to last another 10-15 years, it's time for a change, and nothing lasts forever, and if old stuff breaks, so be it. Everyone else from gamers (who will spend $1000 in cosmetic items and experience boosts for multiple characters in only Planetside 2 ffs then not playing it 2 years later) to creators on other platforms understand - as tech moves forward revisions and re-uploads are part of it. Have a nice day.

Edited by Codex Alpha
Link to comment
Share on other sites

17 minutes ago, Codex Alpha said:

Might be beating a dead horse trying to encourage LL to start making Land Impact actually reflect TRUE land impact of things,

That can't happen.

If LL redo the Li calculations to be actually representative of object complexity and clientside load, they would push the button, update the servers and half the grid would get auto returned. This would be followed by an emergency roll back minutes later once the screaming started. They could boost parcel Li in the same breath to avoid the apocalypse, but then, what would be gained.

Li is not and has never been a measure of complexity and it is a mistake to view it as such. It's a land accounting and billing tool designed specifically to limit the amount of stuff people can have without needing to buy more land. It's is heavily dependent on object scale and as such, literally anything can be 1Li if made small enough.

  • Like 1
Link to comment
Share on other sites

6 minutes ago, Coffee Pancake said:

literally anything can be 1Li if made small enough.

Yup, the only thing that broke down my random head idea for a super micro village is that physics breaks down at the necessary scale :/

  • Like 1
Link to comment
Share on other sites

53 minutes ago, Coffee Pancake said:

If LL redo the Li calculations to be actually representative of object complexity and clientside load, they would push the button, update the servers and half the grid would get auto returned.

That would be amazing :D haha, and everything would improve in the FPS and performance department. Can I push the button?

53 minutes ago, Coffee Pancake said:

This would be followed by an emergency roll back minutes later once the screaming started. They could boost parcel Li in the same breath to avoid the apocalypse, but then, what would be gained.

To be fair, people are going to scream anyway, but that's just entitlement talking. It should happen, and over time and will happen or the platform dies. As my examples in my post, I've seen people invest a ton of money in games, and then abandon them in 2 years, which is a long time for any gamer to play one game - but illustrates the point that they're willing to lose the money they spent as it was part of the cost of entertaining themselves, getting XP boosts, or looking cool while pwning people :D

53 minutes ago, Coffee Pancake said:

Li is not and has never been a measure of complexity and it is a mistake to view it as such. It's a land accounting and billing tool designed specifically to limit the amount of stuff people can have without needing to buy more land. It's is heavily dependent on object scale and as such, literally anything can be 1Li if made small enough.

Yes, and then punishing creators for wanting to upload a mesh that is 320 tris (Low Poly and Mobile Game standard or less), just because it's bigger, and if I don't provide the subsequent LODs (hard to break down something that is already optimal), it wants to punish even harder.

For example, I'm trying to upload an entire building side, which individual parts costs me only 6Li, but because they're together in one mesh, then uploader says 50Li or higher, no matter what I do.

Seems a bit unfair, considering there would be less calls to the material used itself, and even the physics shape is approximately 8-10 less shapes in it too because of it. Nope, can't do. It wants smaller meshes and linked - then it just caters to that problem of if you build modularly as a creator, anyone who wants mod/copy has a free building set with each purchase...

It also means like you said, and what I've observed, I can get an absurdly high detail smaller mesh into SL with no surge in Li, and with 8 materials x 1024px, and we are too believe a big wall does more damage than a little mesh model (even if it decimates faster)

I'll deal with it, but it's not like I"m not going to post about it after a particularly frustrating session of optimizing and trying to upload something :D

 

Edited by Codex Alpha
  • Haha 1
Link to comment
Share on other sites

There is also the point that rezzed content, no matter how bad it might be, is not really a performance problem in the grand scheme of things.

If this was all in a game engine and we were chasing every last frame to a few percentage points then sure, but we're not and we're so far from that it's barely worth the time.

SL shares the frame rate with a few really big grumpy elephants that aren't easily placated and probably never will be. It's easy to point at a mesh and say how objectively bad it is in isolation, but in the context of SL, it's just meeehhhh, and If we toss out the grumpy elephants we don't have SL anymore.

Rigged stuff is the real moster in the room, but again, rarely because of the actual mesh itself, more how the rigging and animation system function by design.

Link to comment
Share on other sites

On 5/23/2022 at 2:53 PM, arton Rotaru said:

C'mon.... how low you want to go? 😋 It's 3 LI already for a fairly large build it seems.

Well, I  think Im fine with 3LI!

Thanks Arton, Quarrel and ChinRey for all the info and help!

  • Like 3
Link to comment
Share on other sites

18 hours ago, Coffee Pancake said:

Rigged stuff is the real moster in the room, but again, rarely because of the actual mesh itself, more how the rigging and animation system function by design.

Actually, Beq and Polysail did some tests that showed that it's the excessive number of draw calls caused by the alpha cuts that is the biggest problem with fitted mesh.

But yes, that's the big one when it comes to frame rate, textures are no. 2 and geometry a distant third - maybe much because it is heavily restricted by the LI system while the other two are totally out of control.

Mesh complexity is still not insignificant for the frame rate though and for some reason it also seems to affect server performance negatively (I'm not sure about this and I don't know why). Then there is load time which also is an important aspect of lag. If you've come across any SketchUp style "dirty" meshes in SL, you may have noticed that although they may not affect frame rate very much, they take ages to load.

Most important to me though - I may not speak for everybody else here - is that I want richer and more complex scenes than what we usually see in Second Life. I want my virtual world to look something like this:

251617898_OPQHolly01Lush_002.thumb.jpg.6ea8ed4a6851da96657eda1db7d2378a.jpg

Here it's the geometry that is the major render lag factor.

Ideally, I'd love to have scenes like this:

IMG_4486.thumb.jpg.78f218f6fdf071487dffad3dfab50436.jpg

That's asking for too much of course but again, it's the geometry that is the limiting factor here. With sensible building practices, texture load for this scene would be all but trivial.

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

20 hours ago, Codex Alpha said:

For example, I'm trying to upload an entire building side, which individual parts costs me only 6Li, but because they're together in one mesh, then uploader says 50Li or higher, no matter what I do.

Seems a bit unfair, considering there would be less calls to the material used itself...

Second Life has a system for consolidating draw calls so that shouldn't be an issue. I'm not sure if it's on individual mesh, linkset or scene level though. Maybe Coffee or @Beq Janus have some info about this? (Draw call consolidation is disabled for fitted mesh which, as I mentioned in the previous post, is one of the main reasons why avatars tend to be so laggy.)

I don't know why SL tends to prefer several smaller meshes over one large one in general but for something like a house wall it makes sense in any case since the wall itself needs completely different LOD handling than the smaller details like windows, doors, cornices etc.

Link to comment
Share on other sites

The scale cost thing has nothing to do with fairness; that's the rules as they stand nobody said they were fair 🙂 ; the rules, however, are out of step with current rendering technology but that's a slightly different argument.

The system and concept is simple enough. A small object is likely only to be seen up close, a large object will be seen from afar and switches LOD later, meaning small details on the large object are likely to be contributing to the render time for more people, more camera positions and directions, and thus they are charged higher to encourage better efficiency.  This catches people out because it seems peculiar that a house  frontage with 3 windows and a door and all their furnishings costs less LI when the windows and doors are separate than if they are all linked, but the expectation is that the windows will switch to a lower LOD sooner and as such their higher density mesh parts will be rendered from fewer locations. 

The flip side of that is the reality that as of this moment, most rendering is bottlenecked on the CPU and the drawcalls drive the majority of the render cost. And within certain parameters, the drawcall counts remain the same at all LODs, making the triangle obsession somewhat moot. However....

When the performance updates land, then rigged mesh batching becomes more of a thing. At that point we find that the cost will be less observable (it is harder to measure the impact on the GPU than on the CPU) but that the bottleneck may well move from CPU to GPU. If the cost moves to GPU then that means the CPU will be waiting for the GPU to catchup and the GPU will be choking on all the triangles that being jammed into it. The problem here is known as overdraw, having multiple triangles all fighting over the same on screen pixel means that you waste a lot of time drrawing and redrawing the same point on the screen. The denser the mesh the more overdraw, the longer the GPU spends. At the moment this is largely hidden because of the heinous drawcall induced CPU bottleneck. 

As for batching...Render batches reduce the drawcall overhead to some extent though batches are limited by texture or textures. Things with the same texture batch together, and some render passes can batch more than one texture. I think it may also only apply within the same linkset. I'd have to go recheck....

 

  • Like 1
Link to comment
Share on other sites

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