Jump to content

Mesh level of detail at Uber


animats
 Share

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

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

Recommended Posts

I'm at the "Uber" monthly show, where mesh designers show off their work.

lowlod1.thumb.png.2c30b2b949522f1d0bbcb2b8185b0ab9.png

This is the good stuff?

Here I'm viewing a building at the lowest level of detail. It's a collection of random triangles. This is a close-up view of what it would look like at distance. Looking around Uber, almost every non-clothing item is like that. Buildings, furniture, and vehicles all half-disappear at the lowest level of detail.

This is a show; it's supposed to be the good stuff. What's going wrong?

I took a look at the code in Firestorm that uploads meshes and generates low-LOD meshes. It's not doing anything that evaluates how good it will look visually. There's no code for selecting triangles based on size, or being in the interior of a patch It's just discarding triangles arbitrarily.  This is probably the source of most really bad low-LOD meshes, since it's the default if you don't do anything by hand. (The code is in LLModelPreview::genLODs of llfloatermodelpreview.cpp, if you want to look it at. If you read C++, you will wince.)

A smarter algorithm there, coupled with not boosting level of detail levels so much, would improve SL's viewability and speed.Not an easy fix. Open source code exists for better mesh reduction. Not something that could be dropped in, but something to look at.

For the really low level of detail, where the triangle count is around 12 or even less, impostors are the only way. Decimating down that far just makes a mess.It would be a big job, and the code is messy, but most of the pieces of code needed to do this during mesh upload are already is in Firestorm and the LL viewer. The viewer generates a preview of the mesh to be uploaded and shows it in the upload dialog floater. It can render meshes that have not yet been uploaded to SL. That code could be reused to generate images of the object from various angles during upload. Then, those images could be pasted on a box or cross mesh to create a simple textured impostor. You'd see distant objects as solids with low-detail texture, instead of a collection of random triangles. The user would get to see the preview during upload, and could tweak the parameters so it looked OK.

Perhaps LL will look at this as part of Project Arctan.

Now the really ambitious, but effective, thing to do would be to do this server side on existing content. Have some server quietly going through existing mesh objects with crappy low-LOD models and generating better ones. Probably would speed up SL considerably.

 

 

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

Show off? 
I was under the impression that it was a themed shopping event to make L$.

 

But seriously, do you really hope that event organizers would run some sort of quality control on the participating vendors? In the drama ridden fields of creatorverse where "if you don't have anything nice to say, say nothing at all, rather stab them in the back, repeatedly" is king? 

  • Like 1
Link to comment
Share on other sites

3 hours ago, animats said:

This is  a show; it's supposed to be the good stuff. What's going wrong?

No it's not, it is just another sales event for hobbyists to make Linden. Nothing more, nothing less.

Creators seem to value a lower Li count above anything else, hence why they do this. It's not good and I don't like having to use a LOD of 4 half the time if not more to keep the world from turning ugly.

  • Thanks 1
Link to comment
Share on other sites

On a serious note and just to keep things in PERSPECTIVE, the houses and builds on the main level (shown in the OP) are SCALED DOWN versions of the real build. Hence the LODs will change their distances and not be the same as they were when they were uploaded at full size. Most to many scaled down models WILL break up visually when made substantially smaller.  The only fix for that would be to have the creator upload again with different settings (time consuming and spendy).

IN THIS CASE and evident from the numbers on the Firestorm build pane the creator has zeroed out all three bottom levels of the build. And yes IN THIS CASE this is a "bad" thing and the building breaks up at a short distance EVEN up at the full-sized demo model (teleport to get there).

However, a couple of months ago I pointed out another "zeroed out" building that worked VERY well simply because it was SO BIG there was no need to have long LODs at lower levels.  So there are often exceptions to what you might suspect from the numbers in the build pane.

To say that everything at Uber broke up isn't correct. For example this building by DRD (in front of the building shown in the OP) has good LODs with apparent "impostor" windows.  Personally I would have gone for longer LOD natural windows and then used impostors further out, but that is a design choice. 

 

