Lazy loaded image
Unity Shader
Unity-Shader
字数 369阅读时长 1 分钟
2026-8-1
2026-4-16
type
status
date
slug
summary
tags
category
icon
password
😀
个人感觉shader这块,了解原理,有对它导致问题的判断力即可。
ShaderLab
本质是什么:
Shader 是跑在 GPU 上的程序,控制"每个像素最终显示什么颜色"。ShaderLab 是 Unity 封装的一套写 Shader 的语法格式。
渲染流水线:
notion image
 
CPU→GPU
notion image
notion image
 
渲染管线流程(gpu流水线):
CPU 准备网格数据
↓ 顶点着色器(Vertex Shader) 每个顶点在哪里,做坐标变换 ↓ 光栅化(Rasterization) 把三角形面片转成一个个像素 ↓ 片元着色器(Fragment Shader) 每个像素显示什么颜色 ↓ 输出到屏幕
notion image
需要知道的关键概念:
  • Pass:一次渲染流程,复杂效果可以多 Pass
  • Properties:暴露给 Inspector 面板的参数
  • URP vs Built-in:现在新项目基本用 URP,两套语法不完全通用
  • 什么时候找美术/图程:角色描边、溶解、水面等视觉效果找他们,你只需要能看懂 Shader 代码在做什么、会调参数
  • 空间变换:模型空间→世界空间→观察空间→裁剪空间→屏幕空间
我们作为程序需要的判断力:
▎ 这个效果是 Shader 问题还是逻辑问题?这个 Shader 为什么在低端机掉帧(指令数太多 / 采样次数太多)?
 
上一篇
UnityShader-消融效果
下一篇
给 NotionNext 博客接入 Dify AI 助手:从原理到避坑全记录

评论
Loading...
点击和我聊天吧~