美文网首页
4.顶点属性,顶点数组和缓存区对象

4.顶点属性,顶点数组和缓存区对象

作者: userName | 来源:发表于2020-07-17 18:21 被阅读0次

1.常量顶点属性
glVertexAttrib *

2.顶点数组
顶点数组是制定给个顶点的属性,是保存在应用程地址空间的缓存区。作为顶点缓冲对象的基础
一般用glVertexAttribPointer或者glVertexAttribIPointer

2.1顶点属性的存储方法
结构数组(优):在一个缓冲区中存储顶点属性(内存连续)
数组结构:在单独的缓冲区中保存每个顶点属性

结构数组的缺点:如果顶点属性数据的一个子集需要修改,需要重新加载整个顶点属性缓冲区。可以通过将动态的顶点属性保存在单独的缓冲区避免这种效率低下的情况。

2.2type参数
Type参数指定的顶点属性数据格式不仅影响顶点属性数据的图形内存存储需求,并且影响整体性能,这是渲染帧所需内存带宽的一个函数。
在OpenGL ES 3.0支持名为GL_HALF_FLOAT 16位浮点顶点格式
建议在坐标,法线,副法线,切向量等使用GL_HALF_FLOAT
颜色可以存储位GL_UNSIGNED_BYTE

2.3规范化标志
控制非服点顶点属性数据到单精度浮点值的转换。
如果为假:直接转换为浮点值。
如果为真:不同类型映射的范围不同。

3.顶点缓冲区
3.1使用顶点数组指定的顶点属性保存在内存中。在进行glDrawArrays或者glDrawElements时,这些数据必须从内存复制到图形内存中。如果我们没有必要在每次绘图调用时都复制顶点数据,而是在图形内存中缓存这些数据。从而避免在每次绘图图元时重新发送数据。
OpenGL ES支持两类缓冲对象, 顶点 和 图元数据。
GL_ARRAY_BUFFER 指定顶点
GL_ELEMENT_ARRAY_BUFFER 指定图元
3.2在使用缓冲对象渲染之前,需要分配缓冲区对象并将顶点数据和元素索引上传到相应的缓冲区对象。


4.顶点数组对象(VAO)
在OpenGL ES 3.0 中引入的新特性。
VAO提供包含在顶点数组/顶点缓冲区对象配置之间切换所需要的所有状态的单一对象。

5.映射缓冲区对象
5.1映射优点:
映射缓冲区可以减少应用程序的内存占用,因为可以只需要存储数据的一个副本。
在使用共享内存的架构上,映射缓冲区返回GPU存储缓冲区的地址空间的直接指针。


5.2刷新映射的缓存区

如果应用程序用GL_MAP_FLUSH_EXPLICIT_BIT映射,但是没有明确地用glFlushMappedBufferRange刷新修改后的区域,他的内容将是未定义的。

6.复制缓冲区对象
OpenGL ES 3.0 还可以从一个缓冲区对象将数据完全复制到设备。
glCopyBufferSubData

相关文章

  • 4.顶点属性,顶点数组和缓存区对象

    1.常量顶点属性glVertexAttrib * 2.顶点数组顶点数组是制定给个顶点的属性,是保存在应用程地址空间...

  • 2. 顶点属性

    顶点属性 概述 指定顶点属性数据的方式: 常量顶点属性 顶点数组方式 顶点缓冲区对象方式(图形内存中分配) 顶点数...

  • OpenGL ES 3.0-顶点属性,顶点数组,缓冲区对象(VA

    顶点属性,顶点数组,缓冲区对象 指定顶点属性数据 顶点属性数据可以用一个顶点数组对每个顶点指定,也可以将一个常量值...

  • OpenGL 渲染架构

    OpenGL渲染架构 1、渲染流程 1、设置视口顶点数据和其他参数2、顶点数据数组对象或者顶点缓冲区数组对象提供的...

  • OpenGL ES 顶点着色器与片元着色解析

    1.OpenGL ES 3.0 图形管线流程图 2.流程图节点解析 1.顶点数组/顶点缓存区 顶点数组: 这个部分...

  • 4. 顶点着色器-mvp转换

    4. 顶点着色器-mvp转换 概述 属性:用顶点数组提供的逐顶点数据(顶点位置、颜色、纹理) 统一变量和统一变量缓...

  • OpenGL ES 地球月亮渲染案例

    思维导图 处理ArrayBuffer封装 创建顶点缓存数组 分配顶点数据,准备绘制 绘制 重新缓存顶点数组 Vie...

  • 第八章 顶点着色器

    顶点着色器是对顶点,计算光照以及纹理坐标等相关的操作,第6章,“顶点属性、顶点数组和缓冲对象”,讨论了如何指定顶点...

  • OpenGL学习(二) GLSL语言基础

    前言 我们对顶点数组对象(VAO)和顶点缓存对象(VBO)有了初步的印象之后。我们可以继续接触另一个OpenGL有...

  • (六)顶点属性、顶点数组和缓冲区对象

    顶点数据也称作顶点属性,指定每个顶点的数据。 指定顶点数据属性 顶点属性数据可用一个顶点数组对每个顶点指定,也可将...

网友评论

      本文标题:4.顶点属性,顶点数组和缓存区对象

      本文链接:https://www.haomeiwen.com/subject/qylnhktx.html