Unity2019 LWRP渲染模式下,FairyGUI有做支持吗?

Unity2019,LWRP渲染模式下,我所知道的是LWRP现在不支持多相机。而FairyGUI用的是多相机实现的。所以FairyGUI,在这个模式下面,只能看到UI。看不到场景。这个FairyGUI有做支持吗?还是已经有解决方案了?谢谢!!!
已邀请:

FangJ

赞同来自: 谷主 qpuilie

SRP Batcher不用去掉, 改下FairyGUI-Text, FairyGUI-IMage shader
Snipaste_2020-05-20_11-08-46.png

tenvick

赞同来自: 谷主

LWRP的多相机支持,我们这里用的是LWRP5.16.1,直接根据相机名来改ClearFlags就行了
核心思想,就是 让UI的clearflags 过去。
真机还需要开启DepthTexture, General->Depth Texture 打钩。

LWRP 版本 5.16.1 兼容FariyGUI 解决方案
代码
ScriptableRenderer.cs:

void ExecuteRenderPass(ScriptableRenderContext context, ScriptableRenderPass renderPass, ref RenderingData renderingData)
{

/// line 364 官方原有代码。。。。。......
Camera camera = cameraData.camera;
ClearFlag clearFlag = GetCameraClearFlag(camera.clearFlags);

// 在这里强行刷个StageCamera的深度标志
if (camera.gameObject.name==("Stage Camera"))
clearFlag = ClearFlag.Depth;
// 在这里强行刷个StageCamera的深度标志

// 官方原有代码。。。。。
SetRenderTarget(cmd, m_CameraColorTarget, m_CameraDepthTarget, clearFlag,
CoreUtils.ConvertSRGBToActiveColorSpace(camera.backgroundColor));

谷主

赞同来自:

这个要么自己改管线代码,要么等他支持相机堆叠了。这个不支持太坑爹,应该在计划表里的。

wylionheart

赞同来自:

哎,难受,Unity官方也问了,回答就是后面会做支持,但是2019.2.0也不行。看来只有自己改管线。谢谢

tenvick

赞同来自:

不勾depth texture 效果
ML}W9M4YMUAB[7`}IUQ6I`0.jpg

 
勾选的效果

Screenshot_2019-11-11-16-25-15-597_com.GUI_.DDD_.png

 

chnhawk - unity

赞同来自:

Opaque Texture关掉才行

happypeterlin

赞同来自:

Unity 2019.3.0f6,使用URP(com.unity.render-pipelines.universal@7.1.8),踩到一个坑,在此记录一下,供后人参考
 
首先我用楼上@tenvick 的方法,改ScriptableRenderer.cs源码的方式,成功接入了FGUI,但是部分UI出现异常,以下是一个案例:
FGUIEditor下的样子
Snipaste_2020-03-26_14-13-45.png

 
实际显示的样子(有4个text没显示出来):
Snipaste_2020-03-26_14-14-34.png

 
检查GameObject后可以确定FGUI创建的对象是没问题的,然后拉动Unity Scene界面可以看到以下诡异的一幕:

1.gif

 
Frame Debugger看不出什么毛病,但看到了SRP Batch的字样
后来误打误撞,把项目里的UniversalRenderPipelineAsset->Advanced->SRP Batcher的勾去掉,显示就正常了

Snipaste_2020-03-26_14-23-59.png

 
不知道FGUI是不是和2019的新管线有一些兼容上的问题

leoncan408

赞同来自:

HDRP也是一样的解决办法么?

要回复问题请先登录注册