예제 #1
0
 private void DisplayRightEyeVideo(ImmersifyPlayer player)
 {
     if (player.StereoMode == StereoVideoMode.TOP_BOTTOM)
     {
         // TilingY = 0.5 (half height) and OffsetY = 0.5 => Top Half of the video.
         ApplyTextureTransformation(player, 1f, 0.5f, 0f, 0.5f);
     }
     else if (player.StereoMode == StereoVideoMode.LEFT_RIGHT)
     {
         // TilingX = 0.5 (half width) and OffsetX = 0.5 => Right Half of the video.
         ApplyTextureTransformation(player, 0.5f, 1.0f, 0.5f, 0f);
     }
 }
예제 #2
0
    private void Start()
    {
        foreach (ImmersifyMeshVideo meshVideo in _immersifyMeshVideoList)
        {
            ImmersifyPlayer player = new ImmersifyPlayer(meshVideo);
            _immersifyPlayerList.Add(player);

            if (player.StereoMode == StereoVideoMode.MONO)
            {
                DisplayMonoVideo(player);
            }
            else
            {
                // Just setup the first frame:
                // If the video is stereo, but the viewer is mono, just the left video is displayed.
                DisplayLeftEyeVideo(player);
            }
        }
    }
예제 #3
0
    private void ApplyTextureTransformation(ImmersifyPlayer player, float tilingX, float tilingY, float offsetX, float offsetY)
    {
        //Vector4 textureTrans = new Vector4(tilingX, tilingY, offsetX, offsetY);
        Vector2 textureOffset = new Vector2(offsetX, offsetY);
        Vector2 textureScale  = new Vector2(tilingX, tilingY);

        if (player.VideoIsUpsideDown == true)
        {
            //textureTrans.y *= -1f;
            textureScale.y *= -1f;
        }

        //_videoPlaneMaterial.SetVector(_textureTransID, textureTrans);

        player.VideoPlaneMaterial.SetTextureOffset(_textureIdY, textureOffset);
        player.VideoPlaneMaterial.SetTextureOffset(_textureIdU, textureOffset);
        player.VideoPlaneMaterial.SetTextureOffset(_textureIdV, textureOffset);

        player.VideoPlaneMaterial.SetTextureScale(_textureIdY, textureScale);
        player.VideoPlaneMaterial.SetTextureScale(_textureIdU, textureScale);
        player.VideoPlaneMaterial.SetTextureScale(_textureIdV, textureScale);
    }
예제 #4
0
 private void DisplayMonoVideo(ImmersifyPlayer player)
 {
     ApplyTextureTransformation(player, 1f, 1f, 0f, 0f);
 }