Mipmapping in OpenGL
Mipmapping in OpenGL
我有很多麻烦让地图工作。我使用的是OpenGL 1.1,我没有glu,所以我使用以下纹理初始化代码:
<>之前&texname glGenTextures(1日);glBindTexture (GL_TEXTURE_2D texname);glTexParameteri (GL_TEXTURE_2D GL_TEXTURE_WRAP_S GL_REPEAT);glTexParameteri (GL_TEXTURE_2D GL_TEXTURE_WRAP_T GL_REPEAT);glTexParameteri (GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_NEAREST);glTexParameteri (GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER GL_NEAREST_MIPMAP_NEAREST);w =宽度;h =身高;(int i = 0; i之前变量:<>之前//数据类型:Unsigned long int *tex[20];Int mipmaps, width, height, w, h;GLuint texname;之前
tex
是保存纹理mipmap像素数组列表的数组。mipmap被正确处理(我单独测试了它们)。mipmaps
是将原始图像减少到1x1像素纹理的mipmaps的数量(原始纹理是256x256 -因此在代码中这一点是8)。width
和height
是原始纹理的尺寸(256x256)。
结果是它甚至不使用纹理。所有的东西看起来都是平灰色的(由于照明的灰色)。
我是不是忘了什么?我已经检查了这个引用,没有发现任何冲突。
其他细节:总的来说,我启用GL_DEPTH_TEST, GL_TEXTURE_2D, GL_LIGHTING, GL_CULL_FACE, GL_FOG(和GL_LIGHT0, GL_LIGHT1,这可能没有什么区别)。此外,我正在使用Mesa 3D的OpenGL实现(Mesa 4.0版本转换为OpenGL 1.3版本),如果这可能与它有关的话。
编辑:问题是,当我将GL_NEAREST_MIPMAP_NEAREST更改为GL_NEAREST时,纹理工作良好(不使用mipmaps)。所以,我不知道它怎么可能是其他的代码至少我想不出它可能是什么
mipmaps的值为8。您的图像是256x256。因此,你应该有9个级别的mipmapping(256,128,64,32,16,8,4,2,1)。如果缺少一个,你将失去你的纹理。
- netcat command in c++
- Difference in displaying cv2 Mat
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- OpenGL, C++, In Out variables
- glDrawBuffers in opengl es 2.0 c++
- 在 OpenGL 计划链路状态检查期间"No definition of main in vertex shader"
- Skybox in OpenGL
- How to Blend two texture in OpenGL ES 1
- Phong Illumination in OpenGL website
- Opengl in C++:编译器读取 glBindVertexArray 时未处理的异常
- OpenGl Solid Cube in C++
- Qt 中 OpenCV "Can't load OpenGL extension [glBindBuffer] in function IntGetProcAddress"例外
- OpenGL Cube in C++
- Blank Screen in OpenGL and Glut
- visual animation points in OpenGL with C++?
- Mipmapping in OpenGL
- Full screen in openGL
- OpenGl in VS2010
- DevIL and OpenGL in C++
- "R6025 - pure virtual call" in 显示列表, OpenGL, C++