代码使用vb.net实现,使用的Tao.OpenGL类库,纹理创建的代码如下:
Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR_MIPMAP_LINEAR)
Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR)
Glu.gluBuild2DMipmaps(Gl.GL_TEXTURE_2D, Gl.GL_RGB8, textureImage(i).Width, textureImage(i).Height, Gl.GL_BGR, Gl.GL_UNSIGNED_BYTE, bmData.Scan0)这个纹理是贴在一个立方体上面,在这个立方体缩小到一定程度的时候,就会出现一些黑色的条纹,放大的时候没有这个问题。
看了以前的一些问题,修改过滤方式没有效果(线形过滤什么的,都试过了),有人说要修改Depth精度,还有和Projection的f/n有关,但是我都不知道怎么做。希望大家可以帮助我,谢谢!

解决方案 »

  1.   

    当你缩小的时候可以使用GLTEXSUBIMAGE2D来代替原来的纹理,估计能好点吧
      

  2.   

    是不是和显卡有关系不大清楚,nVidia GeForce4 MX4000,还有Intel 915GM显卡都不行,我自己机器上的GeForce2 MX400却可以,不过我的操作系统是2003,其他的机器上是XP。
      

  3.   

    GLTEXSUBIMAGE2D要求的图片大小好象要是2的N次方才可以吧?我这里的图片就是不规则的,没有办法用这个办法来做啊。
      

  4.   

    你是使用自动生成mipmap纹理的方法来贴图的,看你生成纹理的方法是没什么问题的,滤波方法你也试过GL_NEAREST_MIPMAP_LINEAR方法了吧?
    都没解决问题的话可以考虑自己控制一下mipmap的等级数以及切换点。
    再不行的话 更新下显卡驱动   用适合于XP/2003的驱动,不要用2k/xp的。
      

  5.   

    谢谢楼上的帮助,纹理和滤波方式我都修改过了,只是我不知道mipmap的等级数和切换点如何设置,我是一个OpenGL的初学者,这些东西还不太明白。能给我说的详细一些吗?谢谢!
      

  6.   

    楼上的朋友,我已经用了MIPMAP了。
      

  7.   

    看过OpenGL的书,但没做过,帮你顶下,嘎嘎