I suggest getting all witch-hunty is a less than optimal way of dealing with less than perfect mesh :D.  Both buildings are cute and can be useful -- even the one with "non-existent" LODs. Put it inside smallish skybox and it would work just fine.

 

I run at LOD 2, the Firestorm default.

image.thumb.png.ca1f8b65b319c42064f4f6f529cc0162.png

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

That's a cute building. LI 25, 44 objects. That's just the basic structure. Many of the exterior signs and all the interior objects are separate.

Most of the big objects are prims, not meshes. The windows are almost the only objects that have good lower level of detail.

You don't drop to low level of detail on the roof until 171 meters. At that point you see random triangles, but you're in the next sim.

LOD model generation is a job for a program, not humans. The mesh uploader needs an upgrade. Anyone from mesh land want to take this on? I've sort of staked out region crossings as my area of concern.

Link to comment
Share on other sites

1 hour ago, ChinRey said:

All those flawed LoD models we see in SL are done by a program, not humans.

1 hour ago, Fionalein said:

Sounds like someone is lazy...

Ummmm, programs written by lazy humans?

If it was just a matter of deciding which verts can be collapsed into which other verts without too much visual distortion then I would agree that what is needed is a better algorithm.  However, when you take into account techniques like imposters, and replacing mesh detail with baked-in bump-mapped detail, you start to get into areas where the LOD is an artistic decision.

 

Link to comment
Share on other sites

1 hour ago, ChinRey said:

All those flawed LoD models we see in SL are done by a program, not humans.

Yes. and the code in the SL uploader uses a simple but dumb approach. Then people push it too hard. Asking it to give you 6 triangles is not going to work.

  • Thanks 1
Link to comment
Share on other sites

2 hours ago, animats said:

LOD model generation is a job for a program, not humans.

No, it isn't... Automated routines generally suck at this kind of thing, even in "high end professional apps". I use Cinema 4D XL (albeit a rather dated copy now), which isn't exactly a low budget option, and I try and avoid the "polygon reduction tool" like the plague.

11 minutes ago, animats said:

Then people push it too hard. Asking it to give you 6 triangles is not going to work.

Basically ALL poly reduction tools either ask for a target reduction % or a target poly count. and none of them work that well.

2 hours ago, animats said:

The mesh uploader needs an upgrade. Anyone from mesh land want to take this on?

I doubt it, most 3D modelers are not coders, they are 3d modelers. And the better ones know the way to make LODs is BY HAND.

Ideally you make the low LODs first then take a copy and subdivide the mesh here and there and detail it, then take a copy of that and super detail it, then take a copy of that and super-duper detail it. That means the lowest lod shares the basic UV mapping with the highest lod, and makes texturing a lot easier.

This is useful because if you need to change stuff, it's easier to do when you have fewer polys to push around, and because your lods are crisp and not tangled messes of triangles that result from the use of some lame math based code kludge.

"The Search for the Make Art Button" has been the bane of 3D for a couple of decades, loads of low talent peole demanding that coders "make 3d EASY".

It's why you get piss poor UV mapping  ("Use Generate UV Auto-Fail Button Y/n?" ), and piss poor LODs ( "Use Generate LODs Auto-Fail Button Y/n?" ), and piss poor textures ( "Use Generate AO Squid Ink Auto-Fail Button Y/n?" ).

23 minutes ago, anna2358 said:

Ummmm, programs written by lazy humans?

Generally, no, programs written by hard working coders who ARE NOT 3D modelers and who take orders from Marketing Sith, who pander to the Herd who demand a "Make Art Button"

I remember one app that had a really really bad basic skin shader model because... The coder who wrote it didn't do 3D CGI, lived in Utah, and was a keen fan of body building, so his skin shader assumed that EVERYONE had zero body fat, and walked around in the blazing glare of Summer on the Saltpan.

