《Unity Shader入门精要》读书笔记(1)
主要是对第二章的整理
渲染流水线:由一个三维场景出发,生成(渲染)一张二维图像。
渲染流程:应用阶段、几何阶段、光栅化阶段。
应用阶段:
1. 把数据加载到显存中
渲染所需数据从硬盘,到内存,再到显存
2. 设置渲染状态
渲染状态:使用哪个顶点着色器、片元着色器、光源属性、材质等
3. 调用Draw Call
发起方CPU,接收方GPU
GPU流水线
以下为几何阶段主要步骤
顶点着色器:
- CPU输入的每一个顶点都会调用一次顶点着色器
- 不创建或销毁任何顶点,且顶点之间相互独立
- 坐标转换:把顶点坐标从模型空间转换到齐次裁剪空间,归一化的设备坐标NDC(-1,-1,-1)到(1,1,1)
- 可以通过改变顶点位置来模拟水面、布料等
- 逐顶点光照
裁剪:
一个图元和摄像机视野的三种关系:
- 完全在视野内
- 完全在视野外
- 部分在视野内(产生新的顶点)
屏幕映射:
把每个图元的x、y坐标转换到屏幕坐标系
OpenGL:左下角(0,0)
DirectX:左上角(0,0)
以下为光栅化阶段主要步骤
三角形设置:
上一阶段得到的是三角形每条边的两个端点,三角形设置计算边界像素的坐标信息
三角形遍历:
- 检查每个像素是否被一个三角网格所覆盖。如果覆盖,就会生成一个片元(Fragment)
- 一个片元不是真正意义上的像素,而是包含很多状态的集合,这些状态用于计算每个像素的最终颜色。(屏幕坐标、深度信息、法线、纹理坐标等)
片元着色器:
- 计算该片元的输出颜色
- 可以完成很多重要的渲染技术(如纹理采样等)
- 仅可影响单个片元(导数信息例外)
逐片元操作:
- 决定每个片元的可见性(深度测试、模板测试等)
- 通过测试的片元的颜色值和已经存储在颜色缓冲区中的颜色进行合并(混合)


Draw Call中造成性能问题的元凶是CPU
为了让CPU和GPU可以并行工作,两者之间有个命令缓冲区。CPU通过图像编程接口向命令缓冲区添加指令,GPU从中读取指令并执行。
命令缓冲区的指令有很多种类:
- Draw Call
- 改变渲染状态(改变使用的着色器、使用不同的纹理等)
《Unity Shader入门精要》读书笔记(1)的更多相关文章
- 【读书笔记】《Computer Organization and Design: The Hardware/Software Interface》(1)
笔记前言: <Computer Organization and Design: The Hardware/Software Interface>,中文译名,<计算机组成与设计:硬件 ...
- 算法设计手冊(第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 ...
- [读书笔记]设计原本[The Design of Design]
第1章 设计之命题 1.设计首先诞生于脑海里,再慢慢逐步成形(实现) 2.好的设计具有概念完整性:统一.经济.清晰.优雅.利落.漂亮... 第2章 工程师怎样进行设计思维——理性模型 1.有序模型的有 ...
- 《Unix编程艺术》读书笔记(1)
<Unix编程艺术>读书笔记(1) 这两天開始阅读该书,以下是自己的体会,以及原文的摘录,尽管有些东西还无法全然吃透. 写优雅的代码来提高软件系统的透明性:(P134) Elegance ...
- 【英语魔法俱乐部——读书笔记】 3 高级句型-简化从句&倒装句(Reduced Clauses、Inverted Sentences) 【完结】
[英语魔法俱乐部——读书笔记] 3 高级句型-简化从句&倒装句(Reduced Clauses.Inverted Sentences):(3.1)从属从句简化的通则.(3.2)形容词从句简化. ...
- 【英语魔法俱乐部——读书笔记】 2 中级句型-复句&合句(Complex Sentences、Compound Sentences)
[英语魔法俱乐部——读书笔记] 2 中级句型-复句&合句(Complex Sentences.Compound Sentences):(2.1)名词从句.(2.2)副词从句.(2.3)关系从句 ...
- Computer architecture Computer organization
COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCEComputer architectureNINTH EDITION C ...
- 图解TCP/IP读书笔记(一)
图解TCP/IP读书笔记(一) 第一章 网络基础知识 本学期的信安概论课程中有大量的网络知识,其中TCP/IP占了相当大的比重,让我对上学期没有好好学习计算机网络这门课程深感后悔.在老师的推荐下开始阅 ...
- 《Linux/Unix系统编程手册》读书笔记8 (文件I/O缓冲)
<Linux/Unix系统编程手册>读书笔记 目录 第13章 这章主要将了关于文件I/O的缓冲. 系统I/O调用(即内核)和C语言标准库I/O函数(即stdio函数)在对磁盘进行操作的时候 ...
- 《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)
<Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h> ...
随机推荐
- 第八届山东ACM省赛F题-quadratic equation
这个题困扰了我长达1年多,终于在今天下午用两个小时理清楚啦 要注意的有以下几点: 1.a=b=c=0时 因为x有无穷种答案,所以不对 2.注意精度问题 3.b^2-4ac<0时也算对 Probl ...
- js 删除removeChild与替换replaceChild
<input type="button" value="删除" id="btn" /> <input type=" ...
- poll?transport=longpoll&connection...烦人的请求
2016-06-19 11:50 76人阅读 评论(0) 收藏 举报 分类: C#那点事 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.问题描述: 最近使用miniui做了一个后台管理系 ...
- PHP 备份还原 MySql 数据库
原生 PHP 备份还原 MySql 数据库 支持 MySql,PDO 两种方式备份还原 php5.5 以上的版本建议开启pdo扩展,使用 pdo 备份还原数据 备份文件夹 db_backup.impo ...
- Luogu P1436 棋盘分割 暴力DP
我的天,,,,,n=8,k<=15,,,这怕不是暴力DP+高维数组.... 开一个五维数组f[k][i][j][p][q]表示从(i,j)到(p,q)中分成k个矩形最小的平方和. 然后初始化时用 ...
- P4890 Never·island
传送门 考虑把总区间长度减去最多能减少的区间长度 把所有区间离散化,对每一小段计算贡献 分类讨论一波,对于边界 $i,i+1$ ,设它们之间距离 $d$,$i$ 属于 $x$ 考察队的边界,$i+1$ ...
- BZOJ - 2440 容斥定理
组合枚举n/i/i,贡献为miu倍 /*H E A D*/ int mu[maxn],prime[maxn],cnt; bool isprime[maxn]; void sai(int n){ mu[ ...
- Scrapy错误-no active project Unknown command: crawl
在运行别人的scrapy项目时,使用命令行 scrapy crawl douban(douban是该项目里爬虫的名字,烂大街的小项目---抓取豆瓣电影). 执行之后,出现报错如下: 上网搜寻无果. 大 ...
- C++ GUI Qt4编程(09)-3.3spreadsheet-toolbar
1. C++ GUI Qt4编程第三章,增加工具栏.状态栏和快捷键. 2. mainwindow.h /**/ #ifndef MAINWINDOW_H #define MAINWINDOW_H #i ...
- 数据插入INSERT
一.INSERT SELECT :将查询的数据直接插入 特点: 1.一次性插入所有查询出来的数据. 2.数据原子性,有一个失败全部失败. 3.没有指定的列加默认值或NULL,都没有就报错. 二.INS ...