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
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
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?
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
};
As I said, it is in the wrong order.
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?
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.
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.
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