Jump to content

Another pet peeve - no inside faces on clothing


Rick Nightingale
 Share

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

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

Recommended Posts

My wife got a ton of demos from a store recently, that she's admired for a while. The stuff is gorgeous, expensive, and they had a great sale on. She didn't end up buying anything. Why? ...

Every item that she tried on, we could see through. At the hems, the cuffs, top, bottom, everywhere it was possible to see 'inside' the dresses a little, they were transparent. Or worse, there were 'ragged' scraps of mesh visible with gaps between due to the shape of it. Hardly anything had inside faces except for some of the skirts. Fine if the thing fits so closely that you can't see inside, but otherwise it just looks bad. I'm not talking about doing weird camming to try and see the issue; just looking at it normally with normal viewing angles and animations. If you're stood next to someone who's seated, looking down at them, and can see through the inside of their top through their cleavage as if it isn't there, it looks silly. On many items, things like metal fasteners on the clothes were solid and could be seen floating in the air from the inside.

This isn't the only store where I've seen this done a lot. It's one of the things we always check for when looking at demos now and to my mind it seperates truly good designers from the rest. Some do the job very well.

In many places it doesn't even have to be like a real sheet of cloth or have a continual face inside. It could just have a 'blocker' after a bit of textured cloth, like inside the cuff of a sleeve so you can't see inside (and out) when the animation moves the arm upwards.

Likewise there's a well known mermaid tail that has a problem with being able to see through the avatar at the join if you happen to catch just the right (or wrong) angle of view. All it needed was a flat plane inside, coloured to match the texture at the join edge to solve the issue, but no.

Well, it saved us (i.e. me) literally L$1000's but it's a shame. It's money I would gladly have spent on her.

Edited by Rick Daylight
  • Like 2
Link to comment
Share on other sites

Double-faces are a double-edged sword, be careful what you wish for. 

In theory the way that it works toady the creator doubles up the mesh faces to create an inside /lining. The viewer can (in theory) eliminate these when they are not visible by back face culling. This also means that as in the real world we can have a different appearance on the inside than on the outside as the mesh is separate. 

With the (apparently) much wanted, double faced solution in PBR we have (as I understand it at present) the worst of all worlds. The unseen faces cannot be culled because they are double-faced. thus we have increased overdraw and wasted effort. The PBR solution is wed to the rather braindead GLTF standard view that the "faced-ness" of an object is an attribute of the material and not of the mesh itself. Thus if I am making a material for "tarnished copper" and I decide that it should be double-sided in case someone wanted to make (for example) a copper bucket that was a single mesh skin, then every time I make a tarnished copper object with that material it will (by default) have a backface even if that face was entirely occluded. End-users will be buying materials and applying them unaware of this. The "solution" is to ensure that the "double-sided" attribute is always no-mod so that wise creators can use it appropriately. However, what we are really doing is making it easier to make poor performing content and removing options to optimise this in the viewer through automation. 

I fear that we are about to make content even less efficient to render. Ho hum

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

1 hour ago, Beq Janus said:

The PBR solution is wed to the rather braindead GLTF standard view that the "faced-ness" of an object is an attribute of the material and not of the mesh itself

This comes from the assumption that such materials are to be used for foliage with translucency. The same happens within UnrealEngine as well as Unity or Godot. I'm not sure, but it should have to do with how translucency changes its method to calculate transitioning light when double sided is set to true.

Link to comment
Share on other sites

1 hour ago, OptimoMaximo said:

This comes from the assumption that such materials are to be used for foliage with translucency. The same happens within UnrealEngine as well as Unity or Godot. I'm not sure, but it should have to do with how translucency changes its method to calculate transitioning light when double sided is set to true.

Yes, an "assumption" of usage that has become enshrined in a "standard" for transporting material information and which is entirely detached from the application of the material. In a more usual scenario, the creator is responsible for and accountable for the efficiency of their content. In SL, sadly, there is absolutely no accountability for shoddy, laggy creations, and we also have the situation where we are creating a secondary market for materials where the end use cannot be guessed by the creator and unless the platform enforces modify capability on materials we will end up with double sided materials being the norm "just in case".

No doubt it will be the fault of the viewer that everything grinds to a halt again.

Link to comment
Share on other sites

16 hours ago, OptimoMaximo said:

Well, just leave that checkbox out of the permission system and the problem is non existent.

Yes, this has been requested, it is entirely out of the hands of the viewer devs though.

Link to comment
Share on other sites

On 12/29/2022 at 1:30 PM, Beq Janus said:

The unseen faces cannot be culled because they are double-faced. thus we have increased overdraw and wasted effort.

Are they seriously going to introduce mandatory backfaces??? If anybody has any influence on the developers at all, stopping this is first priority!

Link to comment
Share on other sites

2 hours ago, ChinRey said:

Are they seriously going to introduce mandatory backfaces??? If anybody has any influence on the developers at all, stopping this is first priority!

