- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:
紧接在“glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);”之后我收到了 GL 错误 #1282(INVALID_OPERATION)。
然后在查阅OpenGL 2.1 Reference时,在glTexEnv下说:如果glTexEnv在glBegin的执行和glEnd的相应执行之间执行,则生成GL_INVALID_OPERATION。 但是这不是我的情况,因为我使用的是顶点数组。
这是我的代码的一部分:
void RBFS::render_pass1_point_sprites(Shader &shader1, int width, int height, float t)
{
shader1.bind();
glActiveTexture(GL_TEXTURE0);{
glBindTexture(GL_TEXTURE_1D, m_texRBFData[0]);
MyCheckErrorGL();
}
glActiveTexture(GL_TEXTURE1);{
glBindTexture(GL_TEXTURE_1D, m_texRBFData[1]);
MyCheckErrorGL();
}
glActiveTexture(GL_TEXTURE2);{
glBindTexture(GL_TEXTURE_3D, m_texSDF);
MyCheckErrorGL();
}
glActiveTexture(GL_TEXTURE3);{
glBindTexture(GL_TEXTURE_3D, m_texLabels[0]);
MyCheckErrorGL();
}
glActiveTexture(GL_TEXTURE4);{
glBindTexture(GL_TEXTURE_3D, m_texLabels[1]);
MyCheckErrorGL();
}
glActiveTexture(GL_TEXTURE5);{
glBindTexture(GL_TEXTURE_1D, m_texHG);
MyCheckErrorGL();
}
glActiveTexture(GL_TEXTURE9);{
glBindTexture(GL_TEXTURE_2D, m_texCircle);
MyCheckErrorGL();
}
// upload t
GLuint loc_t = my_glGetUniformLocation(shader1.id(), "tSlice");
glUniform1f(loc_t, t);
MyCheckErrorGL();
// SET POINT_SPRITE
glEnable(GL_POINT_SPRITE);
glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);// so we can set different point size in VShader
float sizes[2];
glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, sizes);
glPointParameterf(GL_POINT_SIZE_MIN, sizes[0]);
glPointParameterf(GL_POINT_SIZE_MAX, sizes[1]);
MyCheckErrorGL();
glTexEnvi( GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);// means tex-coord iteration
MyCheckErrorGL();
glPointParameterfARB(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT);// set origin-y
MyCheckErrorGL();
glHint(GL_POINT_SMOOTH_HINT, GL_FASTEST);
MyCheckErrorGL();
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo_density);{
glPushAttrib(GL_VIEWPORT_BIT);
glViewport(0, 0, width, height);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glClearColor(0.0,0.0,0.0,1.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
MyCheckErrorGL();
glDrawArrays(GL_POINTS, 0, numRBFs);//3rd parameter: number of points
MyCheckErrorGL();
glDisable(GL_BLEND);
glPopMatrix();
glPopAttrib();
}
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
// turn off switches for PSprite
glDisable(GL_POINT_SPRITE);
glDisable(GL_VERTEX_PROGRAM_POINT_SIZE);
MyCheckErrorGL();
glActiveTexture(GL_TEXTURE9);
glBindTexture(GL_TEXTURE_2D, 0);
glActiveTexture(GL_TEXTURE5);
glBindTexture(GL_TEXTURE_1D, 0);
glActiveTexture(GL_TEXTURE4);
glBindTexture(GL_TEXTURE_3D, 0);
glActiveTexture(GL_TEXTURE3);
glBindTexture(GL_TEXTURE_3D, 0);
glActiveTexture(GL_TEXTURE2);
glBindTexture(GL_TEXTURE_3D, 0);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_1D, 0);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_1D, 0);
shader1.unbind();
MyCheckErrorGL();
}
最佳答案
听起来您的 OpenGL 设备根本不支持 POINT_SPRITE。
GL 2.0 规范已集成点 Sprite 作为核心功能。您的设备支持什么 GL 版本?
关于opengl - glTexEnv 返回无法解释的 INVALID_OPERATION 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4276109/
我不明白,为什么 glResolveMultisampleFramebufferAPPLE 会生成错误 1282(0x0502,GL_INVALID_OPERATION)。 设置代码: glGenFr
问题: 紧接在“glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);”之后我收到了 GL 错误 #1282(INVALID_OPERATION)
假设我有 COpenGLControl class downloaded here from codeguru假设the first event handler runned when creatin
基本上我有 200 X 200 像素的 Canvas ,一个 20 X 20 X 20 像素的体素。所以我有 100 个体素。当我在 Canvas 上绘图时,我想查看绘制了哪个像素,如果该像素位于其中
我正在尝试在片段着色器中设置两个纹理,但如果我尝试使用以下命令设置相应的统一变量,则会收到此错误: gl.uniform1i(getUniformLocation(program, "uTexture
我学习 WebGL。 当我尝试绘制三个点时,当每个点都有自己的位置、大小和颜色时,我遇到了一些错误。我尝试通过相同的缓冲区来完成。 // To draw three points. Each of t
我学习 WebGL。 当我尝试绘制三个点时,当每个点都有自己的位置、大小和颜色时,我遇到了一些错误。我尝试通过相同的缓冲区来完成。 // To draw three points. Each of t
我正在将一个正常运行的 OpenGL 应用程序从 Windows 移植到 OSX,并在调用 glEnableVertexAttribArray() 后不断收到“无效操作”(代码 1282)错误。这是渲
我正在尝试为 NDK 掌握 OGLES2 并坚持使用 GLSL 着色器。情况类似于 the one already highlighted here ,但背后的原因似乎有些不同。 我有最简单的着色器。
我目前正在按照本指南将我的场景渲染为纹理以生成深度/阴影贴图:http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-ren
我有一个在 Qt Widgets 应用程序中使用 OpenGL 的应用程序。在切换到 Linux 之前,我曾经在 macOS 上开发它,一切都运行良好。现在,当我调用 glBindVertexArra
我是一名优秀的程序员,十分优秀!