笔记01——GPU渲染流程

来源:互联网 发布:淘宝靠谱日代推荐 编辑:程序博客网 时间:2024/05/18 01:43

一、

1、顶点着色器

输入:几何阶段的数据

GPU并行执行指令,并行执行的指令相互不联系。

CPU顺序执行指令,执行过程中可以相互联系。

工作原理:对每一个顶点调用顶点着色器,计算顶点的颜色和进行坐标变换。

可编程控制。

2、几何着色器

输入:点、线、面等图元数据

工作:生成新的图元,逐图元的着色。这一部分着色器是DirectX10引入的特征。利用GPU特性生成新的细节,减轻CPU负担。

可进行一部分编程控制。

3、裁剪

输入:点、线、面等图元数据,

根据摄像机位置,裁剪无序渲染的部分,减轻后续流程的负担。

可设置,不可编程

4、屏幕映射

输入:点、线、面等图元数据,

将坐标映射到屏幕坐标系。

不可编程

二、

5、三角形设置

输入:顶点位置,颜色和深度等等;前一阶段屏幕映射就是把三维的空间变成二维空间,一个点距离屏幕的远近保留再z轴中,后续用这些信息处理

得到三角形对屏幕像素的覆盖信息;

不可编程;

6、三角形变换

输入:设置结果;

检查像素是否被三角形覆盖,如果是,生成片元,并且对片元内部的像素进行插值。

例子:10岁那年身高1m,18岁2米,计算14岁身高,可通过插值得到。

7、片元着色器

输入:插值结果

通常三角形插值变换,颜色等,得出结果不太好。用片元着色器;

纹理采样,计算光照结果等等;

可编程控制;

8、逐片元操作

输入:片元像素颜色,深度等等

混合和写入像素颜色,近处和远处的颜色混合,得到一个比较好的结果。

可编程控制;

三、其它知识

1、OpenGl(多平台,移动端可使用)与DirectX (xbox,windows,微软开发的)图像应用接口,

显卡,每一代架构不同,指令不同。上一代出一个显卡驱动;

通过图像应用接口 调用显卡驱动,

开发者用OpenGL和directx通过调用图像应用方法,来调显卡驱动,最后通过显卡显示。

2、

HLSL  (high level shader language)DirectX的shader编程语言

GLSL   OpenGL的shader编程语言

CG  nvidia公司出品的,语法更接近c语言,用于图像显示的c语言。和directx有合作,比较接近

Unity Shader Language,  unity的shader语言,更容易上手,接近CG、HLSL的语言体系,但不能混用。较以上比,更抽象,更封装。


0 0
原创粉丝点击