Maya exporter doublesided doesn't match docs?

Is this a bug? Double-sided export doesn’t duplicate faces, as claimed in docs. Maya 2022.3, Arnold standard shader as recommended.

I’m exporting a thin, single-sided object (flower petals :cherry_blossom:). With default GLB export settings, it displays in Babylon sandbox and elsewhere as you’d expect: front faces are visible, but the backside of those faces renders nothing. OK, fine

If I try again, and I select the Babylon material your exporter creates, and uncheck “Backface Culling”, the exported GLB model displays shading on the front of faces and the back. OK, cool! It doesn’t even duplicate & reverse the faces as claimed in the docs, so the filesize doesn’t grow. Just flips the switch. Nice!

But: sometimes I actually want the duplicated faces, as promised in the docs. Why?!? Because Apple’s iOS AR Quick Look will not respect the DoubleSided flag in a USDZ file! :rage: Not your fault, of course! :slightly_smiling_face:

I’ve tried a number of approaches and cannot get double sided shading in AR QuickLook. At this point I really would like to have the exporter create the extra faces when I ask for them.

Is there a switch I’m missing? Arnold standard shader doesn’t have a double-sided switch, and the mesh properties are double-sided by default in Maya.

Also: Babylon.js is great! Using it lots :smiling_face_with_three_hearts:

1 Like

Do you know something about double sided faces with Maya @PatrickRyan ?

1 Like

cc @Guillaume_Pelletier as well

It appears that we are making use of the Maya conditional node for rendering different materials on each side but I am not sure how we need to wire them. Wiring the conditional of two textures to one material based on flipped normals works in the render, but I get an error on export that the file path is invalid. If I wire the conditional to the surface shader node and connect two different materials split by flipped normals, I get an error about unsupported material types (tried both aistandard and blinn materials to see if there was an incompatibility with specific material types:

image

If @Guillaume_Pelletier can take a look at the exporter code and let me know what the conditional is expecting and where we expect to see it, I can create a sample and update the docs accordingly.

1 Like

@PatrickRyan could you send me your test scene in order to be sure about the code path… this code parts are not obvious to read and follow…
Basically the main logic is

1 Like

Happy to, @Guillaume_Pelletier! Here you go:

conditionalTest.zip (10.9 KB)

Thanks,
just checked, the object of type Condition are not supported yet by the exporter, i may have a look on how to access the corresponding material to make it work…

1 Like

Thanks guys! I may be misunderstanding the conversation, but it sounds like you (Patrick, are trying to get two different materials to work for front/back?

In my case, I don’t need different materials on each side. I actually do want the documented behavior: for the exporter to create a second face with reversed normals. And for those faces to use the same material as the front faces.

My target platform (iOS AR QuickLook) never respects the ‘doubleSided’ flag, and always performs backface culling. So, I need both faces as geometry.

If the exporter doesn’t do it, I think I can figure out a way to do it in Maya. Appreciate y’all’s fast response. :grinning:

@agravois, I know this sounds off topic, but we are trying to figure out the export path that gets you the double faces. The documentation is a little sparse on details so I am trying to determine the correct export path so we can update the documentation and understand if the exporter is indeed doing what you think it is. I started with two materials on a quad to test just because that was the path suggested in the docs.

cool, I gotcha. Thanks! :smile:

1 Like