Advertisement

GLSL中的in与uniform变量使用

阅读量:

每个顶点的数据都是由GLSL借助vertex shader来进行执行操作的。例如说,在图形渲染过程中, GLSL会根据不同的阶段(如建模阶段, 观察阶段和投影阶段)来计算各个属性, 并获取诸如三维坐标, 贴图信息以及光照信息等所需数据。

vertex shader的代码在GPU上运行,并非所有顶点共享同一块代码或统一的计算资源;相反地,在这种架构下,默认情况下每个顶点数据都独立地由对应的GPU处理其相关的vertex shader代码,并通过这种方式实现并行计算过程。

每个vertex shader都需要两种基本的数据输入:一种是初始化后的各个顶点原始空间坐标(称为Attribute),另一种则是与应用相关的属性信息(例如温度、密度等)。这些Attribute不仅包含顶点坐标还可能包含其他相关信息(例如纹理坐标法向量等)。为了确保每个vertex shader能够访问其所需处理的顶点的所有Attribute需要在OpenGL程序初始化阶段完成这一过程具体流程如下

生成一个用于管理顶点数据的顶点数组对象VAO,并通过相关函数进行绑定操作以确保资源的有效利用

生成一个VERTEX_ARRAY_BUFFER用于存储与顶点相关的属性信息,并为buffer进行初始化设置;生成和绑定buffer的过程,并通过glBufferData()进行缓冲初始化设置。

  1. 通过属性的索引来启用

全部评论 (0)

还没有任何评论哟~