So if you put some porcelain pale Gothic skin texture into that shader, and rendered, you got some redneck with a nuclear suntan and no body fat under their skin to hide the meat...
 

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

On 3-5-2018 at 9:29 AM, animats said:

I'm at the "Uber" monthly show,

Here I'm viewing a building

i'm a bit confused you use Uber in your title while it's about a mesh building by a designer.... not the event itself.

Link to comment
Share on other sites

6 minutes ago, Lillith Hapmouche said:

more focus on a "good building skills"

i think the discussion about "good  building skills"  are only done by a handfull, often the same people,( no judgement on it btw)  most buyers will only go for the pretty look.

Link to comment
Share on other sites

4 hours ago, Ethan Paslong said:

most buyers will only go for the pretty look.

I certainly want my Sl to look pretty. It's just that I don't really feel that the view in Chic's picture is very good looking. But taste differs of course.

Seriously, I do think you have an important point: most people in Sl go for a pretty, not look, but picture. A two-dimensional often crefully retouched still picture that is, because that's what you see on MP and in blogs and on vendors. How it works in a dynamic three dimensional environment is irrelevant because that doesn't become apparent until after the item has been sold.

But there is actually no conflict between good looks and good technical quality. A building like the one on the poster in Chic's picture could easily have been done with exactly the same look and exctly the same land impact and still have LoD good enough it still looked great at a moderate distance. All it would have taken, was some very basic mesh making skills and about an hour of work.

 

4 hours ago, Lillith Hapmouche said:

But apparently, the original assumption was that the event had more focus on a "good building skills" showcase than a plain shopping event. Probably that's why.


You forgot the :P emoticon Lillith. For a minute I actually thought you were serious.

Edited by ChinRey
Link to comment
Share on other sites

11 hours ago, Klytyna said:

No, it isn't... Automated routines generally suck at this kind of thing, even in "high end professional apps". I use Cinema 4D XL (albeit a rather dated copy now), which isn't exactly a low budget option, and I try and avoid the "polygon reduction tool" like the plague.

I've seen good results from tools available for unity, they do require some interaction to help keep detail where needed, but yeah .. as a rule automated reduction is sub optimal.

11 hours ago, Klytyna said:

"The Search for the Make Art Button" has been the bane of 3D for a couple of decades, loads of low talent peole demanding that coders "make 3d EASY".

But how can I make art without a make art button?!!??!! This sucks.

Click a button. Get 1 art. It must express everything I think about while pressing it. Thank you very much. How hard is this? 

11 hours ago, Klytyna said:

I remember one app that had a really really bad basic skin shader model because... The coder who wrote it didn't do 3D CGI, lived in Utah....

Friends don't let friends Utah.

  • Haha 1
Link to comment
Share on other sites

I've been trying some modern mesh reduction algorithms. Here's a new automatic open source seam-aware decimater.

meshreduction_002.thumb.jpg.339f3ea9c85542907c84636e80be557b.jpg

At right, 7802 triangles. At left, 290 triangles. Reduced to 1166 triangles by the smart decimater, which refuses to go any further. Then banged down to 290 by SL's dumb one. Not too bad. Pictures from a sandbox on the beta grid.

If I use only SL's decimater, I get this:

meshreduction_005.thumb.jpg.92b178f9d9ba1309e64e191f1b1bbcb0.jpg

The animal in front looks worse. It was taken down to 242 triangles from 7802 by the viewer's mesh uploader alone. Not a good result. The feet and jaws have been lost and there are bulges where there shouldn't be bulges.  The animal in back has the right general shape. This shows what a modern mesh reduction algorithm can do.

The mesh uploader in the viewer could use this algorithm. The code is open source. There are simpler algorithms that are not as good, but are better than the one the uploader uses now. A lot of work has gone into this problem, and the major game pipelines all have solutions for this.

