OpenGL渲染架构解析

OpenGL渲染架构解析

请看图:
OpenGL渲染架构流程图
以上是OpenGL渲染架构流程图,接下来让我们来分析一下这张图的每一步。

Client 和 Server

此图中的Client和Server与平时大家在开发中遇到的前端和后台是不一样的。

  • Client:是存储在CPU存储器中的代码,并在应用程序或者在内存的驱动程序中执行。
  • Server:通过GPU不断的将数据块和命令组合起来送入顶点着色器和片元着色器。

Shader(着色器)

着色器的介绍在此篇文章中就不介绍,详情请查看博客:https://blog.csdn.net/weixin_40918107/article/details/106870209
先看一下着色器的渲染流程,就能更好的理解。
在这里插入图片描述

着色器获取数据数据的方式(Texture Data,Uniforms,Attributes)

Texture Data、Uniforms和Attributes数据都会通过通道传入顶点着色器,但是顶点着色器并不会处理关于纹理的计算,纹理数据更多的是片元着色器来处理。
Texture Data、Uniforms和图元装配的输出值通过通道传入片元着色器。

Attributes(属性)

  • 属性就是一个对每个顶点都要做改变的数据元素
  • 属性常为需要改变的数据,比如:顶点数据、颜色值、纹理坐标、光照计算法线等等。
  • 属性只能顶点着色器中修饰。如果某个颜色值片元着色器中需要使用,那么就需要通过顶点着色器间接传入片元着色器。

Uniforms

  • Uniforms值是比较统一的,不需要发生太多改变;
  • uniforms传入的值可以是浮点数、整数、布尔数据和矩阵;
  • 可以直接传递到顶点着色器和片元着色器;
  • 与属性相同点:可以是浮点值、整数、布尔值
  • 与属性不同点:顶点着色器和片元着色器都可以使用uniform变量。uniform 变量还可以是标量类型、矢量类型、uniform矩阵。

Texture Data

  • 顶点着色器和片段着色器都可以对纹理值进行采样和处理,比如使用场景:滤镜,滤镜实际上是对图片本身做处理的,它是在读取的时候,去改变纹理的颜色值
  • 纹理数据,不仅仅表现在图形,很多图形文件格式都是以无符号字节(每个颜色通道8位)形式对颜色分量进行存储的。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值