# URPShaderTest **Repository Path**: zxjun2002/urpshader-test ## Basic Information - **Project Name**: URPShaderTest - **Description**: URP管线中自用学习的效果和优化相关 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-11 - **Last Updated**: 2025-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # URPShaderTest 一些在 **Unity URP** 下自用的渲染/着色实验,包含: - **水体焦散与阴影(Caustics)** - **PBA / PBD 布料模拟** - **实时平面镜反射(Planar Reflection)** --- ## 实现原理(简版) ### 水体焦散与阴影 - 使用水面法线与太阳方向做折射(`refract`),将水面点映射到水下接收面。 - 用屏幕导数 `ddx/ddy` 估算映射的面积变化(雅可比),能量密度与其倒数成正比:**I ∝ 1/|det|**。 - 将生成的 **Caustics RT** 沿光方向投射到场景,得到更亮的焦散与相应阴影。 - 可选:强度钳制、深度淡化与轻度模糊以稳定画面。 ### PBA / PBD 布料 - 网格构造 Stretch / Shear / Bend 约束。 - **PBA**:半隐式欧拉推进速度和位置; **PBD/XPBD**:迭代投影约束,直接修正位置并回推速度。 - 主要计算用 **Jobs + Burst** 并行化;常用参数:刚度 `k`、步长 `dt`、迭代数 `iter`。 ### 实时平面镜反射 - 创建反射相机/Pass,使用反射矩阵与裁剪平面渲染 **反射贴图**。 - 在材质中按视角与法线取样该贴图,可叠加粗糙度与衰减以更自然。