UnitySRP Devlog 1

我从5月份开始重新写unity srp管线,目前写完了PBS材质,硬阴影,MRT,SSAO等功能,计划把它扩展出延迟渲染,forward+等功能,因为之前考虑不依赖srp core package,所以还没有对shadergrpah package和vfx graph的支持,后续开发的时候会考虑加入这些功能的。 目前先整理一下前一段时间的框架和思路

首先,SRP需要通过创建pipeline asset去创建渲染管线实例,这个实例需要有一个渲染方法的入口,unity engine会去调用这个方法,并自动赋值上下文和相机数组,在asset里我可以配置一些srp的常量:缩放比例,当前相机宽高等数据。在渲染方法中,我遍历每个相机,并开始渲染,首先可以支持的有引擎默认的shader,比如天空球,shadererror,这里我需要用到commandbuffer,它是提交给gpu的指令缓存,可以提交设置变量堆,绘制,设置rendertarget等功能,commandbuffer的提交需要上下文的支持。在绘制mesh时,还需要从相机获取到相机裁剪等信息。

我在crprender里申明了几个实例,分别对应设置光源,绘制opaque,后处理等不同的功能