Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 7 of 7

Thread: GL_SELECT

  1. #1
    Junior Member Regular Contributor
    Join Date
    Feb 2007
    Location
    Hungary
    Posts
    173

    GL_SELECT

    I have some problems with this mode and I thought someone could help.

    My application installed on certain Windows machines return 0 as the number of selection hits even though the selection buffer is not at all empty. Has anyone seen something like this? I am sorry I cannot be more specific. I installed the application on five different PCs all of them running XP Pro SP2. Picking works on three of them but not on the other two, where

    SelectionHits=glRenderMode(GL_RENDER);

    returns 0 even though the buffer has valid data and I definitely am clicking on an object.

    There is a second - relatively minor - problem I can't get rid of. Quite often names that represent geometry far from where I click with the mouse appear in the selection buffer as hits. These objects have identical minimum and maximum z-values in the buffer which also should not happen as these are 3D objects.

    Does anyone have any idea what could cause this?

  2. #2
    Advanced Member Frequent Contributor
    Join Date
    May 2005
    Location
    Prague, Czech Republic
    Posts
    913

    Re: GL_SELECT

    Quote Originally Posted by aronsatie
    I installed the application on five different PCs all of them running XP Pro SP2. Picking works on three of them but not on the other two
    Is there any difference (graphic card vendor, driver version) between the working and nonworking computers? I seen programs having problems with picking on ATI cards with relatively recent drivers.

    There is a second - relatively minor - problem I can't get rid of. Quite often names that represent geometry far from where I click with the mouse appear in the selection buffer as hits. These objects have identical minimum and maximum z-values in the buffer which also should not happen as these are 3D objects.
    I think that the content of the buffer is defined only for first SelectionHits hits. Anything beyond that might be remnants of temporary working data.

  3. #3
    Junior Member Regular Contributor
    Join Date
    Feb 2007
    Location
    Hungary
    Posts
    173

    Re: GL_SELECT

    All of them had G80 or G92 based nVidia cards.

    "I think that the content of the buffer is defined only for first SelectionHits hits. Anything beyond that might be remnants of temporary working data."

    I don't really know what you mean. I used glLoadName for each geometry (object) rendered and I clear the selection buffer before switching to GL_SELECT mode.

  4. #4
    Senior Member OpenGL Pro
    Join Date
    Sep 2004
    Location
    Prombaatu
    Posts
    1,386

    Re: GL_SELECT

    I think selection is a relic of an earlier era in GL's history... should probably be avoided in favor of more forward looking methods, like using an ID buffer of some kind or better still just casting rays. It's not likely in high demand right now so it's probably not a prime candidate for favoritism, and it's going way completely in GL3 besides, afaik.

  5. #5
    Junior Member Regular Contributor
    Join Date
    Feb 2007
    Location
    Hungary
    Posts
    173

    Re: GL_SELECT

    That does not help me much, I am afraid. There must be something wrong here. I am quite sure this mode is still used quite frequently and with some success otherwise I would have found a lot of complaints on the net.

  6. #6
    Advanced Member Frequent Contributor
    Join Date
    May 2005
    Location
    Prague, Czech Republic
    Posts
    913

    Re: GL_SELECT

    Quote Originally Posted by aronsatie
    I don't really know what you mean. I used glLoadName for each geometry (object) rendered and I clear the selection buffer before switching to GL_SELECT mode.
    What I meant is: If the glRenderMode returns X, the buffer might be changed even outside the part corresponding to the first X hits. However such changed bytes might contain anything.

    I am quite sure this mode is still used quite frequently and with some success otherwise I would have found a lot of complaints on the net.
    Look for complaints about incorrect selection inside the Maya on some newer ATI cards. Of course since all your cards are Nvidia one, this should be something different.

  7. #7
    Junior Member Regular Contributor
    Join Date
    Feb 2007
    Location
    Hungary
    Posts
    173

    Re: GL_SELECT

    It looks like either I am doing something terribly wrong or the problem really is in the driver. I would like to put the blame of course on the latter, this behaviour that affects some PCs but not others even though the hardware is very similar if not almost identical is very strange.

    But even on my PC I use for development, although glRenderMode returns something (>0), but depth values can be completely wrong. I tried to make a workaround by using the selection buffer only to identify possible hits without analyzing the depth values, then using gluProject to get the screen coordinates of the center of the possible objects and compare these to the mouse coordinates.

    This is maybe a crude solution, but at least it is a definite improvement. If anyone has a better idea though, I would appreciate it.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •