我正在尝试创建一个代表高程的多级纹理图像,其尺寸必须为940 x 618。我意识到我的纹理必须具有2的幂次方宽度和高度。目前,我已经尝试逐步进行所有纹理处理(例如64 x 64、128 x 128,甚至512 x 512),但图像仍然模糊不清。有没有更好的方法来处理这种大小的图像纹理?
TEXTURE_MATRIX
。这将使您的像素进行1:1映射。您可能还需要将模型移动半个像素以获得完美的贴合,这取决于您的模型设置和视图。GL_ARB_texture_non_power_of_two
扩展(或者OpenGL 2.0作为替代)。 - Christian Rau纹理可能没有1:1的映射,并且您正在使用GL_LINEAR或GL_NEAREST过滤。请尝试更高分辨率的纹理,使用mipmapping以及进行1:1屏幕映射。
glTexCoord2f
,或者使用glMatrixMode(GL_TEXTURE); glScalef(*nv1*,*nv2*,1.0); glMatrixMode(GL_TEXTURE); ... draw your thing as before ...; reset texture matrix to identity
来绘制你的图形。 - epatelglEnable(GL_LIGHTING); glLightfv(...); glMatrixMode(GL_TEXTURE); glScalef(940.0/1024.0, 618.0/1024.0, 1.0); glMatrixMode(GL_TEXTURE); glDrawElements(...); glLoadIdentity(); glDisable(GL_LIGHTING);
- anthv123GL_TEXTURE
,最后一个glMatrixMode(..)
应该重置为glMatrixMode(GL_MODELVIEW)
。 - epatel