type
status
date
slug
summary
tags
category
icon
password
个人感觉shader这块,了解原理,有对它导致问题的判断力即可。
ShaderLab
本质是什么:
Shader 是跑在 GPU 上的程序,控制"每个像素最终显示什么颜色"。ShaderLab 是 Unity 封装的一套写 Shader 的语法格式。
渲染流水线:

CPU→GPU


渲染管线流程(gpu流水线):
CPU 准备网格数据
↓
顶点着色器(Vertex Shader)
每个顶点在哪里,做坐标变换
↓
光栅化(Rasterization)
把三角形面片转成一个个像素
↓
片元着色器(Fragment Shader)
每个像素显示什么颜色
↓
输出到屏幕

需要知道的关键概念:
- Pass:一次渲染流程,复杂效果可以多 Pass
- Properties:暴露给 Inspector 面板的参数
- URP vs Built-in:现在新项目基本用 URP,两套语法不完全通用
- 什么时候找美术/图程:角色描边、溶解、水面等视觉效果找他们,你只需要能看懂 Shader 代码在做什么、会调参数
- 空间变换:模型空间→世界空间→观察空间→裁剪空间→屏幕空间
我们作为程序需要的判断力:
▎ 这个效果是 Shader 问题还是逻辑问题?这个 Shader 为什么在低端机掉帧(指令数太多 / 采样次数太多)?
- 作者:lzzd
- 链接:https://lazy-zed.com/article/u3d_22
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

.png?table=block&id=19785e12-7d7c-8078-a881-fba941a4e6d9&t=19785e12-7d7c-8078-a881-fba941a4e6d9)







.png?table=block&id=19885e12-7d7c-8090-b2f9-d59fd470ae2a&t=19885e12-7d7c-8090-b2f9-d59fd470ae2a)


