C ++ OpenGL 只绘制 1 个点而不是网格
c++ opengl drawing only 1 point instead of grid
我正在为我的 DLL 解决一些绘图包装器,它正在计算一些数组。在这个代码中,我需要它来绘制,但我不明白,为什么当我只绑定一次时,它只绘制 1 个点。但是当我绑定它时(据我所知,由于记忆,我不应该这样做)每个绘画事件,它都会按照我的期望绘制我的网格。
下面是绑定数据的初始状态。
bool mBindData = true;
然后在我的绘制函数中:
GLuint vbo;
if(mBindData){
mBindData = false;
glGenBuffers(1, &vbo);
//getting size of my array of vertexes
int size = this->mModel->GetVboSize() * sizeof(float);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, s2, this->mModel->GetVbo(), GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glEnableVertexAttribArray(0);
glVertexAttribPointer(
0, // attribute 0. No particular reason for 0, but must match the layout in the shader.
3, // size
GL_FLOAT, // type
GL_FALSE, // normalized?
0, // stride
(void*)0 // array buffer offset
);
}
glDrawArrays(GL_POINTS, 0,this->mModel->GetVboSize());
如果没有
if(mBindData){}
它运作良好。但正如我所说,我确信这不是办法。
我很感激你能给我的每一个建议。
谢谢。
编辑1:我的问题是,当我只绑定一次vbo时,为什么它只绘制1点而不是NxN点网格。我错过了什么?
我很
抱歉提出一个问题。我只是愚蠢,没有阅读整个QT组件。我不得不在paintGL()之后调用update()。它现在正在工作。
相关文章:
- 无法在 OpenGL 上渲染具有不同 VAO 的不同网格
- 如何在OpenGL中将纹理应用于子网格
- 当我在网格/面中实现索引时,为什么它会返回OpenGl错误
- 使用 OpenGL 绘制 8 x 15 矩形网格C++ - 崩溃
- 两个不同的对象 OpenGL.VAO VBO IBO 网格失真问题
- OpenGL生成三角网格
- OpenGL ArcBall用于旋转网格
- 在 OpenGL 中创建网格
- c++OpenGL发布用存储在对象中的vbo和vao绘制网格
- 绘制多边形网格时出现 Opengl 性能问题
- 如何在opengl中绘制屏幕一小部分大小的正方形网格
- OpenGL优化网格绘制(VAO?无索引?)
- 使用默认构造函数调用的网格类不起作用 OpenGL C++
- 将简单网格加载到 OpenGL 中时遇到问题
- 如何在现代 OpenGl 中选择网格的顶点或三角形(上面的 3.3)
- C ++ OpenGL 只绘制 1 个点而不是网格
- openGL在将参数传递给要绘制的函数时不绘制网格
- OpenGL正在绘制UV贴图而不是网格
- C++ OpenGL 网格渲染
- OpenGL照明数据网格浪费