Update nexus wiki content

This commit is contained in:
2026-05-03 05:42:06 +08:00
parent 90f3811b83
commit 111bc65b7b
707 changed files with 32306 additions and 7289 deletions

View File

@@ -2,8 +2,8 @@
title: "Shader"
type: concept
tags: [game-dev, rendering, graphics]
sources: [technical-artist]
last_updated: 2026-04-26
sources: [technical-artist, unity-shader-graph-artist]
last_updated: 2026-05-01
---
# Shader
@@ -41,6 +41,29 @@ Unity URP/HDRP 的高级抽象,自动处理光照模型,开发者只需定
| 透明/加法 | 中等 | 高 | VFX、玻璃 |
| 自定义光照 | 高 | 极高 | 特殊效果 |
## Unity Shader Graph 规范(来自 [[unity-shader-graph-artist]]
### Sub-Graph 强制复用
所有重复逻辑必须封装为 Sub-Graph重复节点簇是维护和一致性失败。Sub-Graph 封装典型场景DissolveCore消融逻辑、Fresnel边缘高光、TriplanarMapping三角平面映射
### URP / HDRP API 严格区分
- **URP 自定义通道**`ScriptableRendererFeature` + `ScriptableRenderPass`,不能用 `OnRenderImage`
- **HDRP 自定义通道**`CustomPassVolume` + `CustomPass`API 与 URP 不兼容
- Shader Graph 必须设置正确的 Render Pipeline asset否则 URP 图形无法在 HDRP 中工作
### 移动端性能硬约束
| 指标 | 上限 |
|------|------|
| 每 Fragment Pass 纹理采样 | ≤ 32 次 |
| 不透明 Fragment ALU | ≤ 60 条 |
| Alpha Clipping | 优先于 Alpha Blend避免过度绘制深度排序 |
| `ddx`/`ddy` 导数 | 移动端禁止tile-based GPU 上行为未定义) |
### HLSL 规范
- 使用 `.hlsl` 扩展名声明 include 文件,`.shader` 扩展名声明 ShaderLab wrapper
- 必须使用 `TEXTURE2D`/`SAMPLER` 宏(`Core.hlsl``sampler2D` 不是 SRP 兼容的
- `CBUFFER_START(UnityPerMaterial)` 属性块必须与 `Properties` 块完全匹配,否则产生静默黑材质
## Related Concepts
- [[VFX]]Shader 常用于 VFX 特效实现
- [[LOD-Pipeline]]LOD 切换时着色器需保持视觉一致性
@@ -48,4 +71,7 @@ Unity URP/HDRP 的高级抽象,自动处理光照模型,开发者只需定
## Connections
- [[TechnicalArtist]] ← writes ← Shader
- [[UnityShaderGraphArtist]] ← Unity 专精 ← Shader
- [[VFX]] ← implements via ← Shader
- [[URP]] ← 渲染管线 ← Shader
- [[HDRP]] ← 渲染管线 ← Shader