管线渲染
定义:图形数据在GPU上经过运算处理,最后输出到屏幕的过程
1. 顶点处理: 接收模型顶点数据、坐标系装换
2. 图元装配: 组装面、连接相邻的顶点,绘制为三角面
3. 光栅化 : 计算三角面上的像素,并为后面着色阶段提供合理的插值参数(以及深度值)
4. 像素处理: 对每个像素区域进行着色、写入到缓存
5. 缓存: 一个存储像素数据的内存块,最重要的缓存是帧缓存与深度缓存
帧缓存:存储每个像素的色彩(缓冲)
深度缓存Z-buffer:前后排序(深度信息,物体到摄像机的距离)
6. Draw Call 绘制调用:每帧调用显卡渲染物体的次数
什么是缓冲?
一个像素有如下缓冲
颜色缓冲Color buffer/prixel buffer: 储存该点即将显示的颜色,RGBA值
深度缓存 depth buffer/Z buffer: 储存该点的深度Z
模板缓存stencil buffer : 通常作用限制渲染区域。更高级用法需结合深度缓存,例如某像素的模板缓冲值会随着其是否通过深度缓冲测试而改变
什么是图元装配(Primitive Assembly)
经过变换的顶点 被装配成几何(三角形等)图集
什么是光栅化(栅格化)(Rasterization)
栅格化这个术语:可以用于任何将矢量图形转化成栅格图像的过程
在3D渲染中主要是指,三角形等图元(矢量)转化成像素碎片的过程。或者说决定哪些像素几何图元覆盖的过程。栅格化的结果是像素位置的集合和片段的集合
什么是光栅操作(Raster Operation)
指在碎片fragment处理后,在更新帧缓存前最后执行的一系列操作。通过包括裁剪,深度测试,alpha测试,alpha混合等。
Shader常见术语
Alpha 透明的(黑透白不透、灰色半透半不透)
Bump凹凸 (法线贴图)
Specular (高光)
Shader主要看Game视窗
Shader显示名称与Shader名不冲突
什么是GPU?
GPU:Graphic Processing Unit,中文翻译为“图形处理器”。显卡包括(GPU,显存,显卡BLOS,显卡PCB板)
什么是Shader?
Shader程序:GPU执行的,针对3D对象进行操作的程序
Shader编程有那几种?
CG:与DirectX 9.0 以上以及OpenGL 完全兼容。运行时或事先编译成GPU汇编代码
HLSL: 主要用于Direct3D。平台:Windows
GLSL: 主要用于OPenGL。 平台:移动平台(IOS,Android),Mac(only use when you target Mac OS X or OpenGL ES 2.0)<