Jump to content

LOD Upload Order To Second Life Is Different From Unity and Unreal


Codex Alpha
 Share

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

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

Recommended Posts

Posted so others that might get stuck or pull their hair out might find this topic and understand once and for all.

I've been filling in the mesh slots manually for years cuz sometimes I noob out on even the most basic stuff, but when I started working in Unity and Unreal, I took a second look at SL on their best practices page and realized they could auto upload too if named correctly.

But hey, of course it's backwards. I thought I was losing my mind when things weren't loading up as expected, sometimes backwards or w/e lol

No wonder... If we don't have enough to deal with with PBR and converting to SPC/GLS, and flipped normals because a DirectX file was used unknowingly gah.

lodswhywhywhywhymorebraindamagewhywhy.thumb.jpg.c27a48a25f085382f32fba3cd93981c8.jpg

I ask why? Why, why why? It's also very unintuitive going from LOD3 to LOD0 especially when your file system in your folder wants to list it in order.

image.png.e631cd236ad3c5d97c0adfcd764998f6.png

Is there something that can be done with this? None of us should have to reverse our workflow to deal with SL - or is this just another cruel thing we have to deal with.. Just think backwards guys when we work in SL, and then your mind is backwards once you work in other engines too gahhhh.

At this point, I'm just going to continue with manual filling of fields I guess - got enough to remember flipping between game engines and 3D platforms.

Solution: (Yes, many people hate solution suggestions) Fix LOD listing practice to fit with industry standards.

Caveat: Maybe this is not industry standard and SL's scheme matches those of other software programs, eg. Modo, Maya, Sketchup, CAD

Scolding or condescending responses not appreciated. If your response is not helpful or informative, don't bother.

  • Like 2
Link to comment
Share on other sites

Yes I totally agree. But I also remember at the time of mesh implementation, when I tried to make this point,  the LL staff's half away denigratory/condescending attitude saying "we hear that, but our method is more logic", under the assumption Tha higher number = higher number of vertices 🤦‍♂️

I stopped long ago to try and talk to LL. They don't listen, go ahead and leave things half implemented. See BOM without materials. See animesh without attachment points and shape support.

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

In the same sense that LL's choice is their own, Unity and UE's proprietary choices are not some kind of standard either, just how those work. The LOD numbering convention for SL was defined way back in its early days when there was very little prior art (prims have LODs remember). In terms of "standards" while we could argue that those two are de facto standards in the game engine space now, it was not always so and outside of game engines, but still squarely in the 3d modelling space we have examples that continue to use the LL style convention.

