- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的项目的纹理生成有一个非常奇怪的问题。第一个 mipmapped 纹理完美无缺,但下一个纹理只能绘制第一级。在调试时,我突然想到了一个修复它的黑客:
glGenTextures(1, &texture->textureID);
glBindTexture(GL_TEXTURE_2D, texture->textureID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexStorage2D(GL_TEXTURE_2D, 10, GL_RGBA8, width, height);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
glGenerateMipmap(GL_TEXTURE_2D);
assert(glGetError() == GL_NO_ERROR); // Mipmapping fails if glGetError is not here
glBindTexture(GL_TEXTURE_2D, 0);
最佳答案
引用Is iOS glGenerateMipmap synchronous, or is it possibly asynchronous? ,看来 glGenerateMipmaps 是异步工作的。我的项目使用共享上下文来创建着色器、纹理和网格(对不起,如果我没有提到这一点,我认为这无关紧要)。
问题是,每当纹理生成完成时,“纹理生成”标志就会上升并且共享上下文将被破坏,因此最后一个 glGenerateMipmap 似乎没有通过管道刷新。对 glGetError 的调用需要从管道中刷新操作以查看是否有任何错误要报告,这正是它使一切正常工作的原因。
因此,换句话说,如果您在单独的共享上下文中执行某些操作,则需要在终止该线程之前显式调用 glFinish,否则某些操作将无法完成。
关于opengl - 如果后面没有 glGetError,glGenerateMipmap 就会失败……等等,什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25343106/
我已使用 GL_ARB_shader_image_load_store 写入纹理的第一个 mipmap 级别。文档指出,在其他操作中使用该图像的内容之前,我需要调用 glMemoryBarrier,以
我正在使用 Glew 加载 gl 函数和扩展。当我在代码中使用 glGenerateMipmap 时,它编译没有任何错误。但是,当我运行代码时,出现此错误: Access violation exec
我正在尝试实现 glGenerateMipmap,这样我就可以继续为我渲染的立方体的每个级别重新着色,除非程序无法编译并给出错误 '错误 C3861:'glGenerateMipmap':找不到标识符
我使用参数 level = 0 调用 glTexImage2D。然后我调用 glGenerateMipmap(GL_TEXTURE_2D)。 GL_TEXTURE_BASE_LEVEL 和 GL_TE
在我的应用程序中,我尝试使用纹理,但出现错误 :0: SGXQueueTransfer: all paths failed :0: HardwareMipGen: Failed to generate
我无法在我的立方体上通过 glGenerateMipmap 加载纹理。 我从 resource.h 文件加载 BMP 纹理。 我的加载函数在 WM_CREATE 上调用,如下所示: void Load
我全神贯注于动态生成 mipmap,并使用以下代码读取此位:http://www.g-truc.net/post-0256.html //Create the mipmapped texture gl
环境 Ubuntu 17.04,Chrome 60。 在没有警告/错误的情况下在本地运行此示例:https://github.com/mdn/webgl-examples/tree/gh-pages/
OpenGL 3.3 规范似乎没有要求在线性空间中完成 mipmap 生成。我所能找到的是以下内容: The internal formats of the derived mipmap arrays
使用 glGenerateMipmap() 命令在 Android (OpenGL ES 2.0/3.0) 中创建 mipmap: public class Renderer implements G
我正在尝试学习 OpenGL,并且正在使用 SOIL 加载图像。 我有以下代码: GLuint texID = 0; bool loadCubeMap(const char * baseFileNam
我正在开发一款在 OpenGL ES 中使用大型纹理的 iPad 应用程序。当场景第一次加载时,我在天花板上看到一个大的黑色伪影持续了几帧,如下图所示。就好像更高级别的 mipmap 尚未填充。在后续
我正在开发一个使用 OpenGL ES 渲染图像的 iOS 应用程序。这是我设置纹理参数和数据的函数的关键代码片段: glGenTextures(1, &texture); glBindTexture
我的项目的纹理生成有一个非常奇怪的问题。第一个 mipmapped 纹理完美无缺,但下一个纹理只能绘制第一级。在调试时,我突然想到了一个修复它的黑客: glGenTextures(1, &textur
我正在开发适用于 Android 的移动 OpenGL 应用程序,使用 OpenGL ES3.x 处理图形。 我想使用 glGenerateMipmap 函数,但我感到很不自在,因为我记得至少在以前的
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我能够使用 glGenerateMipMap 生成 mipmap,并且我正在使用 min_filter gl_linear_mipmap_linear。 没有 mipmap 时,纹理在与实际纹理大小
我是一名优秀的程序员,十分优秀!