Update nexus wiki content
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user