after two days of research and trial and error, I give up and need help.
I'm trying to map a texture (not necessarily quadratic or a size of 2^x) to an arbitrary convex quadrilateral. However, since the OpenGL pipeline divides the quad into two triangles, there is an ugly seam
Original texture:
Texture, if the upper left point is set to (0, 0.5):
Currently, the texture coordinates are mapped in the most naive way:
305 glTexCoord4f(0.0f, 1.0f, 0.0f, 1.0f);306 glVertex3f(_wall_properties.matrix[y][x].first, _wall_properties.matrix[y][x].second, 0.0f);307 308 glTexCoord4f(0.0f, 0.0f, 0.0f, 1.0f );309 glVertex3f(_wall_properties.matrix[y + 1][x].first, _wall_properties.matrix[y + 1][x].second, 0.0f);310 311 glTexCoord4f(1.0f, 0.0f, 0.0f, 1.0f);312 glVertex3f(_wall_properties.matrix[y + 1][x + 1].first, _wall_properties.matrix[y + 1][x + 1].second, 0.0f);313 314 glTexCoord4f(1.0f, 1.0f, 0.0f, 1.0f);315 glVertex3f(_wall_properties.matrix[y][x + 1].first, _wall_properties.matrix[y][x + 1].second, 0.0f);
I have already read tons of stuff on the topic, including Cass' explanation at http://www.xyzw.us/~cass/qcoord/. Strangely, changing the q-coordinate of the textures does not have any effect on the texture. Besides, I wouldn't know, how to calculate the correct q.I also tried changing the texture matrix following this post: http://www.gamedev.net/topic/419296-skewedsheared-texture-mapping-in-opengl/ with unsatisfying results.
Would a correct texture matrix solve the problem as this post http://blogs.agi.com/insight3d/index.php/2009/11/20/trapezoidal-texture-projection-with-opengl/ proposes?