Android OpenGl有什么跨度?

0 graphics android opengl-es

我正在学习opengl.

我来了一个像drawXXXXXXX这样的函数,其中一个参数是大步的......

我不知道用法,也不知道步幅的含义.

anyoe可以告诉我吗?

Ama*_*eus 5

如果要将更多信息传递给顶点着色器而不仅仅是顶点的位置,可以使用所谓的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教程