I want to avoid the problems that will come about with OpenGL3.2 and it’s dropping of glVertex().
for this reason I do the following:
glBegin(GL_TRIANGLES);
glVertexAttrib3f(0, …); // vertex coordinates
glVertexAttrib2f(1, …); // texture coordinates
glVertexAttrib3f(0, …); // vertex coordinates
glVertexAttrib2f(1, …); // texture coordinates
glVertexAttrib3f(0, …); // vertex coordinates
glVertexAttrib2f(1, …); // texture coordinates
// more such calls for more triangles
glEnd();
The triangles appear to be rendered at correct coordinates but only the first triangle is textured correctly, all others are textured incorrectly. It looks as if t was interpolated incorrectly. What kind of mistake am I making? Here are my bare-bones shaders.
// vertex shader
uniform mat4 model_view_matrix;
uniform mat4 projection_matrix;
in vec3 in_position;
in vec2 in_texcoords;
varying vec2 out_texcoords;
void main()
{
out_texcoords = in_texcoords;
gl_Position = projection_matrix * model_view_matrix *
vec4(0.5 * in_position, 1);
}
// fragment shader
uniform sampler2D texture0;
in vec2 out_texcoords;
void main()
{
gl_FragColor = texture2D(texture0, out_texcoords);
}