Auto-sync: 2026-04-26 08:02

This commit is contained in:
2026-04-26 08:02:48 +08:00
parent 22f77e0660
commit c073392db8
70 changed files with 3766 additions and 25 deletions

51
wiki/concepts/Shader.md Normal file
View File

@@ -0,0 +1,51 @@
---
title: "Shader"
type: concept
tags: [game-dev, rendering, graphics]
sources: [technical-artist]
last_updated: 2026-04-26
---
# Shader
## Definition
Shader着色器是在 GPU 上运行的专用程序,控制像素如何被渲染——决定颜色、光照、阴影、透明度等视觉特性。游戏开发中最常用的语言为 HLSLDirectX/PC、GLSLOpenGL/Linux和 ShaderLabUnity
## Core Concepts
### Vertex Shader
逐顶点执行,负责几何变换(模型空间 → 世界空间 → 视图空间 → 屏幕空间和传递顶点属性UV、法线
### Fragment/Pixel Shader
逐像素执行,决定最终像素颜色。性能敏感操作应优先考虑移至 Vertex Shader。
### Surface ShaderUnity 概念)
Unity URP/HDRP 的高级抽象,自动处理光照模型,开发者只需定义表面属性。
### Compute Shader
通用 GPU 计算,可用于后处理、特效、布料模拟等非传统渲染任务。
## Technical Artist 的 Shader 标准
- **移动端安全变体**:所有自定义着色器必须包含移动端安全版本或明确标注平台限制
- **Shader 复杂度分析**:使用引擎的 Shader 复杂度可视化工具验证,绿色/黄色合格,红色必须修订
- **参数文档化**:暴露给艺术家的所有着色器参数必须在材质检查器中有 Tooltip 注释
- **避免逐像素操作**:可在顶点阶段完成的操作不应放在像素阶段(移动端尤其重要)
## Shader 类型与预算
| 类型 | PC 复杂度 | Mobile 复杂度 | 典型应用 |
|------|-----------|---------------|---------|
| Unlit | 极低 | 极低 | UI、纯色物体 |
| Lit (PBR) | 中等 | 中等-高 | 角色、环境 |
| 透明/加法 | 中等 | 高 | VFX、玻璃 |
| 自定义光照 | 高 | 极高 | 特殊效果 |
## Related Concepts
- [[VFX]]Shader 常用于 VFX 特效实现
- [[LOD-Pipeline]]LOD 切换时着色器需保持视觉一致性
- [[RenderingPipeline]]Shader 是渲染管线的可编程核心
## Connections
- [[TechnicalArtist]] ← writes ← Shader
- [[VFX]] ← implements via ← Shader