主要是对第二章的整理

渲染流水线:由一个三维场景出发,生成(渲染)一张二维图像。

渲染流程:应用阶段、几何阶段、光栅化阶段

应用阶段:

1. 把数据加载到显存中

渲染所需数据从硬盘,到内存,再到显存

2. 设置渲染状态

渲染状态:使用哪个顶点着色器、片元着色器、光源属性、材质等

3. 调用Draw Call

发起方CPU,接收方GPU

GPU流水线

以下为几何阶段主要步骤

顶点着色器:

  1. CPU输入的每一个顶点都会调用一次顶点着色器
  2. 不创建或销毁任何顶点,且顶点之间相互独立
  3. 坐标转换:把顶点坐标从模型空间转换到齐次裁剪空间,归一化的设备坐标NDC(-1,-1,-1)到(1,1,1)
  4. 可以通过改变顶点位置来模拟水面、布料等
  5. 逐顶点光照

 

裁剪:

一个图元和摄像机视野的三种关系:

  1. 完全在视野内
  2. 完全在视野外
  3. 部分在视野内(产生新的顶点)

 

屏幕映射:

把每个图元的x、y坐标转换到屏幕坐标系

OpenGL:左下角(0,0)

DirectX:左上角(0,0)

以下为光栅化阶段主要步骤

三角形设置:

上一阶段得到的是三角形每条边的两个端点,三角形设置计算边界像素的坐标信息

三角形遍历:

  1. 检查每个像素是否被一个三角网格所覆盖。如果覆盖,就会生成一个片元(Fragment)
  2. 一个片元不是真正意义上的像素,而是包含很多状态的集合,这些状态用于计算每个像素的最终颜色。(屏幕坐标、深度信息、法线、纹理坐标等)

片元着色器:

  1. 计算该片元的输出颜色
  2. 可以完成很多重要的渲染技术(如纹理采样等)
  3. 仅可影响单个片元(导数信息例外)

 

逐片元操作:

  1. 决定每个片元的可见性(深度测试、模板测试等)
  2. 通过测试的片元的颜色值和已经存储在颜色缓冲区中的颜色进行合并(混合)

Draw Call中造成性能问题的元凶是CPU

为了让CPU和GPU可以并行工作,两者之间有个命令缓冲区。CPU通过图像编程接口向命令缓冲区添加指令,GPU从中读取指令并执行。

命令缓冲区的指令有很多种类:

  1. Draw Call
  2. 改变渲染状态(改变使用的着色器、使用不同的纹理等)

《Unity Shader入门精要》读书笔记(1)的更多相关文章

  1. 【读书笔记】《Computer Organization and Design: The Hardware/Software Interface》(1)

    笔记前言: <Computer Organization and Design: The Hardware/Software Interface>,中文译名,<计算机组成与设计:硬件 ...

  2. 算法设计手冊(第2版)读书笔记, Springer - The Algorithm Design Manual, 2ed Steven S.Skiena 2008

    The Algorithm Design Manual, 2ed 跳转至: 导航. 搜索 Springer - The Algorithm Design Manual, 2ed Steven S.Sk ...

  3. [读书笔记]设计原本[The Design of Design]

    第1章 设计之命题 1.设计首先诞生于脑海里,再慢慢逐步成形(实现) 2.好的设计具有概念完整性:统一.经济.清晰.优雅.利落.漂亮... 第2章 工程师怎样进行设计思维——理性模型 1.有序模型的有 ...

  4. 《Unix编程艺术》读书笔记(1)

    <Unix编程艺术>读书笔记(1) 这两天開始阅读该书,以下是自己的体会,以及原文的摘录,尽管有些东西还无法全然吃透. 写优雅的代码来提高软件系统的透明性:(P134) Elegance ...

  5. 【英语魔法俱乐部——读书笔记】 3 高级句型-简化从句&倒装句(Reduced Clauses、Inverted Sentences) 【完结】

    [英语魔法俱乐部——读书笔记] 3 高级句型-简化从句&倒装句(Reduced Clauses.Inverted Sentences):(3.1)从属从句简化的通则.(3.2)形容词从句简化. ...

  6. 【英语魔法俱乐部——读书笔记】 2 中级句型-复句&合句(Complex Sentences、Compound Sentences)

    [英语魔法俱乐部——读书笔记] 2 中级句型-复句&合句(Complex Sentences.Compound Sentences):(2.1)名词从句.(2.2)副词从句.(2.3)关系从句 ...

  7. Computer architecture Computer organization

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCEComputer architectureNINTH EDITION C ...

  8. 图解TCP/IP读书笔记(一)

    图解TCP/IP读书笔记(一) 第一章 网络基础知识 本学期的信安概论课程中有大量的网络知识,其中TCP/IP占了相当大的比重,让我对上学期没有好好学习计算机网络这门课程深感后悔.在老师的推荐下开始阅 ...

  9. 《Linux/Unix系统编程手册》读书笔记8 (文件I/O缓冲)

    <Linux/Unix系统编程手册>读书笔记 目录 第13章 这章主要将了关于文件I/O的缓冲. 系统I/O调用(即内核)和C语言标准库I/O函数(即stdio函数)在对磁盘进行操作的时候 ...

  10. 《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)

    <Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h> ...

随机推荐

  1. Invalid bound statement (not found): com.taotao.mapper.TbItemMapper.selectByExample: 错误

    在Maven工程下,想通过controller接收url中的参数Id查询数据库的数据,并且以json形式显示在页面. 在浏览器输入url后出现的问题: 八月 22, 2016 1:45:22 下午 o ...

  2. [HNOI2006]公路修建问题 BZOJ1196 Kruskal

    题目描述 输入输出格式 输入格式: 在实际评测时,将只会有m-1行公路 输出格式: 输入输出样例 输入样例#1: 复制 4 2 5 1 2 6 5 1 3 3 1 2 3 9 4 2 4 6 1 输出 ...

  3. TX1 文字界面启动与root用户自动登录设置

    设置默认文字启动界面 更改/boot/extlinux/extlinux.conf文件,在最后一行的末尾添加 text. 设置自动登录 在/etc/init/tty1.conf文件末尾添加: exec ...

  4. StyleSheet

    StyleSheet.create()方法 //定义组件 var App = React.createClass({ render:function () { return( <View sty ...

  5. UML类图和时序图符号

    看懂UML类图和时序图 https://www.cnblogs.com/me115/p/4092632.html 内容目录: 从一个示例开始 类之间的关系 时序图 附录:<图说设计模式> ...

  6. 斐讯 N1 刷 Armbian 5.64

    前言 N1 天天链是斐讯出的一款挖矿产品,虽然已经翻车,但是本身硬件配置还是很不错的,晶晨 S905D 主控,蓝牙 4.1,双频 WiFi,2G + 8G,USB2.0,HDMI.而一个只要不到 80 ...

  7. [BZOJ 3613][Heoi2014]南园满地堆轻絮

    传送门 这题......注意读题就行 刚开始读成了Ans = Σ{|A[j]-B[j]|}以为是道神题,结果是Ans = Max{|A[j]-B[j]|}. 嗯.......可以证明Ans = 最大的 ...

  8. angular model-dialog 关闭按钮

    <button class="close" data-dismiss="modal" type="button" aria-label ...

  9. 基于 bootstrap html 响应式 布局

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  10. UVA - 136 Ugly Numbers (有关set使用的一道题)

    Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence1, 2, 3, 4, 5, 6, 8, 9, ...