我正在一个项目上,该项目使用jpeg图像以及一些向右或向左旋转球体的用户的键盘导航键对球体进行纹理处理。问题是我尝试使用SOIL加载图像并成功加载图像,但是该探针对于球体旋转是缓慢的处理...任何帮助!
这就是我如何在主要方法中一次调用的seoarate方法中加载jpeg图像的方法
void loadtexture()
{
tex_2d[0] = SOIL_load_OGL_texture(
"filename",
SOIL_LOAD_AUTO,SOIL_CREATE_NEW_ID,
SOIL_FLAG_MIPMAPS);
printf( "Image loaded successfully.. ");
if(tex_2d[0]==0 ) {
printf( "SOIL loading error: '%s'\n", SOIL_last_result() );
}
glBindTexture(GL_TEXTURE_2D, tex_2d[0]);
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);//GL_NEAREST
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
}
这就是我创建球体并将纹理应用于球体的方式
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, tex_2d[0]);
GLUquadricObj* esphere2 = gluNewQuadric();
gluQuadricTexture(esphere2, true);
gluQuadricNormals(esphere2, GLU_SMOOTH);
glEnable(GL_CULL_FACE);
gluSphere(esphere2, 4, 50, 50);
gluDeleteQuadric(esphere2);
问题是我尝试使用SOIL加载图像并成功加载图像,但该探针对于球体旋转处理缓慢
读起来就像是在为每个帧绘制重新加载纹理一样。你为什么要这样做?只需加载纹理一次并完成操作即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句