If you want to squeeze the triangle count harder than that, it's impostor time. Unfortunately, SL uploads meshes and textures separately . The mesh uploader doesn't know what texture to use, and can't do a render with texture. So it can't make an impostor.  You can do that in Blender, of course. If LL were really ambitious, they could have a server quietly making impostors for stored assets, improving the look of SL worldwide.

Level of detail generation can mostly be done automatically, because the basic criterion is "at distance X, can you see the difference?" If you can't, simplify. Repeat until done. Mesh simplification    alone is useful, but a LOD program can do a much better job if it has the texture, because areas of uniform color can be simplified more than ones with texture detail. Models of cars, which have big smooth surfaces, can be compressed hard in most areas, but not everywhere.

The game industry almost always does it LOD generation automatically now. It's too expensive to do by hand. Here's how the creation tools for Unreal Engine do it.

 

  • Thanks 1
Link to comment
Share on other sites

6 hours ago, animats said:

The mesh uploader in the viewer could use this algorithm. The code is open source. There are simpler algorithms that are not as good, but are better than the one the uploader uses now.

You really should file a JIRA about it although I doubt it will be accepted, partly because they still seem to insist that GLOD is "the best on the market" in spite of all the obvious evidence, partly because improving the basic graphics quality doesn't seem to be high priority for them - they'd rather spend their time adding new shinies.

 

6 hours ago, animats said:

If LL were really ambitious, they could have a server quietly making impostors for stored assets, improving the look of SL worldwide

They already have code for generating impostors on the fly. It's used for avatars only.

Link to comment
Share on other sites

33 minutes ago, ChinRey said:

They already have code for generating impostors on the fly. It's used for avatars only.

That's more elaborate than I'd expected in SL. They even regenerate the sprite when the avatar changes pose. Nice. Is that done for animesh?

Link to comment
Share on other sites

19 minutes ago, animats said:

Is that done for animesh?

I hope it is, and on a second slider.

But I imagine the lab excuse will be "we want to get Animesh out as soon as possible, so will come back to this and other suggestions later™" (Happy to be proved wrong here)

Link to comment
Share on other sites

The stuff I'm talking about is well known technology which could be retrofitted to SL without too much effort. What the successful MMOs are doing right now is so far beyond SL it's not funny. New big open world multiplayer online games are coming out almost every month now, and they all work better than SL. The technology is here. Many allow building, so the excuse that "games are all carefully developed content" doesn't fly any more. Wildstar put in a "player housing" system, and players started building elaborate structures. So they added more building features. Now some people log in just to hang out.

Many MMOs have continents as big or bigger than SL continents. Some games have region boundaries so well handled that the user doesn't notice. Scaling is a solved problem.

In scale, Fortnite recently hit 3.4 million concurrent users, a new record.  It's free to play. In-game purchases were US$223 million in March 2018. 

Yes, SL isn't a game in terms of goals, but underneath, the current generation of MMOs do most of the same things. Better.

That's what users expect. The SL homepage suggests something that looks like an AAA game title. Then new users get in and feel cheated. That's part of why so few of those 4000 new signups a day turn into regular users.

Edited by animats
Link to comment
Share on other sites

1 hour ago, animats said:

The stuff I'm talking about is well known technology which could be retrofitted to SL without too much effort.

I can't imagine there is anything that can be easily retrofitted into SL.

Some years ago there was talk about LL releasing the software as open source, not just the bits that became the starting point for opensim, but the everything. One of the Lindens explained that it wasn't possible because the code was too monolithic.

