Unity 与计算机图形学

从GPU讲到游戏引擎再到游戏


1.GPU/硬件原理


GPU(图形处理器)硬件原理:(个人理解)高效的绘制图形 ,显卡的中央处理器

GPU上大量的计算单元进行搞数据密度的运算,这些计算单元分为两种  

1.ALU (算数逻辑单元 就是用来运算的)    相对于CPU来说他的数量非常大

2.Cache(高速缓存)  缓存静态内存,静态意思是写入内存后,除非重新写入新数据,否则数据不变

由于CPU的速度比内存和硬盘的速度要快得多,所以在存取数据时会使CPU等待,影响计算机的速度。SRAM(静态内存)的存取速度比其它内存和硬盘都要,所以它被用作电脑的高速缓存(Cache)。

视频理解GPU:http://v.youku.com/v_show/id_XNjY3MTY4NjAw.html


2.硬件流程

第一步 数据存储转换

硬盘(信息与指令)——>CPU调度到内存中转——>最后存到显存中

第二步 进入渲染预备状态


Unity 与计算机图形学_第1张图片


显存中有几种不同的储存区域,用于储存不同阶段需要的数据。

1、顶点缓冲区:用于储存从内存中传递过来的顶点数据

2、索引缓冲区:用于储存每个顶点的索引值,我们可以根据索引来使用相应的顶点

3、纹理缓冲区:用于储存从内存中传递过来的纹理数据

4、深度缓冲区:用于存储每个像素的深度信息

5、模板缓冲区:用于存储像素的模板值,且模板缓冲区域深度缓冲区公用一片内存。

6、颜色缓冲区:用于储存像素的颜色数据


3.软件流程

第一步:图形信息加载到显存中备用

不管是三维模型 还是二维UI都以相同的数据结构(个人理解:点和索引信息,图结构?)

点信息索引信息(框架)都被加载进了 显存 中备用,而模型不光有框架而已 包括颜色,贴图 等信息 也被加载到显存


Unity 与计算机图形学_第2张图片


第二步 ——顶点着色器,坐标转换

1. 模型空间坐标系:Model Space

            模型中心为原点,所有的模型顶点坐标都已原点为基准

2. 世界空间坐标系:World Space

            整个游戏场景中的参考坐标系,是一个固定不变的坐标系,

所有的模型的坐标都可以在世界坐标系中表示,模型在世界坐标系中可以执行位移变换,旋转变换,缩放变换等操作。

3. 视角空间:View Space

这个坐标是以照相机为基准的,以照相机位置为原点,照相机朝向z轴正方向,右边为x轴正方向,上边为y轴正方向。之所以设置这个坐标系,主要是为了主便接下来的投影及裁剪操作。如果直接在世界空间下进行,由于照相机位置、朝向灵活多变,计算将会十分复杂。有了视角空间,一切计算以原点为基准,会大大方便计算。

4. 投影、裁剪空间:Projection Clip Space

这个空间即世界空间的物体被投影到相应的投影面上之后,继而进行裁剪操作所在的空间。




总结

总结这个工作过程一个工厂中

shader property中的 材质 纹理 颜色 光照 是工厂中的原材料

硬件本身就是工人

shader就像是一副装配图纸告诉工人以怎样的方式组织原材料


     

你可能感兴趣的:(Unity 与计算机图形学)