Unity Shader 基础1---理论
来源:互联网 发布:数据库 代码 编辑:程序博客网 时间:2024/06/07 03:44
(1)图形管道
图形绘制的整个过程叫做管道。过程如下:
- 顶点数据:由3D模型的MeshRenderer组件传递三角形网格
- 顶点着色:通过CG编写的程序对每个顶点进行着色(可编程)
- 几何图元生成:连接特定的顶点形成几何图元(三个顶点形成一个三角形图元,4个顶点形成一个四边形图元)
- 光栅化: 对几何图元所包围的所有像素进行插值
- 片段着色:通过CG编程的程序对片段进行着色(可编程)
- 逐个片段操作:对每个片段进行设置操作
- 帧缓存:记录计算后的片段颜色的像素序列
(2)管线分类
- 固定渲染管线 :标准的几何&光照管线,功能是固定的,它控制着世界、视、投影变换及固定光照控 制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。功能比较有限。基本所有的显卡都能正常运行。
- 可编程渲染管线:可对渲染管线中的顶点运算和像素运算分别进行编程处理,而无须象固定渲染管线那样套用一些固定函数,取代设置参数来控制管线。
(3)顶点置换
- 对象/模型坐标系:通过模型矩阵进行变换(模型坐标到世界坐标,顶点着色器中进行)
- 世界坐标系:通过视图矩阵进行变换(世界坐标到视图坐标,顶点着色器中进行)
- 观察着坐标系:通过投影矩阵进行变换(视图坐标投影,顶点着色器中进行)
- 裁剪坐标系:透视变换
- 普通设备坐标系:视窗变换
- 屏幕/窗口坐标系:
(4)空间类型
- 模型空间:每一个物体以自己作为原点的欧几里得三维坐标空间。
- 世界坐标空间:系统表示所有物体绝对坐标的空间。
- 视空间:又称相机空间,是为了方便表达相机为世界的中心时,所有物体的相互关系的空间。
- 视锥体空间:相机所能看到的区域的空间。
- 裁剪空间(平面):视锥体空间所看到的最远距离的平面。
(5)Unity Shader 分类
- Fixed function shader:属于固定渲染管线 Shader, 基本用于高级Shader在老显卡无法显示时的Fallback使用。使用的是ShaderLab语言。
- Vertex and Fragment Shader :顶点着色器和片段着色器所使用的Shader, 最强大的Shader类型,属于可编程渲染管线. 使用的是CG/HLSL语法。
- Surface Shader : 表面着色器所用Shader,Unity3d推崇的Shader类型,使用Unity预制的光照模型来进行光照运算。使用的也是CG/HLSL语法。
(6)Unity Shader 区别
- Surface Shader 的 subshader块里不用写 pass块
- Fixed function shader 不需要写功能函数,直接调用已用函数(SetTexture等)
- Vertex and Fragment Shader 需要编写 vertex(顶点着色处理函数)和 fragment(片段着色处理函数)
- Surface Shader 需要编写 surf(表面着色函数)
0 0
- Unity Shader 基础1---理论
- Unity Shader基础(1)
- Unity Shader入门精要笔记(八):Unity 的基础光照——概念与理论
- 【Unity Shader】基础光照
- Unity Shader基础
- 【Unity Shader】UnityShader基础
- unity shader:数学基础
- Unity Shader入门基础
- unity基础开发--shader基础知识
- 【Unity】Shader编程 基础总结
- 【Unity】Shader编程 基础总结
- Unity&Shader基础篇-概述
- Unity Shader 之一 语法基础
- 【Unity】Shader编程 基础总结
- 第三章 Unity Shader 基础
- Unity Shader基础(3)--unity shader 常用语义
- Unity Shader入门精要笔记(二):Unity Shader基础
- 【Unity Shader入门精要】— Unity Shader基础
- HDU2066最短路
- 人生顿悟之宽以待人,严以律己
- 诗歌《致爱人》通过第二届心心相印爱情诗歌初审
- UVa123 Searching Quickly
- 获取本机的IPV4地址
- Unity Shader 基础1---理论
- (从零开始学Android)编辑框EditText与按钮Button学习心得
- 爱情
- You can Solve a Geometry Problem too(计算多个线段的交点个数)
- 深度学习之二:特征
- Merge Two Sorted Lists
- (7.2.9)SQL Server 跨库复制表数据的解决办法
- Mac下的Vim:神器MacVim的安装
- Codeforces Round #259 (Div. 2) E. Little Pony and Summer Sun Celebration