gpt4 book ai didi

c++ - OpenGL - GL_LINE_STRIP 的行为类似于 GL_LINE_LOOP

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:43 27 4
gpt4 key购买 nike

我在 GLFW 中使用 OpenGL 3.3。问题是 GL_LINE_STRIP 和 GL_LINE LOOP 给出了相同的结果。

这是二维坐标数组:

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);
}

颜色属性。已禁用(线条为黑色且可见)

有什么想法吗?

最佳答案

你只有 5 对 float ,所以 5 个顶点。数组的总大小是 4 乘以 10 个 float ,即 40 个字节。

您的计数方程式 40/4 给出 10。sizeof(array)/(sizeof(array[0]) * dimensionality) 将是正确的方程式。

关于c++ - OpenGL - GL_LINE_STRIP 的行为类似于 GL_LINE_LOOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27386039/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com