Dear Mihhhhhhhh,
If you want to erase the Error Message without enabling “Global Clip Plane”, then you can modify the engine source. However, the message is shown only in non-shipping builds, so in theory if modifying the engine is not an option, the message will not be visible in shipped versions of your game/application.
To Modify the Engine:
If you go to the file SceneRenderer.cpp, you will find that the following lines (from 2763 to 2767 in UE4.24.3) outputs the message (only in non-shipping builds).
if (bShowGlobalClipPlaneWarning)
{
static const FText Message = NSLOCTEXT("Renderer", "NoGlobalClipPlane", "PLANAR REFLECTION REQUIRES GLOBAL CLIP PLANE PROJECT SETTING ENABLED TO WORK PROPERLY");
Canvas.DrawShadowedText(10, Y, Message, GetStatsFont(), FLinearColor(1.0, 0.05, 0.05, 1.0));
Y += 14;
}
To remove it, change these lines (from 2668 in UE4.24.3) from
if (Scene->PlanarReflections.Num() > 0)
{
static const auto* CVarClipPlane = IConsoleManager::Get().FindTConsoleVariableDataInt(TEXT("r.AllowGlobalClipPlane"));
if (CVarClipPlane && CVarClipPlane->GetValueOnRenderThread() == 0)
{
bShowGlobalClipPlaneWarning = true;
}
}
To these ones:
if (Scene->PlanarReflections.Num() > 0)
{
static const auto* CVarClipPlane = IConsoleManager::Get().FindTConsoleVariableDataInt(TEXT("r.AllowGlobalClipPlane"));
if (CVarClipPlane && CVarClipPlane->GetValueOnRenderThread() == 0)
{
bShowGlobalClipPlaneWarning = false;
}
}
You are basically disabling the message.
Alternative without modifying the engine (if you really have to):
As you can see from the code, the message is an FText, which means that it is localized. As a result, you can create another localization for the engine which is the same as the English one, but you change that string into an empty one.