这是个人学习笔记,有错欢迎指出
学习链接:
- 冯乐乐 《UnityShader入门精要》
- 【技术美术百人计划】图形 1.4 PC手机图形API介绍
图形API定义:是一个图形库,用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。针对GPU。
当前PC及手机平台主流图形API介绍
DirectX、Opengl、Opengl ES
基础概念
- 应用端: 即我们自己的程序端,相对于opengl es,我们属于应用端
- 图元: 要渲染的几何物体,或者形状。比如要渲染一个正方形的图片,就是一个图元,要渲染两条直线,这两条直线也是图元
- 纹理: 通俗点,可以理解为一张图片,在opengl es中纹理就是图片的另外一种叫法
- 纹素:纹理的基础单元,也就是像素
- 顶点数组 顶点指的是组成图元的各个顶点的坐标数据(在3D笛卡尔坐标中即x,y,z坐标),这些坐标数据可以一起存到一个内存数组中,这个数组就叫做顶点数组
- 顶点缓冲区 在显存中专门分配一块显存来存储这个顶点数组,这个显存就称为顶点缓冲区
- 顶点着色器
- 片元着色器
Opengl 介绍
Khronos 定义了OpenGL ,微软自己定义了DirectX 目前手机,不管是 iOS 还是 Android,都是支持 OpenGL ES
电脑:Windows 系统支持 DirectX 和 OpenGL
Linux/Mac(Unix)系统支持 OpenGL。
Opengl ES1.1 - Opengl ES 2.0、Opengl 2.0 - Opengl ES 2.0 改变了片元着色器
Opengl ES
相同点:相比于 OpenGL ES 1.x 系列的固定功能管线,OpenGL ES 2.0 和 OpenGL ES 3.0 都是可编程图形管线。开发者可以自己编写图形管线中的 顶点着色器 和 片段着色器 两个阶段的代码。
Opengl ES3.0
骁龙Adreno
Adreno是由高通开发的SIP核GPU并用于其自家的SoC,该核心最初作为BitBoys(英语:BitBoys)从事GPU开发工作。
2006年,BitBoys被ATI收购开设Imageon产品线。
2006年AMD收购ATI。2
009年1月,AMD出售Imageon予高通[1]。随后,Imageon被更名为Adreno,也就是我们常说的骁龙手机端GPU框架
查看对应的手机芯片支持的OpenGL es 支持的版本
Adreno
任务
OpenGL ES 3.2的骁龙GPU型号
Adreno 420以上的版本都支持OpenGL ES 3.2
参考别人的笔记:
Vulkan
Vulkan画一个三角形需要1000行,我画了一半就没有继续下去,但是它更接近底层的设计,所有的控制权和责任都在程序本身上,日后一定会成为主流API