Not mandatory, in fact not even within control of the mesh creator which is why the glTF spec seems to me to have this arse-about-face. Ultimately you get the most efficient solution when the mesh is aware of how it should be rendered, not dictated by the "paint" that you apply to it. However, that is how glTF has expressed it and thus that is where we are heading.

It is clear that the last thing we want is LL creating arbitrary specifications of their own and reinventing wheels that were already there. However, we appear to have taken "a standard for transmitting assets" and munged that with the rendering of them, and it is in that grey area that the demons are lurking.

Link to comment
Share on other sites

24 minutes ago, Beq Janus said:

Ultimately you get the most efficient solution when the mesh is aware of how it should be rendered.

The best chance for doing that comes when you change clothes. That's when an avatar comes together, and, for the first time, enough information is available to optimize. This is when Bakes On Mesh runs. That's when a mesh optimization should happen, with hidden triangles being removed, meshes combined, and a game-like avatar combined mesh generated, at least for the lower LODs.  Upload time is too early, because the rest of the avatar isn't known yet, and view time is too late, because it would delay avatars appearing. At clothes-change time, you can do things that take a few seconds on some baking server. This is also an opportunity to generate lower LODs and combine textures from clothing layers.

This is technically difficult, but Roblox does it. Think of it as "Bakes of Mesh", to go with "Bakes on Mesh".

Link to comment
Share on other sites

3 hours ago, arton Rotaru said:

No, It's just a feature of the glTF material spec. It's a checkbox in the material editor.

Oh good! I was really worried!

 

2 hours ago, Beq Janus said:

Not mandatory, in fact not even within control of the mesh creator which is why the glTF spec seems to me to have this arse-about-face. Ultimately you get the most efficient solution when the mesh is aware of how it should be rendered, not dictated by the "paint" that you apply to it. However, that is how glTF has expressed it and thus that is where we are heading.

I have to take your word for it when it comes to efficiency but from a logical point of view it makes no sense to have backfaces as a material parameter. But that's only to be expected; programmers aren't usually good at logical thinking after all.

Edited by ChinRey
Link to comment
Share on other sites

Idk, having it as a material property might be a non-issue if the current behavior is what it will be in the end. Currently you can edit any settings of a no-mod material asset in override mode. Override is when you have the material applied to an object, and then edit its properties on a per object basis. Technically you don't alter the original material asset at all this way. It just stays as it was. 😇

Also having double sided as a material property makes it more flexible, rather than having the entire mesh double sided, or not. I guess the same "no-mod" concerns would apply to meshes as well, if they had the abillity to be set double sided.

I also don't see why selling material assets as no-mod would be such a widespread thing, given that most of the building components today are rather full perm.

 

Edited by arton Rotaru
Link to comment
Share on other sites

1 hour ago, arton Rotaru said:

Also having double sided as a material property makes it more flexible, rather than having the entire mesh double sided, or not

Yes, that's actually a good argument for making backfaces material dependent.

How many SL objects would backfaces be useful for anyway? I haven't had time to look at glTF yet and I'm on vacation now but I assume we're talking about traditionalbackfaces with the same texture as the main side and not some new definition of the term. If that is the case, we're talking one mesh in a thousand at most. It wouldn't help the issue in the original post here since you don't want the same texture on the inside of your clothin as on the outside.

Link to comment
Share on other sites

1 hour ago, arton Rotaru said:

I also don't see why selling material assets as no-mod would be such a widespread thing, given that most of the building components today are rather full perm.

it depends on how the asset class ends up being managed. If it's fully configurable using in-world utilities (like a day/night setting object) ho-ray. On the other hand, if LL throws up their hands and implements it more like current textures (no 'fundamental' changes after upload, no-mod practically just applies to the description field) I could see some concerns.

Link to comment
Share on other sites

2 minutes ago, Quistess Alpha said:

it depends on how the asset class ends up being managed. If it's fully configurable using in-world utilities (like a day/night setting object) ho-ray. On the other hand, if LL throws up their hands and implements it more like current textures (no 'fundamental' changes after upload, no-mod practically just applies to the description field) I could see some concerns.

I don't know how a day/night setting object works. The PBR material asset is fully configurable in-world, though. You can even create a material asset in-world.

  • Thanks 1
Link to comment
Share on other sites

Just now, ChinRey said:

In that case, the biggest question is how many meshes in SL will turn up with backfaces enabled even if theyt don't actually have a single visible one anywhere?

Yeah, there will be good stuff, there will be bad stuff. As always. Can't do much about that, actually. The alternative would be to not have such features at all.

Link to comment
Share on other sites

22 hours ago, ChinRey said:

I have to take your word for it when it comes to efficiency but from a logical point of view it makes no sense to have backfaces as a material parameter. But that's only to be expected; programmers aren't usually good at logical thinking after all.

And this is addressed to @Beq Januso

A property like this makes more sense in a shader rather than a shape. The shader can simulate something at render time, which is lighter weight than generating the back faces from a geometry node: the former simulates on screen starting from the actual geometry, the latter should actively duplicate and flip the target geometry.

Plus, what Arton noted

Link to comment
Share on other sites

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