20240307 学习目标:
- 刷课至1.9
学习内容:
1.2 计算机图形学概览
- 建模:次时代建模流程
- 渲染:
- 离线渲染
- 实时渲染
- 动画:
- 序列帧动画
- 蒙皮动画
- 骨骼动画
- 视效模拟
- 计算机图形学的应用:
- 电子游戏
- CG电影 CG动画 等等
1.3 图形显示系统
- 帧缓存
- 图形显示处理器:显卡 - GPU
- 优点:核处理器多,擅长浮点运算和并行运算
- 缺点:管理控制能力弱,功耗高,发热大
1.4 固定到可编程流水线
- 功能强大灵活
- 控制权高
- 与硬件无关,可跨平台
1.5 图形流水线概览
- 渲染流水线:生成二维图像的过程
- 应用程序阶段数据:
- 几何阶段:顶点着色 - 几何曲面细分着色 - 裁剪 - 屏幕映射
- 光栅化阶段:三角形设置 - 三角形遍历 - 片断着色(自由) - 混合(可配置)
- 帧缓存
1.6 Shader编程语言
- OpenGL:是在驱动层之上提供跨平台的图形标准API
- DirectX:是由微软创建的多媒体编程接口
- GLSL;HLSL;Cg
- Unity中着色器语言:ShaderLab
- 计算机图形学、GPU、OpenGL/DirectX、Unity、shaderLab之间的关系?
1.7 Unity Shader初识
- 计算机图形学:学科
- GPU:用于渲染的硬件
- OpenGL/DirectX:与显卡驱动打交道的图形标准API
- Unity:引擎软件
- ShaderLab:Unity中的着色器编辑语言
- Unity中编写ShaderLab来通过OpenGL/DirectX告诉显卡驱动要做什么,然后显卡驱动再指挥GPU进行计算并输出到显示器上。
- Shader是着色器:如何绘制顶点的颜色(数据)以及最终像素的颜色。
- Shader的制作方式:
- 代码编写:
- 优点:自由灵活、功能强大、性能可控
- 缺点:上手难度高、学习曲线陡
- 可视化节点编辑:
- 优点:容易上手,不需要写代码,可快速出效果
- 缺点:功能有限制,性能很难做最优
- Shader forge:已经不更新了
- Amplify Shader Editor:表面着色器
- Shader Graph:Unity内置 SRP
- 代码编写:
- Shaderlab的几种形式
- 固定管线着色器(Fixed Function Shader)
- 表面着色器(Surface Shader)冗余
- 顶点片断着色器(Vertex/Fragment Shader)推荐
- Shaderlab的模板
- Standard Surface Shader:
- Unlit Shader:顶点片断着色器
- Image Effect Shader:屏幕后处理
- Shader Variant Collection:在最后优化的时候用
- Computer Shader
- Ray Tracing Shader
1.8 Shader编程环境
- IDE:代码编辑器
- Vs Code:推荐
- ctr+shif+F:全局搜索
- ctr+S:格式自动调节
- c#时的设置:https://code.visualstudio.com/docs/other/unity
1.9 Shader代码框架
- 从整体到局部到细节
- Shader “CG/FrameWork” Shader路径和名称
- “” 字符串
- Properties { } 材质属性
- SubShader { } 子着色器 可以写多个 至少有一个
- Pass { } 具体的绘制 渲染
- CustomEditor “” 自定义采集面板
- Fallback “” 备用方案
学习产出:
- 1.1
- 1.2
- 1.3
- 1.4
- 1.5
- 1.6
- 1.7
- 1.8
- 1.9