glVertexAttribPointer语言 - 顶点法线或颜色

glVertexAttribPointer - vertex normal or color

本文关键字:线或 颜色 顶点 语言 glVertexAttribPointer      更新时间:2023-10-16

当我使用glVertexAttribPointer时,OpenGL如何知道我是指顶点,正常还是颜色?下面是我的代码:

glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), 0);

在这个例子中,我指的是顶点。那么OpenGL是怎么知道的呢?如果我想给我的形状添加法线,我怎么告诉OpenGL这是法线?

没有。

指定给GL,要么通过在着色器中的内联位置属性,要么通过与glBindAttribLocation绑定哪个位置将与你的输入着色器属性一起使用。

在shader中的位置语法(一个布局限定符):

layout(location = attribute index) in vec3 position;

编辑添加:我应该提到,如果你不指定位置,GL将自己选择,然后你必须通过glGetAttribLocation询问它使用的位置。