VR in 5.6 has a smearing no matter what settings I use

Thanks for the advice, I am trying to follow this explanation but I am unable to do it. I am not a C programmer.

https://github.com/EpicGames/UnrealEngine/commit/7102abc215e872b12afa60a5e245622d5e25e27e

Tried to cherry pick the change but I keep getting compile errors, spent half of the day trying to do it with no lock. Any chance someone can create a file up there on github that has this change in there and works when compiling for 5.6.1 ? Any devs for who this would be walk in the park ? Would be much apriciated :slight_smile:

Please share the error / log that comes up when you compile.

Thank you for your time ZyLogic

I am sure I am putting it in to the wrong place, but this is way over my head. Trying to follow the github explanation:

Move PrepareViewStateForVisibility back to after ViewExtensions’ PreRenderViewFamily_RenderThread and PreRenderView_RenderThread in FSceneRenderer::OnRenderBegin.

That code exists earlier in the script so I comment it out and try to paste it later after the calls depicted above but I cant just do that because it is dependent on some declarations in the block it lives in above. like the “Renderer“ and “SceneTexturesConfig“.

Seems like a simple thing for someone who knows how this stuff works obviously not me I am just an artist and I know a little python but not this.

Any help would be appreciated thanks.

This is because you haven’t copied over the entire changes that were submitted in that CL:

I’ve marked the lines by number in the screenshot, here’s what you need to do for each:

  1. Change UE::Tasks::FTask PrepareViewStateTask; to UE::Tasks::FTask PrepareSceneTexturesConfigTask;

  2. Change PrepareViewStateTask = UE::Tasks::Launch(UE_SOURCE_LOCATION, [SceneUpdateInputs] to PrepareSceneTexturesConfigTask = UE::Tasks::Launch(UE_SOURCE_LOCATION, [SceneUpdateInputs]

  3. Remove / comment out Renderer->PrepareViewStateForVisibility(SceneTexturesConfig);

  4. Change PrepareViewStateTask.Wait(); to PrepareSceneTexturesConfigTask.Wait();

  5. In the screenshot, you have added PrepareViewStateForVisibility; mistakenly. Replace this line with:

if (SceneUpdateInputs)
		{
			for (FSceneRenderer* Renderer : SceneUpdateInputs->Renderers)
			{
				const FSceneTexturesConfig& SceneTexturesConfig = Renderer->GetActiveSceneTexturesConfig();
				Renderer->PrepareViewStateForVisibility(SceneTexturesConfig);
			}
		}

Sorry I haven’t had time to reply for awhile.

Incredible that Fixed it. Thank you so much ZyLogic. I owe you a beer or two :slight_smile: . The smearing effect is gone when compiling the two branches bellow.

UnrealEngine-5.6.0-release

UnrealEngine-5.6.1-release

I also had to compile the Convai plugin for these specifically for my project but thankfully they provide the source code for their stuff and if you put the SDK in to the unreal project. Make it C++ project and compile it against the versions listed above it works.

One thing I wasn’t able to figure out is the DLSS plugin, when I compile my own branches the above the 5.6 DLSS plugin does not seem to work. I haven’t tried looking for the sdk for that I don’t know if Nvidia provides that same way convai does.

I know this is a different thread / post but if anyone has a way to cherry pick that fix please let me know.

Thank you again ZyLogic.

Good to hear it’s working on your end.

I am not familiar with this ConvAI plugin you speak of, but regarding DLSS, you should be able to download the 5.6 DLSS4 version from NVIDIA DLSS | NVIDIA Developer and follow the installation steps from there.

Hi Guys,

I was experiencing the same issues as described, and making the changes to SceneRendering.cpp worked perfectly. Several hours wasted!

I’ve pushed hotfix to a branch in my fork, if anyone would prefer to just grab the file or fork from there for your own projects.

https://github.com/CraigMason/UnrealEngine/tree/5.6-stasis

The specific commit is here:

https://github.com/CraigMason/UnrealEngine/commit/792d82f84e811941ecc4713ac96264d76ca5ed91

4 Likes