glDrawArrays 不绘制
glDrawArrays doesn't draw
本文关键字:绘制 glDrawArrays 更新时间:2023-10-16
我使用向量来存储顶点和法线数据
vector<float> vertex;
vector<float> normal;
例如:
normal.push_back(-1);
normal.push_back(0);
normal.push_back(0);
vertex.push_back(BARRIER_RADIUS);
vertex.push_back(POLE_HEIGHT);
vertex.push_back(-POLE_RADIUS);
for (int i = POLE_POINTS, i >= 0; i--)
{
//add more vertex
}
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, &vertex[0]);
glNormalPointer(GL_FLOAT, 0, &normal[0]);
glDrawArrays(GL_TRIANGLE_FAN, 0, vertex.size());
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
//Add some more + Draw some thing else the same way
我什么也没得到。它不会在屏幕上画任何东西。
以前的版本,可以工作,如下所示:
glNormal3f(-1, 0, 0);
glBegin(GL_TRIANGLE_FAN);
glVertex3f(BARRIER_RADIUS, POLE_HEIGHT, -POLE_RADIUS);
for ()
{
//add more vertex
glVertex3f(........);
}
glEnd();
//draw more the same way
告诉我哪里错了
您已经将vertex
定义为float
的矢量,但几何顶点由3个浮点数组成,因此这是一个混淆的方法。顶点的数量不是vertex.size()
,而是它的三分之一。我不确定这是否是你唯一的问题,但这确实是个问题。
法线的个数应该和顶点的个数一样
相关文章:
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- SFML 文本未绘制在窗口上
- 如何在快板的屏幕中显示子位图的绘制?
- 如何绘制自定义形状的元素?
- 用一个glDrawArrays命令绘制几个不同颜色的三角形
- 为什么glDrawArrays在Mac上不使用OpenGL进行绘制
- glDrawArrays() 会自动绘制另一个不需要的对象
- 如何使用glColor4f()和glDrawArrays(GL_LINES, 0,2)绘制彩色线?
- glDrawArrays在gl_triangle模式下不绘制任何东西
- glDrawArrays 不绘制
- glDrawArrays奇怪地绘制数组
- glDrawArrays GL_LINES没有正确绘制线条