本文地址:https://blog.youkuaiyun.com/t163361/article/details/125746935
最近准备申请新星创作者,需要2000个粉丝关注,觉得文章有用的,请点一下左侧边栏的关注,谢谢。
传统的UI都是基于Gamma空间来制作的。当Unity中切换为线性工作流后,导致UI也是用的线性叠加。这样在有半透叠加的情况下,渲染出来的UI效果和PS中看到的不一样。当然这种问题可以要求美术修改PS中的半透叠加方式,就可以保持PS中和Unity中的效果一致。但这样美术需要改变自己熟悉的制作感觉。还有另一种方式就是场景渲染走线性,UI走Gamma方式。下面收集的是基于URP工作流,实现的UI保持Gamma空间渲染。
URP
GammaUIAndSplitResolution
本库主要解决了在 线性工作流下,如何保持UI 相机还能够保持在 Gamma (伽玛) 颜色空间下工作
UI 相机的渲染不应该受到 任何 postprocess 和 finalProcess( 例如 fxaa 和 fsr) 的影响
充分利用URP内置RenderTargetSwapBuff ,保持了原本代码一致性
UI_RenderPipelineInLinearSpace
这个项目是一套基于 Unity URP 的 UI 渲染管线和 Shader 框架, 为了修复线性色彩空间中的的 UI 切图的透明度错误, 能够让 UI 设计师在 Unity 中保持原有的 sRBG 工作流。
CustomURP
这是一个定制的URP的Demo。实际用到游戏中还需要根据各自游戏进行修改。
本方案主要实现以下内容:
1,场景相机走Linear渲染; UI相机走Gamma渲染
2,场景相机和ui相机分辨率分离
3,修正FXAA在最后pass渲染,导致UI模糊问题