欢迎光临散文网 会员登陆 & 注册

百人计划图形1.4——图形API介绍

2023-08-10 01:27 作者:咽泣子  | 我要投稿

电脑的工作原理:电脑是由各种不同的硬件组成,由驱动软件驱使硬件进行工作。所有的软件工程师都会直接或者间接的使用到驱动。

定义:是一个图形库,用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。针对GPU。

课程流程

新版本改变的是增加新的片元着色器去替代原先的一些方法

Khronos对于图形和计算的开放标准

OpenGL2.0流程

首先是模型准备,然后顶点着色器去编辑,之后将点面进行图元重组,光栅化,片段着色器的编写,最后经过三种测试输出frame buffer

2.0渲染流程

OpenGL3.1流程

先拿到buffer缓存传到顶点的缓存池中,之后传给顶点着色器进行ttransform的feedback为下一阶段准备,之后进行光栅化、片元着色器的计算、逐片元渲染、输出frame buffer。

3.1渲染流程

OpenGL ES不同点

1.兼容性 

OpenGL ES 3.0是向后兼容OpenGL ES 2.0的。也就是说使用2.0编写的应用程序是可以在3.0中继续使用的。

2.新特性

采用阴影贴图、体渲染 ( volume rendering )、基于GPU的粒子动画、几何形状实例化、纹理压缩和伽马校正等技术的重要功能在2.0中都不具备。3.0将这些功能引人,同时继续适应嵌入系统的局限性。这一部分在下一章详细介绍。

3.渲染管线

3.0中移除了Alpha测试和逻辑操作(LogicOp)两部分,这两部分存在于OpenGL ES 2.0和l OpenGL.ES 1.x 中。

移除 Alpha测试是因为片段着色器可能抛弃片段,因此 Alpha测试可以在片段着色器中进行。移除逻辑操作(( LogicOp)是因为它很少被使用。

OpenGL ES 3.0新功能

  1. 纹理

2.着色器

3.几何形状

4.缓冲区对象

5.帧缓冲区

骁龙Adreno对应ES版本型号

支持OpenGL3.2(视频中)

怎么看待Vulkan?

Vulkan是一个跨平台的2D和3D绘图应用程序接口(API)。相对于 OpenGL,Vulkan大幅降低了 CPU 在提供重要特性、性能和影像质量时的“API 开销” (CPU 在分析游戏的硬件需求时所执行的后台工作),而且可以使用通常通过 OpenGL 无法访问的 GPU 硬件特性。Vulkan能够支持深入硬件底层的控制,为 Windows和 Linux带来更快的性能和更高的影像质量。Vulkan的API 还提供超高的OS兼容性、渲染特性和硬件效率。

vulkan现阶段复杂的原因,是相对于OpenGL这种灵活绘图的api,vulkan初始设计的结构灵活性就太差。渲染管线全部封装到了一个pipeline里面,但更改状态还很复杂,甚至不能改。比如顶点属性,如果只画只有位置的顶点,要么转成通用顶点格式(位置、法线、向量、纹理坐标),要么重建一个pipeline,只支持位置顶点,就是这样。

结合百科以及其他人帖子相关信息的了解后,个人认为Vulkan有可能是之后移动端的主力之一,对于它的学习虽然相对于OpenGL很困难,但还是有必要去学习的,毕竟国内的游戏多数以移动端为主。


百人计划图形1.4——图形API介绍的评论 (共 条)

分享到微博请遵守国家法律