50_在URP中开启深度图

创建时间: 2020/11/26 11:23
更新时间: 2021/12/23 14:27
作者: 金色的海螺

1.在URP中开启深度图

绘制深度图
50_在URP中开启深度图 - 图1

默认情况下打钩Depth Texture,就会出现Copy Depth
50_在URP中开启深度图 - 图2

想让物体有深度信息,渲染序列必须是不透明物体,半透明物体不行
深度信息只会在属于不透明队列才会去渲染
50_在URP中开启深度图 - 图3
50_在URP中开启深度图 - 图4

在UPR下,深度信息会尽量合批渲染同一个层次的物体,这也是URP一个重要的优化项
50_在URP中开启深度图 - 图5

如何在Shader内开启深度图和开启阴影Cast Shadows
50_在URP中开启深度图 - 图6

开启灯光后,会有一个专门绘制深度的Pass
如果场景内没有灯光或者没有打开Cast Shadows,系统就会走Copy Depth深度的生成
50_在URP中开启深度图 - 图7

2.如何在Shader中使用深度

50_在URP中开启深度图 - 图8

3.ComputeScreenPos

50_在URP中开启深度图 - 图9
50_在URP中开启深度图 - 图10
50_在URP中开启深度图 - 图11
50_在URP中开启深度图 - 图12
50_在URP中开启深度图 - 图13

4.LinearEyeDepth

用frac小数调试效果
50_在URP中开启深度图 - 图14
50_在URP中开启深度图 - 图15
50_在URP中开启深度图 - 图16

ndc是归一化的设备坐标
50_在URP中开启深度图 - 图17
50_在URP中开启深度图 - 图18

5.Linear01Depth

50_在URP中开启深度图 - 图19
50_在URP中开启深度图 - 图20

6.BuildIn管线下的深度图

01.需要场景内有ShadowCaster Pass,这样才会渲染到深度图里面去
02.相机要开启深度图,这一步操作需要C#脚本来完成

一般情况下,只有高端机才会开启深度图,中低端机不会开启深度图