码迷,mamicode.com
首页 > 编程语言 > 详细

「UnityShader入门精要」第二章 渲染流水线

时间:2016-08-06 01:42:48      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

2.3 GPU流水线

技术分享

2.3.2 顶点着色器

  输入来自于CPU,处理顶点数据。输入的每个顶点都会调用一次顶点着色器,所以每次都是对单个顶点进行运算。

  主要任务:坐标变换、逐顶点光照。

技术分享

  坐标变换:修改顶点的位置,例如模拟水面波纹效果、果冻效果等。

必须完成的工作,把顶点坐标从模型空间转换到齐次裁剪空间。

常见的如:o.pos = mul(UNITY_MVP, v.position);

技术分享

 

2.3.3 裁剪

  摄像机视野有限,视野外的物体不需要被处理,可以直接裁剪掉。

2.3.4 屏幕映射

  将单位立方体内的三维坐标转换到二维屏幕坐标,与分辨率有较大关系。

2.3.5 三角形设置

   将网格点连成线,计算得到三角形网格。

2.3.6 三角形遍历

  计算每个像素是否被三角网格覆盖,覆盖则生成片元。

技术分享

 

2.3.7 片元着色器

  输入:上一个阶段(顶点着色器)对顶点信息插值的结果

  输出:一个或多个颜色值

  渲染技术:纹理采样

技术分享

 

2.3.8 逐片元操作

  1.决定每个片元的可见性,例如,深度测试、模版测试

  2.将通过测试的片元颜色值与缓冲区内的颜色进行混合

技术分享

  3.混合,不透明物体直接覆盖原缓冲区的像素值,透明物体与原缓冲区像素值进行混合。

 

 

2.4 一些容易困惑的地方

2.4.3 什么是Draw Call

  CPU调用图像编程接口命令GPU进行渲染的操作,Draw Call多了导致CPU大量执行重复的命令而过载,掉帧。

「UnityShader入门精要」第二章 渲染流水线

标签:

原文地址:http://www.cnblogs.com/777777-716/p/5661947.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!