我使用OpenGL 3.3和GLFW。问题是GL_LINE_STRIP和GL_LINE循环给出了相同的结果。
以下是二维坐标的数组:
GLfloat vertices[] =
{
0, 0,
1, 1,
1, 2,
2, 2,
3, 1,
};属性指针:
// Position attribute 2D
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(GLfloat), (GLvoid*)0);
glEnableVertexAttribArray(0);最后:
glDrawArrays(GL_LINE_STRIP, 0, sizeof(vertices)/4);顶点着色器:
#version 330 core
layout (location = 0) in vec2 position;
layout (location = 1) in vec3 color;
out vec3 ourColor;
uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;
void main()
{
gl_Position = projection * view * model * vec4(position, 0.0f, 1.0f);
ourColor = color;
}碎片着色器:
#version 330 core
in vec3 ourColor;
out vec3 color;
void main()
{
color = vec3(ourColor);
}色彩画。是禁用的(线条是黑色和可见的)
有什么想法吗?
发布于 2014-12-09 19:39:02
只有5对浮点数,所以5顶点。数组的总大小是4乘10浮点数,所以是40字节。
你的计算公式,40/4给出10,sizeof(array) / (sizeof(array[0]) * dimensionality)将是正确的方程。
https://stackoverflow.com/questions/27386039
复制相似问题