#81 Subdivision Surface UV's incorrect

open
nobody
None
6
2008-03-05
2008-03-05
WHiTeRaBBiT
No

It seems Pixie has problems with SDS UV coordinates in certain situations, here are some example pictures and a screen grab of the original UV:

UV screen grab - http://www.dreamscapearts.com/Public/UVscreengrab.jpg
3Delight result - http://www.dreamscapearts.com/Public/3delight.jpg
Aqsis result - http://www.dreamscapearts.com/Public/aqsis.jpg
Pixie result - http://www.dreamscapearts.com/Public/pixie.jpg

Also if it helps heres the test project files setup as SD S and Polygons with renders and screengrabs for comparison.
http://www.dreamscapearts.com/Public/UVTest.zip

I have no clue whats causing it but it appears that sometimes they are correct and sometimes they are not depending on the geometry?

Discussion

  • WHiTeRaBBiT
    WHiTeRaBBiT
    2008-03-05

    • priority: 5 --> 6
     
  • WHiTeRaBBiT
    WHiTeRaBBiT
    2008-03-05

    Logged In: YES
    user_id=1601629
    Originator: YES

    Forgot to mention I'm using Pixie v2.2.3 SVN Trunk v1147 on Linux ;)

     
  • Cedric PAILLE
    Cedric PAILLE
    2008-05-09

    Logged In: YES
    user_id=954786
    Originator: NO

    Hi,

    easy to fix, the mesh as degenerated faces, you can change theses lines in subdivisionCreator.cpp line 1912:

    // Check for degenerate faces
    int val = faces[i]->vertices[j]->valence;
    int fval = faces[i]->vertices[j]->fvalence;
    if((val == 1)) { warning(CODE_CONSISTENCY,"Subdivision mesh has hanging vertex"); goto skipFace; }
    if((val == 2) && (fval != 1)) { warning(CODE_CONSISTENCY,"Subdivision mesh is degenerate (face %d)\n",i); k += faces[i]->numEdges; goto skipFace; }
    if((val >= 3) && (fval > val)) { warning(CODE_CONSISTENCY,"Subdivision mesh is degenerate (face %d)\n",i); k += faces[i]->numEdges; goto skipFace; }

    Cheers.