关于URP14绘制全屏Blit后处理的改动

最近用回URP,发现RendererFeature这部分改动很大,启用了之前HDRP的RTHandle,RTHandle的设计类似于优化版本的RenderTexture,

可以统一控制缩放或者并非一对一的RT内存申请。

并且Blit的方式变成了先SetTarget后做一次绘制,也是和HDRP对齐。

 

在新的URP中实现全屏后处理效果可以走StackPostProcessing的扩展或者写RendererFeature,

这篇文章写的很详细:

https://zhuanlan.zhihu.com/p/621840900

 

官方对于新的RenderFeature修改,给出了完整Demo案例:

https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@14.0/manual/renderer-features/how-to-fullscreen-blit.html

 

但是,真正使用时会发现这个教程有点问题,用的是_CameraOpaqueTexture,如果屏幕内有半透明内容则会出现错误。

目前的解决方法是拷贝FullscreenPass自己修改。但该Pass对应的ShaderGraph材质仍有问题,

若是正交相机求世界空间位置则内部未做判断(或是因为过早点击生成代码所致)。

 

 

而自定义StackPostProcessing做法,可能相比RendererFeature更方便一些:

https://docs.unity3d.com/Packages/com.unity.postprocessing@3.4/manual/Writing-Custom-Effects.html

 

Tips: 若需要Texture2D传入,可使用接口Shader.SetGlobalTexture,SharedPropertyBlock无效

 

posted @   HONT  阅读(355)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
历史上的今天:
2015-02-03 双向链表LinkedList使用
点击右上角即可分享
微信分享提示
回到顶部