When Ebbe was asked why they started working on Sansar rather than upgrade SL, one of his explanation was that there was too much spaghetti code in the SL software to upgrade it effectively. (I can't remember if he used the term "spaghetti code" or something with the same meaning.)

That explains a lot. Somehow, between them the first decade of SL developers managed to combine two anti-patterns that should be mutually exclusive into something as logic-defying as monolithic spaghetti code. Functions that could and should have been kept together are performed by in completely different ways by completely separate codes while functions with no apparent relationship are interconnected by a mess of unpredictable dependencies. A good example of that was when they introduced server side baking and the viewer suddenly started using you avatar's head texture for the sky. On top of that, there's obviously been a lot of thoughtless copy-and-paste programming going on and of course, it's all but undocumented. We notice that as users, imagine how hard it is for the poor programmers who have to spend all their working hours trying to sort out the mess with little or no documentation to help them.

 

1 hour ago, animats said:

The SL homepage suggests something that looks like an AAA game title. Then new users get in and feel cheated. That's part of why so few of those 4000 new signups a day turn into regular users.

Yes, I think you are spot on there. It's not fair to compare SL with modern MMO's that way of course but that's how LL tries to sell it and that's what newcomers expect. And since you mention sim crossings, even Whitecore handles those better than Second Life and that's a hobby project developed by only two programmers in their spare time.

Edited by ChinRey
Typos
Link to comment
Share on other sites

5 hours ago, animats said:

The stuff I'm talking about is well known technology which could be retrofitted to SL without too much effort. What the successful MMOs are doing right now is so far beyond SL it's not funny

It's amazing how much easier it is to do things when you  ONLY HAVE TO DEAL WITH THE 30 GB OF PROFESSIONALLY MADE ENGINE OPTIMISED CONTENT PRE-INSTALLED ON THE CUSTOMERS LOCAL HARD DRIVE.

5 hours ago, animats said:

Many MMOs have continents as big or bigger than SL continents. Some games have region boundaries so well handled that the user doesn't notice.

"Super Tech-Illiterate Gamer Fool, the MMO" Client wrote...

"User Animats entering map #473 at spawn point #2 - Body #47, texture #47g, head #23, texture #23c, weapon #97, texture 97q - SPAWN!"

Yeah it's amazing how easy border transitions can be when you... (see subtle hint in first paragraph of this post)

5 hours ago, animats said:

Fortnite recently hit 3.4 million concurrent users, a new record.  It's free to play. In-game purchases were US$223 million in March 2018

LL have announced that they are officially commited to retaining the 9% of existing customers who pay under a $1 a month to save $70 odd a year in land costs, at the expense of EVERYBODY else in SL. Seems they missed the last 10 years of Free-2-Play Micro-Transaction based MMO Income strategies.

5 hours ago, animats said:

That's what users expect. The SL homepage suggests something that looks like an AAA game title. Then new users get in and feel cheated.

Absolutely. The Powers that be, work on the assumption that if people do it on a computer, for fun, it must be a "game" and market it as such, allowing the Marketing sith to make Adumby Photosnobbed promises that the 15 year old system cannot deliver.

3 hours ago, ChinRey said:

one of his explanation was that there was too much spaghetti code in the SL software to upgrade it effectively

The IT Jedi, whose padawan I once was, called it "Cthulhu Code",

Generations of coders work on a long running project for a few months then leave for greener pastures. Eventually some bright young padawan coder comes in and gets told to sort out a bug in subsystem #47839, which after 4 months examination seems to result from an unexpected interlock with what appears to be a function to determine the phases of the moons of Jupiter, as seen from Pluto.

Then the poor padawan stays late in the office one night, trying to fix this stuff, forgetting that the Office is build on the site of an ancient temple of Dagon, and that it's the night of the full moon and a leap tide...

Next day their workmates come in and find the young coder has left the company, leaving some personal effects behind...

Specifically, 8 pints of blood, 1 kidney and half an ear hole...

His workstation is switched off with an old broom handle, by an IT Ops Tech in hazmat gear, and replaced with a new one, and HR are told to advertise for a new junior coder...
 

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Klytyna said:

The IT Jedi, whose padawan I once was, called it "Cthulhu Code",

That's an even more fitting name!

But "spaghetti code" was the term used in AntiPatterns, and it has become kind'a like the standard textbook on how to fail. I guess the authors weren't much into Lovecraft.

Link to comment
Share on other sites

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