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: Draw a square?

  1. #1
    Intern Contributor
    Join Date
    Apr 2011
    Location
    Barcelona, Catalunya
    Posts
    56

    Draw a square?

    Hi, I try to draw a square but I have the problem which can be see and the images. Can someone explain me why?

    I use GL_QUADS.

    Thanks

  2. #2
    Junior Member Regular Contributor
    Join Date
    Nov 2010
    Location
    Brazil, Rio de Janeiro
    Posts
    147

    Re: Draw a square?

    It looks like you are drawing the vertices in the wrong order. You need to keep an orientation. Can you post your draw code here?

  3. #3
    Intern Contributor
    Join Date
    Apr 2011
    Location
    Barcelona, Catalunya
    Posts
    56

    Re: Draw a square?

    The coords:

    GLfloat a[]={
    0.0f,0.0f,0.0f,0.0f,
    0.0f,1.0f,0.0f,0.0f,
    0.0f,0.0f,1.0f,0.0f,
    0.0f,1.0f,1.0f,0.0f
    };

  4. #4
    Junior Member Regular Contributor
    Join Date
    Nov 2010
    Location
    Brazil, Rio de Janeiro
    Posts
    147

    Re: Draw a square?

    As I said, it is in the wrong order.

    Code :
    GLfloat a[]={
    0.0f,0.0f,0.0f,0.0f, 
    0.0f,1.0f,0.0f,0.0f,
    0.0f,1.0f,1.0f,0.0f   
    0.0f,0.0f,1.0f,0.0f,
    };
     
    // change coord 3 with 4.

    BTW, why homogeneous coords are set to 0.0f? It shouldn't be 1.0f?

  5. #5
    Intern Contributor
    Join Date
    Apr 2011
    Location
    Barcelona, Catalunya
    Posts
    56

    Re: Draw a square?

    Ok, it works! Thank you!

    I try with 0.0f and 1.0f and I don't see any difference, so I prefer with 0.0f because it's easier to read.

  6. #6
    Junior Member Regular Contributor
    Join Date
    Nov 2010
    Location
    Brazil, Rio de Janeiro
    Posts
    147

    Re: Draw a square?

    It is odd. Using 0.0 as the homogeous coordinates gives you a vector instead of a point. Maybe, when you are drawing, you are ignoring the fourth coordinate. In order to have project points on screen, OpenGL divides x,y and z by the w value, if it is different from 0.

  7. #7
    Intern Contributor
    Join Date
    Apr 2011
    Location
    Barcelona, Catalunya
    Posts
    56

    Re: Draw a square?

    I see,

    In my code I write:
    glVertexPointer(3,GL_FLOAT,4*sizeof(GL_FLOAT),0);
    It has been copied from a code on Internet

    Now I put glVertexPointer(4,GL_FLOAT,4*sizeof(GL_FLOAT),0);
    with the w value to 1.0f.

    Thanks

Posting Permissions

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