Menu

#474 control vertices in Maya are hardly visible

Rendering Error
open
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

  • Paul Hoepfner-Homme

    Software rendering of the scene

     
  • Paul Hoepfner-Homme

    Hardware rendering of the scene

     
  • 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.

     
  • Paul Hoepfner-Homme

    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?

     
  • Paul Hoepfner-Homme

    • priority: 5 --> 6
     
  • Paul Hoepfner-Homme

    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?

     
  • Paul Hoepfner-Homme

    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.

     
  • Ian Romanick

    Ian Romanick - 2003-10-20

    Logged In: YES
    user_id=423974

    Have you tried the following patch? It's fairly old, so it
    may not apply cleanly.

    http://marc.theaimsgroup.com/?l=dri-devel&m=105862837814769&w=2

    Whether or not this is an issue that the driver should
    handle (and I do agree with you on that), the
    GL_ARB_point_parameters spec is specific (not the "Errors"
    section) that the driver doesn't have to. The maximum point
    size is the maximum size, and anything beyond that is an error.

    http://oss.sgi.com/projects/ogl-sample/registry/ARB/point_parameters.txt

     
  • bassam kurdali

    bassam kurdali - 2003-10-23

    Logged In: YES
    user_id=448744

    Thanks idr! your patch worked (I had to add some #defines in
    radeon_tcl.h manually) but the result works so far for me in
    unpatched blender. I'll play with it some more over the next
    couple of weeks and post here if I have any problems (or not).
    btw, I'm using xfree 4.3.0 at the moment.

     
  • bassam kurdali

    bassam kurdali - 2003-11-04

    Logged In: YES
    user_id=448744

    update:
    I've been using the patch since the last post (10-23) and
    have had no problems whatsoever; control vertices are
    displaying fine in blender, I can play with their sizes, and
    it feels responsive with no stability issues.
    Any chance this could make it into the main tree? What are
    the issues that could prevent that?

     

Log in to post a comment.