diff --git a/Source/DisplayCluster/Private/Render/Devices/DisplayClusterDeviceBase.cpp b/Source/DisplayCluster/Private/Render/Devices/DisplayClusterDeviceBase.cpp
index f3aca2994954e9b6f283a9ac5dfffeea86c70962..7fef463327ef7328810dedc77e9761c4b02ba0c5 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);