我正在学习opengl.
我来了一个像drawXXXXXXX这样的函数,其中一个参数是大步的......
我不知道用法,也不知道步幅的含义.
anyoe可以告诉我吗?
如果要将更多信息传递给顶点着色器而不仅仅是顶点的位置,可以使用所谓的interwinded数组.例如:
struct Information {
GLfloat position[3];
GLfloat color[3];
GLfloat texture[2];
};
Run Code Online (Sandbox Code Playgroud)
因此,这种结构的一种可能的实例化是:
struct Information vertices[] = {
// Positions // Colors // Texture Coords
{{0.5f, 0.5f, 0.0f}, {1.0f, 0.0f, 0.0f}, {1.0f, 1.0f}},
{{0.5f, -0.5f, 0.0f}, {0.0f, 1.0f, 0.0f}, {1.0f, 0.0f}},
{{-0.5f, -0.5f, 0.0f}, {0.0f, 0.0f, 1.0f}, {0.0f, 0.0f}},
{{-0.5f, 0.5f, 0.0f}, {1.0f, 1.0f, 0.0f}, {0.0f, 1.0f}}
};
Run Code Online (Sandbox Code Playgroud)
为了将此正确传递给着色器属性,您需要准确地告知它如何提取(例如)位置信息.这就是大踏步前进的地方.
Stride是跳转到此阵列上的新索引所需的字节数.在这种情况下它是sizeof(struct Information).下图有所帮助

有关更多信息,请参阅learnopengl教程