The ordering in SL makes sense technically. We stream the content and we pull in the smallest, least detailed models first, those are LOD0, then if and when we need to improve the quality (as we get nearer for example) the other LODs are appended to the list (LOD1-3). In theory, you could extend this conept to allow a "closeup" LOD with super-high poly (realtity check we can't because of other constraints, but that is at least part of the thought process behind a zero based incremental LOD numbering system. 

It is very common in arc vis and geo spatial data representation for LOD0 to be the lowest LOD, more or less just the ground plan model and then build them up.

https://3dbuildings.medium.com/how-building-data-works-level-of-detail-e9bad0b61baa

2afcbe59d45da634bca5ab6748c5a562.png
However, justifying a naming convention with an underlying technical implementation is rather weak. I personally always used to name my files and models inside them _HIGH _MED _LOW etc. because that made sense to me. I changed when I started to write viewer code and realised how it was setup. My Blender Addon uses the LL convention by default, though you can change that in the settings.

Here's a question though. How helpful would it be if the naming style was selectable? After all it exists in a visible form only at upload so it would be possible. In theory I could add a drop down to select the naming convention, and a setting for the preferred default. Would that be useful?

  • Like 5
Link to comment
Share on other sites

Maybe. I think I was using Original then Original_MED, Original_LOW, and Original_LOWEST but somewhere I switched the LOD0 etc system and the probs begin. There's been a gap between my SL stuff, leaving for a couple years and working in other systems, then returning and wondering what got broke - when it was me that changed and my workflow. Mainly posted just so others can search, and your response has good info to consider. I guess I picked up that naming them 0-3,4 then being confused coming back to SL and they're effectively loading backwards or scrambling :D

Link to comment
Share on other sites

15 hours ago, Beq Janus said:

In the same sense that LL's choice is their own, Unity and UE's proprietary choices are not some kind of standard either, just how those work

Well that's not entirely precise. You see, what you're showing as an example comes from another proprietary software system, not from another game engine. The numbering system where the 0 is assigned to the highest level of detail was in place from the very first institution of a game engine, to ease out the selection of a model based on the camera distance and, later, the pixel numbers occupied on screen by an asset. It's been like this from the inception of the very first game engine that wasn't simply a raycast based texture projector, like Doom. The game industry has always had THIS standard. This is the reason why unanimously all game engines I've worked with in my journey of 3d content creation, from the ancient chrome engine, Bethesda's Creation Engine, Godot, Unreal (from the time of the very first SDK) and Unity use this convention. Then yeah, everyone is free to set their own standards if the so wish. It is just not compliant with well established standards.

Edited by OptimoMaximo
Typo pointed out by Encore
  • Like 1
  • Thanks 2
Link to comment
Share on other sites

OH and I forgot to mention the engine I worked with that I hated the most: Cry Engine. I guess that in my case its name comes directly from how I felt about it... I wanted to Cry every time I had a task assigned involving direct in engine manipulation.

Edited by OptimoMaximo
  • Like 2
  • Haha 1
Link to comment
Share on other sites

On 5/30/2022 at 12:39 AM, Codex Alpha said:

e I switched the LOD0 etc system and the probs begin. There's been a gap between my SL stuff, leaving for a couple years and working in other systems, then returning and wondering what got broke - when it was me that changed and my workflow.

Yeah that would do it. but LOD name matching is the only way to guarentee the correct model assocaition across files when you have complex scenes. If you do not have _LODn suffixes in the model names then it falls back to the old "best guess" model which can lead to all kinds of weirdness. 

I've made an attempt to address this in  way that I hope can cater to all. I've long been of the view that too much of our "user interface" is exposing underlying details that a user should not have to deal with. as such, I plan to allow you to set your preferences for LOD naming. This preference wil apply to both filename and model naming within those files and I would hope will help. 

17b951c6dff07b95f68436a4c6d0176e.png

It still needs some further testing, on which subject, if anyone has a Colllada file with Unity style LOD names that they would care to share with me for testing that would be useful and ensure I am not going down the wrong path here.

Because the LOD matching happens at a level somewhat detached from the UI itself the changes are not per upload, but would be set as a preference that matched your personal workflow, I hope that is useful, the ability to change it in the fly for each upload is possibly useful but given the likelihood of significant changes in the uploader in the near future for PBR support and gltf it is probably nto worth the extra time.

https://gyazo.com/ffd6e32fbd8aaf3fcbe4a66765d2869b

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

1 hour ago, Beq Janus said:

Yeah that would do it. but LOD name matching is the only way to guarentee the correct model assocaition across files when you have complex scenes. If you do not have _LODn suffixes in the model names then it falls back to the old "best guess" model which can lead to all kinds of weirdness. 

 

True. Changing from some mass convention for SL's sake isn't going to work. I've tried and even dedicate each project to it's own folder, but when something is backwards... becomes counter-intuitive :D

1 hour ago, Beq Janus said:

I've made an attempt to address this in  way that I hope can cater to all. I've long been of the view that too much of our "user interface" is exposing underlying details that a user should not have to deal with. as such, I plan to allow you to set your preferences for LOD naming. This preference wil apply to both filename and model naming within those files and I would hope will help.

That is what makes Firestorm so great for many of us who are creators, developers and observers/deconstructers/learners/admirers of other people's products. I understand it's hard to be a be-all for everyone - perhaps that could be solved by hiding all the 'engineering'-level features by default - like a 'developer' mode or "Advanced" menu like SL Viewer has.

I'm just one person, so may not be worth changing for me, but the options to match other engine schemes would definitely be helpful - but I'd hate to cause you to waste your time with such features - when I'm just one person and the general attitude seems to be 'just deal with it'.

Looks good though and useful for those of us who want to maintain a certain workflow. Right now many of us are of course working with more modern file formats like FBX, working in PBR, working in or trying out different game engines, already dealing with other issues trying to get things into SL (as relatively newer creators still figuring out the kinks) so anything that facilitates that is good for anyone who would be interested in such a thing.

1 hour ago, Beq Janus said:

It still needs some further testing, on which subject, if anyone has a Colllada file with Unity style LOD names that they would care to share with me for testing that would be useful and ensure I am not going down the wrong path here.

Because the LOD matching happens at a level somewhat detached from the UI itself the changes are not per upload, but would be set as a preference that matched your personal workflow, I hope that is useful, the ability to change it in the fly for each upload is possibly useful but given the likelihood of significant changes in the uploader in the near future for PBR support and gltf it is probably nto worth the extra time.

https://gyazo.com/ffd6e32fbd8aaf3fcbe4a66765d2869b

Not sure how many people working in Unity, Unreal or other engines (Even Godot) are actually using *.dae  Probably very few. FBX is king.

But yes going from a more intuitive (and standardized) LOD_0-4 naming system will definitely help. It's not intuitive to select #4 before #3, even if one were diligent, and if you name so that SL can automatically load it, then the filenames have to be backwards.

Appreciate you working so hard on Firestorm. It is a good example of how a viewer can be, and I am progressively unable to live without it because as a creator builder and explorer it has too many tools that are useful for me NOT to make it my go-to now :D

Link to comment
Share on other sites

On 5/30/2022 at 12:21 AM, Beq Janus said:

However, justifying a naming convention with an underlying technical implementation is rather weak. I personally always used to name my files and models inside them _HIGH _MED _LOW etc. because that made sense to me. I changed when I started to write viewer code and realised how it was setup. My Blender Addon uses the LL convention by default, though you can change that in the settings.

Why can't everybody use my system: a for high, b for mid etc. ;)

A few more serious notes:

  • A "industry standard" system that gives the most detailed LOD model the highest number makes no sense since there is no industry standard for how many LOD levels there are.
  • The problem with any automatic naming convention is that it doesn't account for the same LOD model used for several levels. Is there a way to fix this?
  • Selectable naming styles would be helpful but it's not that important so whether it's a good idea or not depends on how hard it would be to implement.
  • Like 1
Link to comment
Share on other sites

2 hours ago, ChinRey said:

Why can't everybody use my system: a for high, b for mid etc. ;)

A few more serious notes:

  • A "industry standard" system that gives the most detailed LOD model the highest number makes no sense since there is no industry standard for how many LOD levels there are.
  • The problem with any automatic naming convention is that it doesn't account for the same LOD model used for several levels. Is there a way to fix this?
  • Selectable naming styles would be helpful but it's not that important so whether it's a good idea or not depends on how hard it would be to implement.

This affects the auto-loading of all the meshes of course. If one changed their mind and use LOD0 for both 0 and 1 slots, then the suggested "Use LOD above" (to not reload meshes - could have been one of your suggestions :D) is very easy.

If I was to manually enter them in, I've been doing that pretty much all the time until recent, but then discovered its backwards from what I expected.

I generally try to make LOD_1 a bit more optimized then the default higher poly, remove stuff that I can get away with, and fill out all the rest, though admittedly LOD_3? (Lowest) is generally a waste of time unless you have an image on a billboard, so it's mostly pointless.

This new trend of 12000, 12000, 2, 2 on objects isn't the answer either, but if SL is working on Auto decimation might not matter

  • Haha 1
Link to comment
Share on other sites

  • 1 month later...
On 5/29/2022 at 11:21 PM, Beq Janus said:

Here's a question though. How helpful would it be if the naming style was selectable? After all it exists in a visible form only at upload so it would be possible. In theory I could add a drop down to select the naming convention, and a setting for the preferred default. Would that be useful?

I personally would appreciate having the option if nothing else simply because I keep tripping up over this even though I should remember it by now

Link to comment
Share on other sites

I totally get the wish for it to be consistent, but...

As a programmer who uses multiple languages I adapt to the calling sequences, the naming conventions, whether the language has "shortcut logic" and a host of other things depending on the language I'm coding in. Hell, sometimes I "switch mental contexts" based on whether I'm going to compile for a big-endian or little-endian OS! I use them all from the same developer platform (eclipse, if you must know) - How is this any different to that for a 3d modeller? You use the conventions and styles best suited to the target platform.

  • Like 1
Link to comment
Share on other sites

7 hours ago, Da5id Weatherwax said:

I totally get the wish for it to be consistent, but...

As a programmer who uses multiple languages I adapt to the calling sequences, the naming conventions, whether the language has "shortcut logic" and a host of other things depending on the language I'm coding in. Hell, sometimes I "switch mental contexts" based on whether I'm going to compile for a big-endian or little-endian OS! I use them all from the same developer platform (eclipse, if you must know) - How is this any different to that for a 3d modeller? You use the conventions and styles best suited to the target platform.

I can answer that. As a studio pipeline TD, the modeler, the rigger etcetc want tools to automate processes depending on the context. As soon as something errors out, you know what is the average ticket i get for support? "I got an error", period. No matter how many times we point to the report template to fill up, they do not want to even copy paste the error message, to give us a track to reproduce the error and understand what's going on. They push the keyboard forward and "can't continue, not my problem" kinda attitude. So no, they can't do the same as you do.

Link to comment
Share on other sites

On 7/3/2022 at 10:21 PM, OptimoMaximo said:

I can answer that. As a studio pipeline TD, the modeler, the rigger etcetc want tools to automate processes depending on the context. As soon as something errors out, you know what is the average ticket i get for support? "I got an error", period. No matter how many times we point to the report template to fill up, they do not want to even copy paste the error message, to give us a track to reproduce the error and understand what's going on. They push the keyboard forward and "can't continue, not my problem" kinda attitude. So no, they can't do the same as you do.

I know that a responsible professional such as yourself would never do this but I ALSO know the temptation to set up a one-key macro for "Ticket closed. Insufficient information provided to reproduce." must be ALMOST irresistable.

Link to comment
Share on other sites

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