渲染的基础概念
- 所有我们能看到的东西都是需要进行渲染的。比如:天空盒,场景模型,角色模型,特效……
颜色空间
- Gamma 空间:移动端,页游,HoloLens,性能比较低的硬件设备。
- Linear 空间:PC 端,主机端。
渲染模式
- Opaque(不透明):用于渲染所有不透明的物体,这类物体在场景中是最多的。60% 的比例。
- Transparent(透明):用于渲染有透明效果的物体,这类物体在场景中也比较多。30% 的比例。
常用贴图
- Main(主贴图,漫反射贴图)
- Metallic (金属贴图)
- Normal Map (法线贴图):用于增加模型的细节;法线贴图本身是一张蓝色的凹凸图。
- Specular(镜面贴图)
- Detail Mask(细节遮罩贴图)
- Height Map(视差贴图)
获取/修改 Shader 中参数的值
material.GetFloat("参数名"); //获取小数类型值
material.GetColor("参数名"); //获取颜色类型值;
material.GetTexture("参数名"); //获取贴图类型值;
material.SetFloat("参数名",值); //设置小数类型值;
material.SetColor("参数名",颜色值); //设置颜色类型值;
material.SetTexture("参数名",贴图); //设置贴图类型值;
后处理
- Post Process是基于屏幕的后期处理,原理是将摄像机显示的画面在缓冲区中使用滤镜和效果处理,然后再显示出来。可以用来模拟物理摄像机和电影特效。
- 后处理一般都比较昂贵
渲染管线
渲染其实就是从一个三维场景出发,将其进行渲染生成一个二维图像供人眼观察。详细点说,就是CPU和GPU配合,将3D场景中各个对象的坐标,纹理,材质等信息经一系列转换生成人眼可以看见的图像映射到屏幕上。
-
1、应用阶段
- 1-1:数据的准备
- 1-2:设置渲染状态
- 1-3:发送DrawCall
-
2、几何阶段
- 2-1:顶点着色器
- 2-2:裁剪
- 2-3:屏幕映射
-
3、光栅化阶段
- 3-1:三角形设置
- 3-2:三角形遍历
- 3-3:片元着色器
- 3-4:逐片元操作