本课程面向有一定编程基础且对 Shader 编写没有经验的同学,由浅入深的讲解 GPU 渲染的原理和流程,以及 Shader 编写中的一些技巧。本课程将会从最简单的 Shader 开始学习常见的漫反射和高光模型,并且对这些模型代码进行改进实现更好的效果。课程中还讲解了 Unity 中最常见的前向渲染路径的基本知识,以及Unity是如何处理场景中多种光源的等细节知识。
课程大纲
第一节:GPU 渲染
· 计算机中的三维模型
· GPU 渲染的流程
· DrawCall
· 几何阶段和光栅化阶段
· OpenGL 与 DirectX
· 常用的编写语言 HLSL/GLSL/CG
第二节:Unity Shader 编程初探
· Unity Shader 的组成部分
· 各个部分的作用及常见的代码格式
第三节:Shader 编程数学基础快攻
· 向量与向量运算
· 坐标系与坐标系转换
· 矩阵以及矩阵在图形学中的作用
· 常用的坐标变换函数
第四节:从零开始实现一个基础漫反射模型
· 漫反射的物理模型
· 漫反射模型的具体实现
· 介绍 Unity 前向渲染路径和光源的分类
第五节:改进漫反射模型
· 在片段着色器中实现光照计算
· 使用 Valve 公司的技术改善背光面的表现
第六节:实现高光反射模型
· 高光反射模型中的 Phong 和 Blin-Phong 算法
· 实现 Phong 和 Blin-Phong 模型
第七节:改进高光反射 Shader 的表现
· 使用 Unity 内置函数增强光源适用性
· 表现 Shader 的阴影投射
· 课程总结