《Unity Shader》9.4.3 使用帧调试器查看阴影绘制过程

首先,我们需要在Window -> Frame Debugger中打开帧调试器。

点击 Window-analysis-frame debugger,点击 enable

图9.20中可以看出,绘制该场景共需要花费20个渲染事件。这些渲染事件可以分为4个部分:UpdateDepthTexture,即更新摄像机的深度纹理;RenderShadowmap,即渲染得到平行光的阴影映射纹理;CollectShadows,即根据深度纹理和阴影映射纹理得到屏幕空间的阴影图;最后绘制渲染结果。

我的只有15个

我猜是 draw dynamic 是 draw plane 和 plane(1)

我们首先来看第一个部分:更新摄像机的深度纹理,这是前4个渲染事件的工作。

Unity调用了Shader: Unity Shader Book/Chapter9 Shadow pass #3来更新深度纹理

尽管Chapter9-Shadow中只定义了两个Pass,但正如我们之前所说,Unity会在它的Fallback中找到第三个Pass,即LightMode为ShadowCaster的Pass来更新摄像机的深度纹理

在第二个部分,即渲染得到平行光的阴影映射纹理的过程中,Unity也是调用了这个Pass来得到光源的阴影映射纹理。

第三个部分中,Unity会根据之前两步的结果得到屏幕空间的阴影图,如图9.22所示。

在最后一个部分中,如果物体所使用的Shader包含了对这张阴影图的采样就会得到阴影效果。图9.23给出了这个部分Unity是如何一步步绘制出有阴影的画面效果的。

相关推荐
凯尔3159 小时前
Unity简单涂料实现
unity·游戏引擎·图形渲染
刘步权12 小时前
KY-RTI分布仿真技术:第十三章 基于Unity的多语言三维态势仿真——以 Island Assault(夺岛突击)想定为例
unity·游戏引擎·仿真·态势·ky-rti·hla·rti
ellis197015 小时前
C#/Unity清理非托管资源
unity·c#
玖玥拾1 天前
Unity 3D 笔记(十四)Unity/C# Socket 网络笔记3
服务器·网络·unity·c#
Python私教1 天前
Godot图片怎么导入?PNG、压缩、Mipmap与Reimport一次讲清
游戏引擎·godot
玖玥拾1 天前
Unity 3D 笔记(十七)Unity/C# Socket 网络笔记6
服务器·网络·unity·c#
寒水馨1 天前
Linux下载、安装godot-4.7.1-stable(附安装包Godot_v4.7.1-stable_linux.x86_64.zip)
linux·游戏引擎·godot·游戏开发·2d游戏·3d游戏·godot engine
寒水馨2 天前
macOS下载、安装godot-4.7.1-stable(附安装包Godot_v4.7.1-stable_macos.universal.zip)
macos·3d·游戏引擎·godot·跨平台·游戏开发·2d
电子云与长程纠缠3 天前
UE中使用TGuardValue与TInlineComponentArray数据结构
开发语言·数据结构·学习·ue5·游戏引擎
玖玥拾3 天前
Unity 3D 笔记(十二)Unity/C# Socket 网络笔记1
网络·unity·c#