Files
nexus/wiki/sources/unity-shader-graph-artist.md
2026-04-26 12:02:53 +08:00

60 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Unity Shader Graph Artist"
type: source
tags: []
date: 2026-04-26
---
## Source File
- [[raw/Agent/agency-agents/game-development/unity/unity-shader-graph-artist.md]]
## Summary用中文描述
- 核心主题Unity Shader Graph Artist Agent 角色定义 —— 一个精通 Unity 渲染管线的专业 AI Agent专注于 Shader Graph 可视化材质创作与 HLSL 性能优化
- 问题域:游戏/实时渲染视觉效果开发、跨 URP/HDRP 管线的 Shader 创作规范与性能约束
- 方法/机制:通过 Sub-Graph 模块化架构、Renderer Feature 自定义渲染通道、Shader Complexity Audit 复杂度审核流程,确保视觉效果与性能的平衡
- 结论/价值:提供了一套完整的 Unity 渲染 Agent 工作体系,覆盖从设计简报到 Shader 交付、艺术家交接的全链路规范
## Key Claims用中文描述
- 所有 Shader Graph 必须使用 Sub-Graph 封装重复逻辑 —— 重复的节点簇是维护和一致性失败
- URP 自定义通道必须使用 `ScriptableRendererFeature` + `ScriptableRenderPass` —— 禁止使用 `OnRenderImage`(仅限内置管线)
- HDRP 自定义通道使用 `CustomPassVolume` + `CustomPass` —— API 与 URP 不同,不可互换
- 透明材质优先使用 Alpha Clipping 而非 Alpha Blend —— Alpha clipping 无过度绘制深度排序问题
- 所有 Fragment Shader 必须在 Unity Frame Debugger 和 GPU Profiler 中完成性能分析后方可发布
## Key Quotes
> "Every Shader Graph must use Sub-Graphs for repeated logic — duplicated node clusters are a maintenance and consistency failure" — Shader Graph 架构强制规范
> "URP custom passes use `ScriptableRendererFeature` + `ScriptableRenderPass` — never `OnRenderImage` (built-in only)" — URP/HDRP 管线 API 差异说明
> "Mobile: max 32 texture samples per fragment pass; max 60 ALU per opaque fragment" — 移动端性能硬约束
## Key Concepts
- [[Shader Graph]]Unity 可视化 Shader 编辑器,允许艺术家通过节点图创建材质,无需手写 HLSL
- [[Sub-Graph]]Shader Graph 中的可复用子图模块,用于封装重复逻辑节点簇
- [[URP (Universal Render Pipeline)]]Unity 通用渲染管线,轻量级,跨平台支持
- [[HDRP (High Definition Render Pipeline)]]Unity 高清渲染管线,面向高端主机/PC 的 PBR 渲染
- [[ScriptableRendererFeature]]URP 自定义渲染通道系统,允许注入自定义全屏效果
- [[HLSL]]High-Level Shader LanguageShader Graph 编译的目标代码,可手写以实现极致性能
- [[Alpha Clipping]]:透明裁剪渲染模式,通过像素丢弃实现透明效果,避免深度排序问题
- [[Frame Debugger]]Unity 内置帧调试工具,逐 draw call 分析渲染管线
- [[RenderDoc]]:第三方 GPU 帧捕获工具,用于 Shader 调试和寄存器值检查
## Key Entities
- [[Unity Technologies]]Unity Engine 开发商,提供 Shader Graph、URP、HDRP 等渲染系统
- [[DissolveCore]]Sub-Graph 封装示例,包含溶解效果的节点逻辑,可复用于多个角色材质
- [[OutlineRendererFeature]]:自定义 URP Renderer Feature实现描边效果的 C# 类
- [[CustomLit.hlsl]]URP 兼容的 PBR 自定义 Shader 示例,展示完整的 HLSL 编写规范
## Connections
- [[UnityShaderGraphArtist]] ← authored_by ← [[TechnicalArtist]]Technical Artist 可能指导或审查 Shader Graph Artist 的输出)
- [[Shader Graph]] ← requires ← [[URP / HDRP]]Shader Graph 必须在正确的渲染管线下创作)
- [[Sub-Graph]] ← enables ← [[Shader Graph]]Sub-Graph 是 Shader Graph 模块化的基础)
- [[ScriptableRendererFeature]] ← part_of ← [[URP]](自定义渲染通道是 URP 的扩展机制)
## Contradictions
- 与 [[UnrealTechnicalArtist]] 关于渲染管线选择:
- 冲突点Unreal 使用 Material Editor + Custom NodeHLSL方案Unity 使用 Shader Graph + Sub-Graph 方案
- 当前观点Unity Shader Graph Artist 认为 Shader Graph 应为艺术家首选HLSL 仅用于性能关键路径
- 对方观点Unreal Technical Artist 认为 HLSL 编码在所有情况下都是首选方案
- 说明:两者均为各自平台的最佳实践,冲突源于平台差异而非绝对优劣