【实验记录 1】使用帧调试器查看渲染事件

实验目的

  1. 熟悉帧调试器的功能,各个面板的意义等
  2. 进一步理解渲染流程

帧调试器基本介绍

在这里插入图片描述
帧调试器可以查看每一个渲染事件使用的shader、pass、keywords等属性,以及当前渲染的目标(如阴影映射纹理、深度纹理、帧缓存等),还可以查看shader中一些计算变量(纹理、坐标、矩阵等),配合Game窗口可以很好的理解渲染的步骤

场景搭建

在这里插入图片描述

光照
平行光:Shadow Type为Soft,Render Mode为Auto(当前实验中实际执行时是Important)

物体
立方体:Cast Shadows选择On,勾选Receive Shadows,材质为BumpSpecular,使用BumpedSpecular着色器(取自UnityShaderBook中附带shader)
球体:Cast Shadows选择On,勾选Receive Shadows,材质为BumpSpecular,使用BumpedSpecular着色器(取自UnityShaderBook中附带shader)
平面1 - 地面:Cast Shadows选择On,勾选Receive Shadows,材质为Wall,使用Standard着色器
平面2 - 墙面:Cast Shadows选择Two sided,勾选Receive Shadows,材质为Floor,使用Standard着色器

实验

实验1:平行光的阴影渲染

使用搭建好的场景进行实验
渲染事件列表
在这里插入图片描述
上面的渲染事件可以分为6个部分:

1.UpdateDepthTexture:摄像机深度纹理计算
在这里插入图片描述
右侧Game窗口可以看到球体、立方体、地面、墙面的深度值(需要调高亮度要瞎了)

2.RenderShadowMap:平行光阴影映射纹理计算
在这里插入图片描述
右侧Game窗口可以看到,这里其实是渲染了一个类似MipMap的纹理

3.Collect Shadows:计算屏幕空间的阴影映射纹理
在这里插入图片描述
4.Render Loop:渲染物体
在这里插入图片描述
这里TempBuffer的尺寸(351 * 362)其实就是Game窗口的尺寸

5.Render Skybox:渲染天空盒
在这里插入图片描述

6.ImageEffects:后期特效(Post-Process)
当前实验中没有加入后期特效,暂时略过

实验2:非平行光的渲染

添加一个聚光灯,不开启阴影
在这里插入图片描述
渲染事件列表
在这里插入图片描述
可以看到整体的渲染事件从32个变成了34个,排查发现,Render Loop部分多出了2个渲染事件,是聚光灯对地面和球体的影响

实验3:非平行光的阴影渲染

将实验2中的聚光灯的阴影类型设置为软阴影
在这里插入图片描述
渲染事件列表
在这里插入图片描述
整体渲染事件从34变成了37,排查发现是对球体和地面又进行了一次聚光灯的阴影映射纹理计算

使用ForwardAdd Pass,Keywords为SHADOWDEPTH_SOFT SPOT,blend为one one

复制聚光灯1为聚光灯2,调整位置、颜色
在这里插入图片描述

渲染事件列表变化
在这里插入图片描述

渲染效果并不好很生硬

实验4:不重要的非平行光的渲染

将实验3中的聚光灯2渲染模式设置为Not Important(前4个非平行光会被默认设置为Important),这样聚光灯2就不会按照逐像素进行渲染
在这里插入图片描述
渲染事件总数维持在37,渲染结果上的变化发生在Render Loop中,可以看出聚光灯2的蓝色光直接和平行光一起盖在了地面上,并没有像聚光灯1一样另外多出渲染事件(即没有影响到)
在这里插入图片描述
猜测是因为帧调试器不会单独展示顶点着色器中的过程,而是执行完一个完整的subshader,因此作为Not Important光源的聚光灯2的顶点光照被直接渲染出来了

实验5:影响Draw Call合批的因素

1.材质,需同材质(不同材质,同shader也不行)
2.顶点数,需小于300
3.受光,需受到同样的光照影响
4.Shadow Caster是否相同,包括参数、Keywords
5.待验证

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值