好的我正在编写一个程序,其中一部分就像Google Maps中的渲染引擎。
它加载一系列小块并在OpenGl中绘制它们。磁贴是动态加载并动态释放的,因此您无需加载整个地图。
所以我从jpg制作纹理。
在OpenGL中绑定纹理。
画一个四边形。
冲洗并重复,直到所有瓷砖都被拉出。
这很好用。我的问题是,如果我使用glTranslatef(X,Y,0),其中X或Y不是整数,那么在四边形之间存在一个工件/线。我假设这是因为Quads之间存在某种混淆的东西。除了将X和Y转换为整数之外,还有什么可以摆脱混淆问题。或者是否有更好的地方寻找有关此问题的信息。
创建纹理属性的代码
//让OpenGL为我们生成纹理对象句柄 glGenTextures(1,& texture);
// Bind the texture object
glBindTexture( GL_TEXTURE_2D, texture );
// Set the texture's stretching properties
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_NEAREST );
// Edit the texture object's image data using the information SDL_Surface gives us
glTexImage2D( GL_TEXTURE_2D, 0, nOfColors, surface->w, surface->h, 0,
texture_format, GL_UNSIGNED_BYTE, surface->pixels );