【文集】Unity:由浅入深的渲染教程
发表于2018-01-10
Unity是一款优秀的游戏引擎,它的功能之全面,流程之优化,理念之成熟深受优秀开发者的喜爱。
今天我们来介绍一个Unity渲染方面的系列教程,这一系列由浅入深详细地介绍了Unity的渲染功能,非常适合初学者:
- 创建立方体网格。
- 支持缩放、位移和旋转。
- 使用变换矩阵。
- 创建简单的相机投影。
- 对网格顶点进行变换。
- 给像素着色。
- 使用渲染器的属性。
- 将数据从顶点着色器传递到片段着色器。
- 检查编译后的着色器代码。
- 使用平铺和偏移数据对纹理进行采样。
- 对多张纹理贴图进行采样。
- 使用细节纹理贴图。
- 在线性空间中处理颜色
- 使用splat贴图。
- 将法线从物体空间转换到世界空间。
- 使用方向光。
- 计算漫反射和镜面高光反射。
- 实现能量守恒。
- 使用金属的工作流程。
- 利用Unity的基于物理规则渲染的算法。
- 对每个物体渲染多个光源的光照效果。
- 支持不同的光源类型。
- 使用光源cookie。
- 计算顶点光照。
- 在光照计算中添加球面谐波函数(spherical harmonics)的光照。
- 扰动法线来模拟凹凸不平的情况。
- 从高度字段来计算法线。
- 对法线贴图进行采样和混合。
- 从切线空间转换到世界空间。
- 研究下Unity渲染阴影的方式。
- 投射平行光阴影。
- 接收平行光阴影。
- 添加对聚光灯和点光源的阴影的支持
- 对环境进行采样。
- 使用反射探测器。
- 创建粗糙和平滑的镜子。
- 执行盒体投影立方体贴图的采样。
- 反射探测器之间的混合。
- 创建一个自定义着色器GUI
- 混合金属和非金属
- 使用nonuniform光滑度
- 支持发射表面
- 将自身阴影烘焙到同一张材质
- 为部分表面添加细节
- 更多高效shader变体(shader variants)的支持
- 同时编辑多个材质
- 使用着色器剪孔。
- 使用一个不同的渲染队列。
- 支持半透明的材质。
- 合并反射和透明度。
- 支持剪切造成的阴影。
- 使用抖动。
- 对半透明材质造成的阴影进行近似。
- 在半透明材质的阴影和剪切生成的阴影之间切换。
- 对延迟渲染的探索。
- 填充几何缓冲区。
- 既支持高动态光照渲染也支持低动态光照渲染。
- 与延迟处理的反射相兼容。
- 给物体应用雾的效果。
- 基于距离或深度的雾。
- 创建一个基于图像的效果。
- 让雾也支持延迟渲染。
- 使用一个自定义的光源着色器。
- 解码低动态光照渲染的颜色。
- 在单独的渲染通道中添加光照。
- 支持方向光源、聚光光源和点光源。
- 手动采样阴影贴图。
- 进行采样并渲染到光照贴图。
- 让烘焙的光照能与法线贴图一起工作。
- 使用一个光照探测器组。
- 只烘焙间接光
- 混合烘焙阴影和实时阴影
- 处理代码的变化和问题
- 支持消减光照(subtractivelighting)
- 对实时全局光照的支持。
- 在全局光照里面对自发光的贡献做动画控制。
- 使用光照探测代理体。
- 将LOD组与全局光照结合使用。
- LOD不同等级之间的淡入淡出。
该系列尚未完结,作者每个月会更新一篇教程。后续文章尚在翻译、审核阶段,敬请期待!
原作者网站:http://catlikecoding.com/unity/tutorials/