OpenGL es 2中的顶点。Android的Java

OpenGL es 2中的顶点。Android的Java,java,android,opengl-es,Java,Android,Opengl Es,我遵循教程,学习OpenGLES2.0。 这些信息(加上许多其他教程)让我明白了这一点:顶点必须在数组中声明,数组必须通过FloatBuffer操作发送到GPU内存,openGL必须从中提取它们。 下面的内容对我来说有点模糊。问题是:一旦顶点存在(在gpu内存中),java程序的哪一部分用来提取这些数据?着色器和片段代码?vertexattrib数组命令?OpenGL在非常基本的级别上工作的方式,在发出绘图调用之前不会发生太多事情,如glDrawArray或glDrawElements。大多数其

我遵循教程,学习OpenGLES2.0。 这些信息(加上许多其他教程)让我明白了这一点:顶点必须在数组中声明,数组必须通过FloatBuffer操作发送到GPU内存,openGL必须从中提取它们。
下面的内容对我来说有点模糊。问题是:一旦顶点存在(在gpu内存中),java程序的哪一部分用来提取这些数据?着色器和片段代码?vertexattrib数组命令?

OpenGL在非常基本的级别上工作的方式,在发出绘图调用之前不会发生太多事情,如
glDrawArray
glDrawElements
。大多数其他调用只是设置draw调用将使用的状态。国家最重要的部分是你已经看到的:

  • glvertexattributearray
    和相关调用用于指定用于绘制调用的顶点数据
  • glUseProgram
    ,以及在此之前用于构建程序的所有调用,指定将为绘制调用运行哪些着色器
一旦所有这些状态都设置好,并发出抽签通知,就可以启动整个机器。如果你想阅读这里发生的一切的细节,你应该能够找到像“OpenGL渲染管道”这样的搜索词,或者在任何OpenGL书籍中找到好的材料。大致来说,主要步骤如下:

  • 固定功能单元根据您使用
    glvertexattributearray
    和相关调用设置的状态获取顶点数据,并将该数据提供给顶点着色器
  • 设置的顶点着色器在其
    属性
    变量中接收该顶点数据,并对其进行处理
  • 顶点着色器生成的已处理顶点由固定的功能单元光栅化,该功能单元决定需要渲染哪些像素
  • 这些像素(也称为片段)被送入片段着色器
  • 设置的片段着色器处理这些片段,并输出片段的颜色
  • 片段着色器生成的颜色将写入帧缓冲区
这比我在这里列出的内容要多,但我希望这将帮助您了解基本知识