【发布时间】:2021-11-24 08:01:19
【问题描述】:
我有一个 GLfloat 数组,其中包含如下所示的数据:
GLfloat arr[] = {
//position //color
300, 380, 0, 0, 1, 0,
300, 300, 0, 1, 1, 0,
380, 300, 0, 0, 1, 1,
380, 380, 0, 1, 0, 1
};
我正在尝试用各自的颜色绘制 4 个点,目前我正在这样做:
glPointSize(10);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, arr);
glDrawArrays(GL_POINTS, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
但我尝试修改它以接受颜色值失败了。
顶点和碎片着色器:
#version 330 core
out vec4 FragColor;
in vec3 ourColor;
void main()
{
FragColor = vec4(ourColor, 1.0);
}
#version 330 core
layout (location = 0) in vec4 position;
layout (location = 1) in vec3 color;
out vec3 ourColor;
uniform mat4 projection;
void main()
{
gl_Position = projection * vec4(position.xy, 0.0, 1.0);
ourColor = color;
}
【问题讨论】: