Jump to content

  • Log In with Google      Sign In   
  • Create Account

#ActualKepakiano

Posted 22 January 2013 - 11:11 AM

Hi there,

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:
9gskM2u.png

Texture, if the upper left point is set to (0, 0.5):
4yQSQQ1.png

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?

#1Kepakiano

Posted 22 January 2013 - 11:10 AM

Hi there,

 

after two days of research and trial and error, I give 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:

9gskM2u.png

 

Texture, if the upper left point is set to (0, 0.5):

4yQSQQ1.png

 

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?

 


PARTNERS