美文网首页iOS视觉
四 OpenGL 渲染架构

四 OpenGL 渲染架构

作者: 王俏 | 来源:发表于2020-08-04 17:34 被阅读0次

1. OpenGL 渲染架构

image
  • 客户端:

    OpenGL提供应⽤程序⽤于⽣成2D或3D图像的函数,开发者编写的代码,调用的OpenGL的API框架,以及OpenGL驱动.

    客户端是存储在CPU存储器中的,并且在应用程序中执行,或者在主系统内存的驱动程序中执行。

  • 服务端:

    OpenGL规范没有提供⾃己的窗口层,计算机图形硬件厂商所提供的OpenGL的实现。我们编写的GLSL代码也是在服务端去运行的,即操作GPU。

    它依赖于OS X定义的功能来将OpenGL绘图与窗⼝系统集成,应⽤程序创建OS X OpenGL 渲染上下⽂并将渲染⽬标附加到可绘制对象上,渲染上下⽂管理OpenGL状态更改和通过调用OpenGL API创建的对象。

客户端只会向服务端传递三种数据:

我们能操作和配置的只有顶点着色器和片元着色器,往这两个着色器传递数据的通道有三个:

1. 属性值(Attributes)

属性会从本地客户端内存中复制存储在图形硬件中的一个缓冲区上。这些属性只供顶点着色器使用,不能直接传递到片元着色器,通过GLSL代码间接传递给片元着色器。

这些属性对每个顶点都要做改变,属性值可以是浮点数、整数或布尔数据。主要应用是顶点的颜色数据,顶点数据,投影矩阵,模型矩阵,纹理坐标(图片的映射坐标),光照坐标,光照法线等

2. Uniform值

Uniforms值本质上跟属性一样,顶点着色器和片元着色器中都可以有Uniform变量。

我们通常设置完Uniform变量就紧接着发出渲染一个图元批次的命令。Uniform实际上可以无次数限制的使用,我们可以设置一个应用于整个表面的单个颜色值,还可以设置一个时间值,在每次渲染某种类型的顶点动画时修改它。
Uniform变量的常见的应用是在顶点渲染中设置变换矩阵,视频颜色从YUV转换为RGB的转换矩阵等。

3. 纹理数据(Texture Data)

从顶点着色器和片元着色器中都可以对纹理值进行采样和筛选。典型情况下,片元着色器对一个纹理进行采样,并在一个三角形的表面上应用图形数据,但是,纹理数据的作用并不仅仅是表现图形。

步骤:

  • 1、三个值都可以通过三个通道分别传到顶点着色器中,顶点着色器处理从客户段输入的数据、应用变换、进行其他的类型的数学运算来计算关照效果、位移、颜色值等等。
  • 2、顶点着色器处理完成之后,就会经过图元合成,将顶点组合在一起变成图元,然后裁剪、转换窗口坐标、进行光栅化;
  • 3、接着将数据输入到片元着色器,计算片元最终颜色以及深度,然后传递到片元测试模块以及混合模块,由片元着色器输出我们将屏幕上看到的最终颜色值。

注意:

Attributes属性值是不能直接传递给片元着色器的,只能通过顶点着色器去传递。但是Uniforms和纹理数据是可以直接传递给片元着色器的。

相关文章

  • OpenGL渲染架构

    OpenGL的渲染架构图 OpenGL渲染主架构 OpenGL渲染架构分为客户端(Client)和服务端(Serv...

  • OpenGL/OpenGL ES(二) 渲染架构

    1. 渲染架构图 上图是 OpenGL 渲染的大致架构,从图中我们可以看出,OpenGL 渲染架构分为Client...

  • OpenGL渲染架构以及三种数据传递方式

    一、OpenGL渲染架构 了解OpenGL渲染架构对我们学习OpenGL有非常重要的作用。话不多说,直接上图: 图...

  • 3. OpenGL渲染基础

    一、OpenGL渲染架构图 1. OpenGL渲染架构图: 2. 数据传递: 从上图可以看出OpenGL的数据传递...

  • OpenGL渲染架构

    OpenGL渲染架构 OpenGL的渲染架构image.png 渲染流程:设置顶点数据和其他参数。在顶点着色器中进...

  • 四 OpenGL 渲染架构

    1. OpenGL 渲染架构 客户端:OpenGL提供应⽤程序⽤于⽣成2D或3D图像的函数,开发者编写的代码,调...

  • 3、OpenGL渲染架构

    OpenGL渲染架构 渲染架构图 主要分为两大模块 Client:是指常见的ios代码和OpenGL API方法。...

  • openGL着色器的渲染流程

    openGL渲染架构 上图为openGL渲染架构图 Attributes属性 属性就是对每一个顶点都要做改变的数据...

  • OpenGL笔记二:OpenGL 渲染流程及投影

    前言 期待您移步上篇:OpenGL笔记一:专业名词 OpenGL渲染架构 OpenGL 渲染流程分为两个部分:Cl...

  • OpenGL渲染架构与传值方式

    OpenGL渲染架构 了解OpenGL渲染架构 client和server并不是我们平时开发时常说的客户端和服务器...

网友评论

    本文标题:四 OpenGL 渲染架构

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