Why does this mesh split on one edge with Smooth Polys (PP2014)



  • 0_1475855331767_popBoxes1.png
    More Tests. Upper Left is the original bad box. Top Center is adding two Top (left side) faces to before the Outside. Top Right is reversing the order of the two Top faces moved in the center image. No change. Lower Left is moving the Top Face (Left Front) to after the Outside faces. Bottom Center is turned to show the pop and it has only three Top faces in front of the Outside faces. The pop occurs on face on the last Top face in the list, however it does not do the same thing as shown in the two above. The lower Right image shows all 4 Tops in front of the Outsides and there is no pop. And if I place all the Tops after the Outsides no pop.



  • New tests and files to look at.
    0_1475873752736_Titledboxes.png
    0_1475873822576_TestBoxEX.zip.txt
    Remove the .txt at the end and you will have all the object files that created these images. Each name starts TestBox and then the ending is listed under each image of the box.

    TestBox is the original box that 3dcheapskate uploaded, with #comments above each face to tell which one they are referring too.
    TestBoxob4T is the same file with the Top Left Front face placed just below the Outside Left Front Face.
    Notice the Original has the pop and the modified one does not.

    TestBoxLRTb4LRO takes the TestBoxob4T object and moves the Left Rear Top face to in front of the Left Rear Outside face. You can see the pop out has moved to the back face.

    TestBoxLTb4LO takes both Top faces on the left side and places them before the Left Outside faces. They do not have the pop out.

    TestBos3Tb43O has 3 Tops before there 3 Outsides and we get a pop out on the Right Front Face. You can see the slight curve on the right hand side.

    TestBox4Tb44O places each Top face in front of each Outside Face and again we have no pop out.

    There are a lot more tests that could be run, but I don't know to what end. I find it weird that I can place the face types into groups and they do not pop out. Also if all the Tops are placed in front of each of their Outside faces they do not pop out. It only appears to pop out if an odd number of Tops are before Outsides, and even then not sure what determines which face will pop out. If there is only one then it makes some sense as you kind of know what face will pop. But the 3 faces, just tried to reorder the faces in the object file and it did not change which face popped out.

    Once I get home to a computer where I can log a bug report I will submit it.



  • I believe the solution is to retopo the object if this must be smoothed. Otherwise disabling smoothing on the props properties in Poser.
    Why? It is my experience Poser and other applications break face welds when you try to smooth something that cannot be further sub-divided. Also excessive smoothing will break welds on any grouped object when you exceed the crease angle of the render engine.



  • @dreamcutter: The problem's not specifically this mesh. I'm creating a number of angular meshes that are intended to be rendered with Smooth Polys to give them nice realistic edges, using bevels and control edges to control how tight the rounding is (e.g. my goblin enamel). If this problem occurs with such a simple mesh as this one, then it's a far bigger problem - how can I rely on the smoothing working with more complex meshes ?

    @richard60: Changing where the popout occurs by moving face lines got me thinking - what's the minimum mesh to cause this? I've got it down to 9 vertices/4 faces...

    v 0.353553 0.250000 0.000000
    v 0.000000 0.250000 0.353553
    v -0.353553 0.250000 0.000000
    v -0.353553 0.750000 0.000000
    v 0.000000 0.750000 0.353553
    v 0.000000 0.750000 0.318198
    v -0.318198 0.750000 0.000000
    v 0.353553 0.750000 0.000000
    v 0.318198 0.750000 0.000000
    f 4 5 6 7
    f 1 8 5 2
    f 2 5 4 3
    f 5 8 9 6

    0_1475925226947_4faces.jpg



  • Spoke too soon - 8 vertices/3 faces !

    v 0.353553 0.250000 0.000000
    v 0.000000 0.250000 0.353553
    v -0.353553 0.250000 0.000000
    v -0.353553 0.750000 0.000000
    v 0.000000 0.750000 0.353553
    v 0.000000 0.750000 0.318198
    v 0.353553 0.750000 0.000000
    v 0.318198 0.750000 0.000000
    f 1 7 5 2
    f 2 5 4 3
    f 5 7 8 6

    0_1475926137675_3faces.jpg

    Move the first face (f 1 7 5 2) to the end and the mesh renders as it should. I think the Poser techies should be able to work out what's causing it from that !



  • LOL...did I say 3 faces ?

    How about 7 vertices / 2 faces ?

    v 0.000000 0.250000 0.353553
    v -0.353553 0.250000 0.000000
    v -0.353553 0.750000 0.000000
    v 0.000000 0.750000 0.353553
    v 0.000000 0.750000 0.318198
    v 0.353553 0.750000 0.000000
    v 0.318198 0.750000 0.000000
    f 1 4 3 2
    f 4 6 7 5

    0_1475928037321_2faces.jpg

    N.B. swapping the order of the faces doesn't fix it this time.


  • Poser Ambassadors

    @3dcheapskate - if you're using subD, is there any need to use smooth polys? I've been making meshes for subD for a while now and haven't yet seen any use for what I consider to be a legacy option. I'm not saying I'm right, just that I don't see the point in using both ...



  • @caisson: Is there anypoint in using Smooth Polys? Not really, unless you're stuck on Poser 9 or earlier.
    And I hadn't thought of the L-word - so I guess that'll put the kaibosh on any chances of SM fixing it? Unless this little oddity happens at the root of some other problem.


  • Poser Ambassadors

    @3dcheapskate - it's always worth reporting something that's not working correctly :) Plus, I know that supporting older content is important to the devs, so if this is something that can be fixed I'm sure they'd look at it, for the current version anyway. I didn't consider older versions of Poser - am always too focused on what I can do in the current version, my bad!



  • 0_1475945157382_ThreeFaces.png 0_1475945185219_ThreeFaces.zip.txt
    Here is 3dcheapskates new OBJ with a render of the 6 possible face listing order. They are Left Top and Right. That indicates what the order of the faces inside the OBJ file is.

    In his two face post and as can be seen in the right two images the Right face does not do anything to reduce the pop out of the other two faces, since it either is not calculated or is rendered first, (conjecture on my part). In the other 4 images the Right face pulls the other two faces back into alignment, creating the sharp edges that the object is.

    The other fact is that as I understand it is that SubD shrinks a mesh, whereas Smoothing expands the mesh. With that in mind I increased the Crease Angle on the objects and at 90% they all smoothed the same way as can be seen below.
    0_1475946502469_ThreeFaces90Angle.png

    All this leads me to think the issue is that in the pop out area we get to a point where two faces are connected but only by a single vertex and that is why with the crease angle below the objects connection angle it stays true on the far edge but curves on the point where it has the single vertex. Where there is only a single vertex the crease angle does not matter, it will smooth, unless we have another face to pull it back into alignment. That is why you can get some objects looking right and others not. Going back to the original object box even the one I "fixed" if you increase the crease angle to 90% or more it blows up into a very weird mess. Some sharp angles and other curves. And the bottom becomes disconnected but stays square.


  • Poser Ambassadors

    Poser raps its own vertex map on everything. And it has never done a great job of that. The smoothing angles of the vertex' that tells poser what to smooth are way off. If you have modeled a perfect OBJ with smooth and hard edges using a vertex map you can be sure Poser will destroy that. That's why most people model with supporting edges to fix that - or at least make the strange bulges less seen.



  • @3dcheapskate said in Why does this mesh split on one edge with Smooth Polys (PP2014):

    If I import this OBJ into PP2014 (all checkboxes cleared) and render with Smooth Polys the cube splits open along just one of the outer vertical edges.

    This is because of the "Smooth Shading" effect. Smooth shading is calculated with "vertice normals." When there are not enough vertices for the algorithm to calculate "smooth shading", which is exactly what it sounds like, then warping can happen. This is not a mesh/geometry effect, it's a shading effect. With smoothing for the object and the renderer turned on and with Smooth Shading set for the object (In the object menu), you will always get this effect with this particular object no matter what "edge" of that box is facing the camera. (*** Not necessarily.. see below Weird object.) The "hard edges" of the box, relative only to the camera (since that is all this cares about) will be suitably "hard" and straight and don't require much "shading." (Usually, that is, unless there are other verts/issues confusing the shading algorithm)

    ..* What was this object constructed in? While writing this, I was rendering in PP2012. (Did a sequence, previously, in P11) I decided to render a few different "spins" of the object and only one edge is deforming according to the expected smooth shading problem. It may be that the vertice order this object was constructed in is running onto itself as if the object was constructed "from the side" and wound around to connect to the verts on the side or something? IOW - Only that edge is deforming, which leads me to believe there's something special going on. Since it's not a split-verts object, either the vertices are "spun" on that edge or there's something else funky confusing the smooth shading more than "normal" for Poser.

    In any event, errors like this are to be expected with Smooth Shading on low poly, inorganic, hard-edge shapes. It's because there aren't enough verts with their corresponding edges (Usually corrected by modeling by using a chamfered edge with very little separation between vertices) to yield enough info for a smooth shading effect.

    @richard60 said in Why does this mesh split on one edge with Smooth Polys (PP2014):

    Not sure why it fixed the problem, but putting the like faces together fixed it on my system.

    I think I know why. Or, rather, where one needs to look.

    A long time ago, Poser had issues when two material edges met between groups. Calcuated effects were not extending across material zones. It had something to do with how material zones/rendering worked or some such. By mapping the object with material zones, you may have forced the smooth shading to exclude vertice normals for bordering groups, which force the vertice normals along one edge only. This would be sort of a "spit vertices" type of effect, except done by Material Group, somehow, during the rendering process calcs for smooth shading for this particular object. For some reason, it may be that the smooth shading is halting at the Material Group zone and either not including or reducing the smooth shading effect by carrying it across Material zones.

    (PS - Just for general reference: Smooth Shading doesn't "do" anything to the mesh. It's a shading algorithm designed to do what it says, only used when rendering in something besides the OpenGL-dependent Preview Window, and it won't deform the mesh, itself, but it will deform the render of the mesh in Firefly to produce smooth transitions between edges. Sub-D actually deforms the mesh by adding geometry according to a specific, usually chosen, algorithm that, in effect, shrinks the angles between the resulting generated faces, compared to the original geometry, which, in turn, appears to reduce the "volume" of the model, effectively "shrinking" it.... (Breathe....breathe... :) ) "Smoothing" and "Subdivision" are sometimes used interchangeably in discussions, but they are not the same. Some 3D programs confuse the issue, further, by calling general geometrical Subdivision "Smoothing.")

    Still, normally, I would expect no amount of Material Group magic to fix the issue with low polycount inorganic objects and Smooth Shading. At least, not if Material Groups were working correctly and not interfering with non-materials calculations that span material groups. (Note: There was a detailed discussion, years ago, either on Renderosity or RDNA that gave specifics for the issues between Material Groups in certain calculations that Firefly was having trouble with.)

    @3dcheapskate said in Why does this mesh split on one edge with Smooth Polys (PP2014):

    how can I rely on the smoothing working with more complex meshes ?

    Because the smooth shading algorithm will have much more information in the form of "vertice normals" in order to create smooth shading effects. But, with a caveat, of course - In order to yield a "hard edge" with Poser's Firefly brand of smooth shading, you have to give Poser much more information at that edge in the form of... more vertices along the edge. Or, more edges along the edge - Whichever phrase you prefer to use. :)

    This doesn't mean that it's practically impossible to model hard, inorganic, angular models for Poser. Mileage varies on how accurately it will reproduce a hard edge with Smooth Shading turned on and set "appropriately." But, for default reference, putting small chamfers with very little separation away from the central "hard edge" will give Smooth Shading enough information for it to appropriately calculate a hard edge there.

    Chamfering has to be done well in complex objects with Smooth Shading in order to avoid "puckering" where a lot of vertices end up stacked close together and, because of how they're formed, end up ratcheting up the shading effect, producing a "puckered" render in that area. A guideline would be to avoid having more vertices at a "corner" than are present along the desired "hard egdge" as one travels from edge to the center of the face for each chamfer "loop" that represents a hard edge (ie: No tris or diamonds.) For instance, if you chamferred an edge to make it "hard", you could follow an edge loop for each chamfer and count the same number of verts.

    Puckering in the corners of chamfered edges can be somewhat "fixed" if one bisects the edge with another edge, which sort of shrinks the smooth shading calcs in some way... No, I don't know how/why or I've forgotten, if I ever knew. :)

    Last note, because I know I'm a bloviating blowhard that likes to type and people get sick of it... :)

    Poser was originally designed for inorganic model renders. Specifically, it was designed to render the human form very, very, well and allow artists to pose those figures and adjust lighting very well. And, it does these things very, very well. (Firefly) However, because this was its original purpose, to provide artists with good reference images for posed human figures which they could then draw/paint/whatever, it was never optimized for renders of hard surface, inorganic, objects, nor configured so that one could easily render both types of objects in a single scene without having to jump through certain hoops. Ultimately, this is why we will always have issues with hard-surface, "inorganic", models when rendering using Firefly. (Unless Firefly gets a big update and CR2s, props files get some updates, as well.)

    All this is just my unprofessional, largely ignorant, but not uncaring, opinion and should be followed by, nor taken as fact by, anyone at all. :D



  • @morkonan If this is a shading issue then why can you see Andy thru the pop ups caused by the warping of the mesh. The issue is not so much does the mesh bend when smoothing is applied, but why does it not perform the same way at each point. If you look at the pictures I posted the question is why do the ones labeled R** show the pop out effect while the other 4 do not. They are the same set of points (vertex) with the same face definitions just the order that they appear in the object file is what determines how they will render. And if you look at the full boxes at the top of the post again they are the same exact models with the exception being what order the faces appear in the object file. The full boxes are 4 sets of faces that should all pop out if Poser was using the same calculations for each intersection. The fact that only one face pops and the fact that you can somewhat control which face it will be indicates the calculations are not be performed the same way for each face. Or maybe they are but once they are used they are not revisited to see if they will/should have an effect on other adjacent faces. That would explain why the objects that have the right face as the first face shows the effect of the pop out.



  • @richard60: I think I understand what morkonan's saying about it being a shading problem. If I do understand then Poser Firefly displacement is the same/similar ?

    @morkonan: Lots of interesting thoughts and observations there. I need to have my morning coffee(s) and read through it a few more times. In the meantime a couple of thoughts:

    The problem definitely occurs along a specific edge of the original mesh, and is definitely NOT camera/viewpoint related. I'd already wondered this before I started the thread and tried Y-rotating the object 90, 180 and 270 degrees in Poser to test, although I forgot to mention that.

    Your comments about the smoothing being calculated using vertex normals (which I'm guessing is the same as Batman's comment about Poser wrapping its own vertex map on everything) makes some sense and could help explain what's going on. I vaguely recall that vertex normals are calculated by averaging (perhaps weighted averaging?) the normals of the faces that use it. The original mesh and the cut-down 4 face mesh show the same single face pop-out, while the cut-down 2 and 3 face meshs have two faces popping out. My guess would be that a specific face is not being included in the calculation for a specific vertex, either in the original case or the 4, 3, and 2 face cases - here's an annotated version of the 3 face case...

    0_1476246144132_1475926130416-3faces.jpg



  • Got back a response from support and smoothing is doing what it is suppose to, the issue is that the model has faces connected by a single vertex and smoothing is not designed to handle that type of connection. Also support has stated that smoothing is designed for organic objects and not constructed items. As has been demonstrated if you have problems with the smoothing you could try to track down the faces causing the problem and rearrange. Or put in control edges which have at least two vertex connecting between faces.



  • @richard60 said in Why does this mesh split on one edge with Smooth Polys (PP2014):

    Got back a response from support and smoothing is doing what it is suppose to, the issue is that the model has faces connected by a single vertex and smoothing is not designed to handle that type of connection. Also support has stated that smoothing is designed for organic objects and not constructed items. As has been demonstrated if you have problems with the smoothing you could try to track down the faces causing the problem and rearrange. Or put in control edges which have at least two vertex connecting between faces.

    Pretty much confirms what I suspected. Just retopo it with smaller quad polys and smooth and morph it all you want.



  • @richard60: Thanks, that makes sense now. So it's actually a combination of three things: (1) a non-organic model; (2) faces being connected by a single vertex; (3) an unlucky face order in the OBJ ! :)

    @dreamcutter: Yes indeed - a more sensible mesh would probably have avoided the problem in the first place ! :)