#474 control vertices in Maya are hardly visible

Rendering Error
open
Ian Romanick
ATI OpenGL (71)
6
2003-05-30
2003-05-11
No

In Maya 4.5 (and 4.0), control vertices appear as 1-pixel
dots in the viewport, making it impossible to see them
when the scene contains complex geometry. I have a
Radeon Mobility M6 16MB. I know this is a bug with the
hardware OpenGL renderer, because when I view the
identical scene using software rendering, the control
vertices are painted properly. Please see the attached
screenshots (software vs. hardware) and look at points
surrounding the sphere. In software, they appear as
little magenta squares, but in hardware, they are tiny
dots.

Discussion

1 2 > >> (Page 1 of 2)
  • Software rendering of the scene

     
    Attachments
  • Hardware rendering of the scene

     
    Attachments
  • Ian Romanick
    Ian Romanick
    2003-05-12

    • assigned_to: nobody --> idr
     
  • Ian Romanick
    Ian Romanick
    2003-05-12

    Logged In: YES
    user_id=423974

    The Radeon only supports a maximum point size of 1.0. One
    of three things needs to happen to resolve this.

    1. Maya needs to be modified to render the control points
    differently when EXT_pointer_parameters is not supported or
    the maximum point size is only 1.0.

    2. The Radeon driver needs to be modified to support larger
    point sizes and use a software fallback.

    3. Someone needs to find a clever way to have the driver do
    larger point sizes.

    Options 1 and 3 are fairly unlikely and option 2 is fairly
    unpleasant.

     
  • Logged In: YES
    user_id=83339

    About your options:

    1. It looks as though the Maya team has decided not to
    support the Radeons. (The only ATI cards they support are
    Fire GL ones.) So I doubt they'll try to accommodate it. Too
    bad I'm part of the StudioTools development team rather than
    the Maya one. :)

    2. Why is this unpleasant? I'd like to try it out.

    3. Well, I'm probably not clever enough for this. But I'd still
    like to attempt #2.

    I've been looking through the code already, but so far I'm not
    sure where it is that points are rendered. Any tips?

     
  • bassam kurdali
    bassam kurdali
    2003-05-30

    Logged In: YES
    user_id=448744

    this happens also in blender and wings3d. In XFree versions
    prior to 4.3, they were rendering normally. does this mean
    the older version of the driver did software rendering for
    the control points?

     
    • priority: 5 --> 6
     
  • Logged In: YES
    user_id=83339

    I also found that when I ran Maya for Windows under
    Windows XP on the same machine (same ATI Radeon card
    using hardware rendering), the control verticies are rendered
    properly. If Windows can do it perfectly, I really don't see why
    it should be a problem to do it under Linux. And as
    bassaminator just posted, it was working fine before XFree86
    4.3. So what's going on?

     
  • Logged In: YES
    user_id=83339

    So is there any status on this? Is anyone trying to implement
    option 2?

    I actually did get the Maya source code and tried fooling
    around with it. Unfortunately it took me weeks to finally get it
    to build properly under my Linux distribution (the Maya
    developers decided to only officially support Red Hat and I
    use Gentoo). Then I tried modifying the Maya source code so
    that it would render bitmap icons instead of GL_POINTS when
    the point size was greater than 1.0. But I ran into myriad
    problems. Most were due the fact that the glVertex
    commands can't be trivially converted to glBitmap commands
    as they are contained between glBegin and glEnd, and the
    way Maya interfaces with OpenGL makes this particulaly
    difficult. I spent about three weeks on this and I've finally
    given up.

    I talked to my friend about this problem and he thinks it's
    entirely the driver's responsibility to support software fallback
    of larger point sizes, not the application. And as I mentioned
    in my last followup, the Windows driver does take care of it.
    So I think option 1 is out of the question.

     
  • bassam kurdali
    bassam kurdali
    2003-08-30

    Logged In: YES
    user_id=448744

    Workaround:

    Hi, I managed to hack the blender source code to work around
    this.
    Removed the glBegin() and glEnd(), create a bitmap array,
    replace each glVertex*() call in the block with
    glRasterPos*() with the same argument, followed by
    glBitmap() as follows:

    glPointSize(3.0);
    GLubyte Squaredot[9] = { 0xff,0xff,0xff, 0xff,0xff,0xff,
    0xff,0xff,0xff };

    /*glBegin(GL_POINTS);*/
    cpack(0);
    /*glVertex3fv(sta);*/
    glRasterPos3fv(sta);
    glBitmap(3,3,0.0,0.0,0.0,0.0,Squaredot);

    /*glVertex3fv(end);*/
    glRasterPos3fv(end);
    glBitmap(3,3,0.0,0.0,0.0,0.0,Squaredot);

    /*glEnd();*/
    glPointSize(1.0);

    now my control points are nice and fat again. Thanks for the
    suggestion, idr, though I still think this should be handled
    by the driver.

     
1 2 > >> (Page 1 of 2)