GPU渲染管线与shader
2015-10-10 18:54
295 查看
1 几何阶段(顶点shader处理这部分)
模型坐标空间-世界坐标空间-观察坐标空间-屏幕坐标空间其中从观察空间 到 屏幕空间需要经过3步(CVV单位立方体,规范立方体)
a用透视变换矩阵把顶点从视锥体中变换到裁剪空间的 CVV 中;
b在 CVV 进行图元裁剪;(这里就是视域剔除View Frustum Culling)
c屏幕映射:将经过前述过程得到的坐标映射到屏幕坐标系上。
顶点着色程序从GPU 前端模块(寄存器)中提取图元信息(顶点位置、法
向量、纹理坐标等),并完成顶点坐标空间转换、法向量空间转换、光照计算等
操作,最后将计算好的数据传送到指定寄存器中;然后片断着色程序从中获取需
要的数据,通常为“纹理坐标、光照信息等”,并根据这些信息以及从应用程序传
递的纹理信息(如果有的话)进行每个片断的颜色计算,最后将处理后的数据送
光栅操作模块。
------------------------------------------------------------------------------------------------------------------------
2图元装配
就是处理顶点连接关系(这里会进行背面剔除Back-Face Culling,以减少顶点)------------------------------------------------------------------------------------------------------------------------
3光栅化阶段
决定哪些像素被集合图形覆盖的过程光栅化前,图形都是连续的,需要通过光栅化把这些连续的图形转换为屏幕上对应的像素点
光栅化后会进行片段操作(片段shader处理这部分)
a 遮挡剔除,消除遮挡面
b 纹理操作Texture operation
c 混合 blending,透明处理
d 滤镜或滤波 filtering ,一种颜色经过某种滤波或滤镜处理后再输出
这里特殊说明下,unity shader 的surf 和自定义光照部分都是在这里处理的,surf可以处理纹理,而光照在几何阶段猜测只是记录光照数据,这里计算光照对颜色的影响
光栅化过程用到的4个缓冲
1 深度缓冲区 z buffer 保存顶点深度
2 模板缓冲区 stencil buffer 保存顶点是否处于阴影体内的标识,有的说模板缓冲室深度缓冲的一部分
3 帧缓冲区 frame buffer 存储深度缓冲和颜色缓冲的混合
4 颜色缓冲区 color buffer
另外最后会进行个视口裁减
片断着色程序对每个片断进行独立的颜色计算,最后输出颜色值的就是该片
段最终显示的颜色。可以这样说,顶点着色程序主要进行几何方面的运算,而片
段着色程序主要针对最终的颜色值进行计算。
片段着色程序还有一个突出的特点是:拥有检索纹理的能力。对于GPU 而言,
纹理等价于数组,这意味着,如果要做通用计算,例如数组排序、字符串检索等,
就必须使用到片段着色程序
片断和像素有什么不一样?所谓片断就是所有的三维顶点
在光栅化之后的数据集合,这些数据还没有经过深度值比较,而屏幕显示的像素
都是经过深度比较的。
------------------------------------------------------------------------------------------------------------------------
每个顶点数据都会执行一次顶点程序;每个片段都会执行一次片段程序。
相关文章推荐
- IOS开发之绝对布局和相对布局(屏幕适配)
- 为何要将多个图标放在一张背景图里?
- Ubuntu 远程登录服务器--ssh的安装和配置
- C 语言练习题总结
- 杭电 2097
- discuz社区与java web的钉钉手机版整合(二)
- squid代理服务的配置
- ARM8位位图--第二操作数的立即数表示
- Java Json Html ajax数据传递
- 为什么主引导记录的内存地址是0x7C00?
- 初学者git的使用教程
- [原创] Fragment的添加、移除问题
- HDU 1700 复数应用
- 【解决】kettle启动时出现的Java Runtime Environment异常
- 1.JS设计模式-this,call&apply
- Swift开放StatsD后上传数据的出现,出现退换货503的Bug
- Nginx出现413 Request Entity Too Large错误解决方法
- jquery的使用
- 一道数列的规律题(使用递归解决)
- git与IDE开发[git for windows & TortoiseGit]