URP 手写 PBR 管线
不调用 UniversalFragmentPBR,从零实现 Cook-Torrance(GGX D/F/G)与 Split-Sum IBL,含 POM 视差、光线步进自阴影与完整 Pass 结构。
独立作品
让周围轻一点,文字近一点。
作品主视觉点击画面,查看细节
- ENGINE
- Unity · URP
- TECH
- Shader · HLSL · 后处理
- ROLE
- Shader
- YEAR
- 2025
案例目录7 小节
URP管线,不依赖内置函数,从零手写的完整 PBR 渲染管线,基于 Cook-Torrance 模型手写完整 PBR 管线,不调用 UniversalFragmentPBR 内置光照函数,所有光照计算均自主实现,便于后续定制和扩展。
大致实现内容
-
自主 PBR 实现
- Cook-Torrance BRDF(GGX D/F/G)
- IBL 环境光(Split Sum,预过滤Cubemap + Environment BRDF)
-
Parallax Occlusion Mapping
- 动态层数控制
- 光线步进自阴影
- 视角衰减
-
完整 URP Pass 结构
- ForwardLit / ShadowCaster / DepthOnly / DepthNormals
- 支持 SSAO
-
多光源支持(点光源/聚光灯)
-
雾效
-
移动端性能变体(shader_feature裁剪)
粗糙度金属度矩阵图
roughness × metallic 参数矩阵,验证 PBR 实现正确性

材质效果
石头、布料、金属等多种材质效果展示

单独模型材质效果测试
POM视差
实现了基于高度图的视差遮蔽映射,通过动态层数采样模拟表面凹凸的 视差效果,在低面数网格上实现真实的深度感。左图为普通法线贴图, 右图为POM效果。

自阴影
在POM基础上实现光线步进自阴影,凸起部分对相邻区域产生遮蔽, 增强了表面细节的真实感。支持软阴影和阴影强度调节。

视角衰减
视差随视角衰减

URP-SSAO
支持POM效果的SSAO
