glVertexAttribPointer向量2,但仅向前一个
glVertexAttribPointer vec2 but forward just one
我有这个,它将在vec2中读取,是否可以只向前一个,这样顶点着色器将在每个0,1、1,2、2,3中接收,依此类推?
float v[]{0,1,2,3,4...};
glVertexAttribPointer((GLuint)0, 2, GL_FLOAT, GL_FALSE, 0, 0);
这感觉像是一个破解,但您可以明确地将glVertexAttribPointer
的stride
参数设置为单个float
的大小。
基本上,每当GL获取索引为i
的顶点时,它都将使用地址offset + i * stride
。您当前用作步幅参数的0
是一个方便快捷方式,意味着一个紧凑的数组,因此在您的情况下,它将等效于2 * sizeof(GLfloat)
,但GL中没有任何内容可以阻止您将步幅设置为低于紧凑数组的值:
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat), 0);
相关文章:
- 给定一个向量,如何找到该向量的所有子集和的原始索引
- 为什么一个向量上的多线程操作很慢
- 将一个向量插入另一个向量的某个位置
- 将指向给定子类的指针从一个向量复制到另一个向量
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 将向量之间的数字放在另一个向量之间<vector>>如果两个数字的差值为 1
- 如何在不复制的情况下将一个向量移动到另一个向量中
- 使用 std::transform 将向量向量 (a) 添加到另一个向量向量 (b)
- 如何按另一个向量的方向调整一个向量?
- 将字符向量复制到另一个向量
- 制作一对共享指针并推送一个向量
- 你能把一个向量<int64>投射到一个向量<uint8>吗
- 大家好,当一个类有一个向量作为它的数据成员时,为什么它的大小总是24?
- 为什么我们需要在优先级队列声明中添加一个向量作为参数?
- 如何将所有指针从一个向量移动到另一个向量?
- 将一个向量映射到不同的对,即使向量映射到每对时是不同的?
- 生成一个类Name_class并将两种数据类型存储在一个向量中
- 使用步骤c++构建一个向量
- 如何从另一个向量中的另一个第一元素减去向量中的第一元素
- 将一个向量对放在一个无序映射与一个映射中