I have a feeling this is one of those situations that will depend on the driver implementation since this scenario is not described in the OpenGL specification. However, I'm hoping that someone will know if using GL_(LINEAR/NEAREST)_ MIPMAP_* without generating MIP maps would be treated the same as using GL_(LINEAR/NEAREST)?
相关问题
- Is GLFW designed to use without LWJGL (in java)?
- glDrawElements only draws half a quad
- OpenGL Shaders. Pass array of float
- Scaling png font down
- OpenGL buffer update [duplicate]
相关文章
- Converting glm::lookat matrix to quaternion and ba
- Behavior of uniforms after glUseProgram() and spee
- Why is glClear blocking in OpenGLES?
- Keep constant number of visible circles in 3D anim
- GLEW and Qt5 redefinition of headers
- How do I remove axis from a rotation matrix?
- Writing to then reading from an offscreen FBO on i
- How to get OpenGL version using Javascript?
In my experience, all the non-generated mipmap levels will default to black.
So if you have a texture displayed at 1:1 resolution, and progressively zoom out, it will fade to black as soon as the 1rst mipmap is used.
I think this is the behaviour at least on NVIDIA and AMD; I never tried on powervr (since you're mentioning opengl-es).
Define "without any active MIP textures"? I'm not sure how you would, since there's no such thing as a "mip texture" (a texture contains mipmaps, but mipmaps are not textures).
If you mean that you did not create a full mipmap pyramid, then it depends on how you set up your
GL_TEXTURE_BASE/MAX_LEVEL
s. If you properly used these to tell OpenGL you only had one mipmap level, then you'll be fine. If you usedglTexStorage
to create your texture's storage, and you only told it to create one mipmap, again you'll be fine.But if none of those apply, then OpenGL defaults to the least useful thing (per its usual idiocy): it sets the
GL_TEXTURE_MAX_LEVEL
level to 1000. Which means it's going to expect you to have defined mipmaps.According to (desktop) OpenGL, a texture with mipmap filtering where the
BASE/MAX_LEVEL
s refer to mipmaps that are not defined is not "texture complete". OpenGL defines that the value you get for a texture access against a non-complete texture is (0, 0, 0, 1).In short, set your
BASE/MAX_LEVEL
properly and you won't have to worry. ALWAYS DO THIS.