Beispiel #1
0
        private void SetFusionReprojection(float rotation, float fusionRotation)
        {
            Matrix T      = Matrix.Transpose(Matrix.CreateTranslation(0, 0, -TranslationZ));
            Matrix Ti     = Matrix.Invert(T);
            Matrix R      = Matrix.CreateRotationY(rotation);
            Matrix space  = R * T * Context.DepthInverseIntrinsics;
            Matrix reproj = Context.DepthIntrinsics * Ti * R * T * Context.DepthInverseIntrinsics;

            ReprojectionTransform.SetValue(reproj);
            SpaceTransform.SetValue(space);
            SplitPlaneVector.SetValue(new Vector4((float)Math.Cos(SplitPlaneAngle), 0f, (float)Math.Sin(SplitPlaneAngle), 0f));
            FusionTransform.SetValue(Matrix.CreateRotationY(fusionRotation) * space);
        }
Beispiel #2
0
        private void SetExCoreReprojection(float rotation)
        {
            Matrix T      = Matrix.Transpose(Matrix.CreateTranslation(0, 0, -TranslationZ));
            Matrix Ti     = Matrix.Invert(T);
            Matrix R      = Matrix.CreateRotationY(rotation);
            Matrix space  = R * T * Context.DepthInverseIntrinsics;
            Matrix reproj = Context.DepthIntrinsics * Ti * R * T * Context.DepthInverseIntrinsics;

            ReprojectionTransform.SetValue(reproj);
            SpaceTransform.SetValue(space);
            SplitPlaneVector.SetValue(new Vector4(0f, 0f, 1f, 0f));
            FusionTransform.SetValue(Matrix.CreateRotationY(-SplitPlaneAngle + MathHelper.PiOver2) * space);
        }
Beispiel #3
0
        private void SetReprojection(float rotation)
        {
            Matrix T  = Matrix.Transpose(Matrix.CreateTranslation(0, 0, -TranslationZ));
            Matrix T2 = Matrix.Transpose(Matrix.CreateTranslation(TranslationX, TranslationY, 0));
            Matrix Ti = Matrix.Invert(T);
            Matrix R  = Matrix.CreateRotationY(rotation) * Matrix.CreateRotationZ(RotationZ) *
                        Matrix.CreateRotationX(RotationX);
            Matrix reproj = Context.DepthIntrinsics * Ti * R * T * T2 * Context.DepthInverseIntrinsics;

            ReprojectionTransform.SetValue(reproj); //->main
            Matrix space = R * T * T2 * Context.DepthInverseIntrinsics;

            SpaceTransform.SetValue(space); //->clip
        }