From dd7d612c8c95543672ac3293e02a499eda773093 Mon Sep 17 00:00:00 2001 From: acdemiralp <demiralpali@gmail.com> Date: Mon, 4 Feb 2019 14:29:41 +0100 Subject: [PATCH] The eye choice during mono rendering mode is less hacky, and should no longer break systems other than AixCAVE. --- .../Private/Render/Devices/DisplayClusterDeviceBase.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/DisplayCluster/Private/Render/Devices/DisplayClusterDeviceBase.cpp b/Source/DisplayCluster/Private/Render/Devices/DisplayClusterDeviceBase.cpp index f3aca29..7fef463 100644 --- a/Source/DisplayCluster/Private/Render/Devices/DisplayClusterDeviceBase.cpp +++ b/Source/DisplayCluster/Private/Render/Devices/DisplayClusterDeviceBase.cpp @@ -154,7 +154,7 @@ void FDisplayClusterDeviceBase::CalculateStereoViewOffset(const enum EStereoscop const float ScaledEyeDist = EyeDist * CurrentWorldToMeters; const float EyeOffset = ScaledEyeDist / 2.f; - const float PassOffset = (StereoPassType == EStereoscopicPass::eSSP_LEFT_EYE ? -EyeOffset : EyeOffset); + const float PassOffset = ((StereoPassType == EStereoscopicPass::eSSP_LEFT_EYE || GDisplayCluster->GetPrivateClusterMgr()->GetNodeId().Contains("left_eye")) ? -EyeOffset : EyeOffset); const float PassOffsetSwap = (bEyeSwap == true ? -PassOffset : PassOffset); // offset eye position along Y (right) axis of camera @@ -163,7 +163,7 @@ void FDisplayClusterDeviceBase::CalculateStereoViewOffset(const enum EStereoscop { const FString nodeId = GDisplayCluster->GetPrivateClusterMgr()->GetNodeId(); const FQuat eyeQuat = pCamera->GetComponentQuat(); - ViewLocation += eyeQuat.RotateVector(FVector(0.0f, nodeId.Contains("LE") ? -EyeOffset : EyeOffset, 0.0f)); + ViewLocation += eyeQuat.RotateVector(FVector(0.0f, PassOffsetSwap, 0.0f)); } const int eyeIdx = (StereoPassType == EStereoscopicPass::eSSP_LEFT_EYE ? 0 : 1); -- GitLab