从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调度到内存中转——>最后存到显存中
第二步 进入渲染预备状态
显存中有几种不同的储存区域,用于储存不同阶段需要的数据。
1、顶点缓冲区:用于储存从内存中传递过来的顶点数据。
2、索引缓冲区:用于储存每个顶点的索引值,我们可以根据索引来使用相应的顶点
3、纹理缓冲区:用于储存从内存中传递过来的纹理数据
4、深度缓冲区:用于存储每个像素的深度信息
5、模板缓冲区:用于存储像素的模板值,且模板缓冲区域深度缓冲区公用一片内存。
6、颜色缓冲区:用于储存像素的颜色数据
3.软件流程
第一步:图形信息加载到显存中备用
不管是三维模型 还是二维UI都以相同的数据结构(个人理解:点和索引信息,图结构?)
点信息索引信息(框架)都被加载进了 显存 中备用,而模型不光有框架而已 包括颜色,贴图 等信息 也被加载到显存
第二步 ——顶点着色器,坐标转换
1. 模型空间坐标系:Model Space
模型中心为原点,所有的模型顶点坐标都已原点为基准
2. 世界空间坐标系:World Space
整个游戏场景中的参考坐标系,是一个固定不变的坐标系,
所有的模型的坐标都可以在世界坐标系中表示,模型在世界坐标系中可以执行位移变换,旋转变换,缩放变换等操作。
3. 视角空间:View Space
这个坐标是以照相机为基准的,以照相机位置为原点,照相机朝向z轴正方向,右边为x轴正方向,上边为y轴正方向。之所以设置这个坐标系,主要是为了主便接下来的投影及裁剪操作。如果直接在世界空间下进行,由于照相机位置、朝向灵活多变,计算将会十分复杂。有了视角空间,一切计算以原点为基准,会大大方便计算。
4. 投影、裁剪空间:Projection Clip Space
这个空间即世界空间的物体被投影到相应的投影面上之后,继而进行裁剪操作所在的空间。
总结
总结这个工作过程一个工厂中
shader property中的 材质 纹理 颜色 光照 是工厂中的原材料
硬件本身就是工人
shader就像是一副装配图纸告诉工人以怎样的方式组织原材料
网友评论