void ChangeStereoType(StereoType stereoType) { if (/*!GlobalVariable.IsIntent && */ !IsPlayLoop) { if (PlayerDataControl.GetInstance().CurPlayingMode == PlayingURLMode.Local) { VideoFormatDictionaryDetector.GetInstance().SetVideoFormatTypeByVideoId(CurJVideoInfo.id.ToString(), (int)stereoType); } else if (PlayerDataControl.GetInstance().CurPlayingMode == PlayingURLMode.KTTV) { VideoFormatDictionaryDetector.GetInstance().SetVideoFormatTypeByVideoId (string.Format("{0}-{1}", CurJVideoInfo.vid, CurJVideoInfo.cid), (int)stereoType); } else if (PlayerDataControl.GetInstance().CurPlayingMode == PlayingURLMode.LiveUrl) { VideoFormatDictionaryDetector.GetInstance().SetVideoFormatTypeByVideoId(CurJVideoInfo.uri, (int)stereoType); } } else if (IsPlayLoop) { VideoPlayerPanel.SetVideoFormatTypeWhenPlayLoop((int)stereoType); } if (CurJVideoInfo != null) { CurJVideoInfo.stereoType = (int)stereoType; } Cinema.VideoPlayer.SetPlayMode(stereoType); ImaxPurpleControlByStereoType(stereoType); WindowStereoTypeUIReset(); }
public void TensileBtnControl(StereoType stereoType) { //if (GlobalVariable.GetSceneModel() == SceneModel.Default || GlobalVariable.GetSceneModel() == SceneModel.StarringNight) { switch (stereoType) { //case StereoType.ST2D: case StereoType.ST3D_LR: case StereoType.ST3D_TB: IsAllowEvent = true; TensileBtnImage.raycastTarget = true; TensileBtnText.color = new Color(130.0f / 255.0f, 136.0f / 255.0f, 142.0f / 255.0f, 1); TensileBtnImage.color = Color.white; break; default: IsAllowEvent = false; TensileBtnImage.raycastTarget = false; TensileBtnText.color = new Color(130.0f / 255.0f, 136.0f / 255.0f, 142.0f / 255.0f, 0.3f); TensileBtnImage.color = new Color(1, 1, 1, 0.3f); break; } } //else if (GlobalVariable.GetSceneModel() == SceneModel.IMAXTheater) //{ // IsAllowEvent = false; // TensileBtnImage.raycastTarget = false; // TensileBtnText.color = new Color(130.0f / 255.0f, 136.0f / 255.0f, 142.0f / 255.0f, 0.3f); // TensileBtnImage.color = new Color(1, 1, 1, 0.3f); //} }
void SelectPTB(MixedButton ptb, bool isSelect) { if (ptb != ProjectionTypeBtns[PTBIndex]) { ProjectionTypeBtns[PTBIndex].SetSelected(false); } else { ptb.SetSelected(true); return; } for (int i = 0; i < ProjectionTypeBtns.Length; i++) { if (ProjectionTypeBtns[i] == ptb) { PTBIndex = i; break; } } StereoType st = GetStereoType(STBIndex, PTBIndex); if (ChangeStereoTypeCallback != null) { ChangeStereoTypeCallback(st); } }
void SelectSTB(MixedButton stb, bool isSelect) { if (stb != StereoTypeBtns[STBIndex]) { StereoTypeBtns[STBIndex].SetSelected(false); } else { stb.SetSelected(true); return; } for (int i = 0; i < StereoTypeBtns.Length; i++) { if (StereoTypeBtns[i] == stb) { STBIndex = i; break; } } StereoType st = GetStereoType(STBIndex, PTBIndex); if (ChangeStereoTypeCallback != null) { ChangeStereoTypeCallback(st); } }
/// <summary> /// 根据播放视频的立体格式控制字幕Subtitle的跟随显示方式 /// 平面视频/180°视频字幕不跟随摄像机;360°视频字幕跟随摄像机 /// 需要打开回调关系,现已屏蔽此功能 /// </summary> /// <param name="stereoType"></param> void SubtitleUIControl(StereoType stereoType) { switch (stereoType) { case StereoType.ST2D: case StereoType.ST3D_LR: case StereoType.ST3D_TB: GlobalRunningFunction.Instance.Subtitle.transform.parent = VideoPlayerPanel.gameObject.transform; GlobalRunningFunction.Instance.Subtitle.transform.localPosition = new Vector3(0, 300, 0); break; case StereoType.ST180_2D: case StereoType.ST180_LR: case StereoType.ST180_TB: GlobalRunningFunction.Instance.Subtitle.transform.parent = VideoPlayerPanel.gameObject.transform; GlobalRunningFunction.Instance.Subtitle.transform.localPosition = new Vector3(0, 100, 0); break; case StereoType.ST360_2D: case StereoType.ST360_LR: case StereoType.ST360_TB: GlobalRunningFunction.Instance.Subtitle.transform.parent = GameObject.FindGameObjectWithTag("MainCamera").transform.parent; GlobalRunningFunction.Instance.Subtitle.transform.localPosition = new Vector3(0, 0.4f, 9f); break; } GlobalRunningFunction.Instance.Subtitle.transform.SetAsFirstSibling(); GlobalRunningFunction.Instance.Subtitle.transform.forward = GlobalRunningFunction.Instance.Subtitle.transform.parent.forward; GlobalRunningFunction.Instance.Subtitle.transform.localRotation = new Quaternion(0, 0, 0, 0); ChooseCinemaCnvasTrans(); }
public void Show(StereoType stereoType) { StereoTypeBtns[STBIndex].SetSelected(false); ProjectionTypeBtns[PTBIndex].SetSelected(false); switch (stereoType) { case StereoType.ST2D: STBIndex = 0; PTBIndex = 0; break; case StereoType.ST180_2D: STBIndex = 0; PTBIndex = 1; break; case StereoType.ST360_2D: STBIndex = 0; PTBIndex = 2; break; case StereoType.ST3D_LR: STBIndex = 1; PTBIndex = 0; break; case StereoType.ST180_LR: STBIndex = 1; PTBIndex = 1; break; case StereoType.ST360_LR: STBIndex = 1; PTBIndex = 2; break; case StereoType.ST3D_TB: STBIndex = 2; PTBIndex = 0; break; case StereoType.ST180_TB: STBIndex = 2; PTBIndex = 1; break; case StereoType.ST360_TB: STBIndex = 2; PTBIndex = 2; break; } StereoTypeBtns[STBIndex].SetSelected(true); ProjectionTypeBtns[PTBIndex].SetSelected(true); TensileBtnControl(stereoType); Show(); }
void TensileBtnStatusControl(StereoType stereoType) { if (!isInit) { Init(); } VideoPlayerPanel.VideoCtrlPanel.SettingsPanel.StereoTypePanel.TensileBtnControl(stereoType); }
private void SetRectsByVideoType(OVROverlay overlay, StereoType stereoType, DisplayType displayType) { Rect srcRectLeft, srcRectRight, destRectLeft, destRectRight; switch (displayType) { case DisplayType.Full: destRectLeft = destRectRight = new Rect(0, 0, 1, 1); break; case DisplayType.Half: destRectLeft = destRectRight = new Rect(0.25f, 0, 0.5f, 1); break; default: destRectLeft = overlay.destRectLeft; destRectRight = overlay.destRectRight; break; } switch (stereoType) { case StereoType.Mono: case StereoType.Stereo: srcRectLeft = srcRectRight = new Rect(0, 0, 1, 1); break; case StereoType.StereoTopBottom: if (overlay.invertTextureRects) { srcRectLeft = new Rect(0, 0.0f, 1, 0.5f); srcRectRight = new Rect(0, 0.5f, 1, 0.5f); } else { srcRectLeft = new Rect(0, 0.5f, 1, 0.5f); srcRectRight = new Rect(0, 0.0f, 1, 0.5f); } break; case StereoType.StereoLeftRight: srcRectLeft = new Rect(0, 0, 0.5f, 1); srcRectRight = new Rect(0.5f, 0, 0.5f, 1); break; default: srcRectLeft = overlay.srcRectLeft; srcRectRight = overlay.srcRectRight; break; } overlay.SetSrcDestRects(srcRectLeft, srcRectRight, destRectLeft, destRectRight); }
void ChangeStereoType(StereoType stereoType) { if (CurJVideoDscpInfo == null) { return; } CurJVideoDscpInfo.stereoType = (int)stereoType; if (ChangeStereoTypeCallback != null) { ChangeStereoTypeCallback(stereoType); } }
public static string StereoTypeToShowStr(StereoType stereoType) { string showStr; switch (stereoType) { case StereoType.ST2D: showStr = "2D"; break; case StereoType.ST3D_LR: showStr = "3DLR"; break; case StereoType.ST3D_TB: showStr = "3DTB"; break; case StereoType.ST180_2D: showStr = "180°2D"; break; case StereoType.ST180_LR: showStr = "180°LR"; break; case StereoType.ST180_TB: showStr = "180°TB"; break; case StereoType.ST360_2D: showStr = "360°2D"; break; case StereoType.ST360_LR: showStr = "360°LR"; break; case StereoType.ST360_TB: showStr = "360°TB"; break; default: showStr = "Unknow"; break; } return(showStr); }
void ChangeVideoWH(float w, float h, StereoType m_VideoType, bool isOpen) { if (m_VideoType == StereoType.ST2D || m_VideoType == StereoType.ST3D_LR || m_VideoType == StereoType.ST3D_TB) { float video_wh = 1.0f; video_wh = getScale(w, h, m_VideoType, isOpen); LogTool.Log("video_width:" + w + ",video_height:" + h + ",getScale:" + video_wh); video_wh = (VideoScreen.transform.localScale.x / VideoScreen.transform.localScale.y) / video_wh; LogTool.Log("_Offset:" + video_wh); VideoScreen.sharedMaterial.SetFloat("_Offset", video_wh); } else { LogTool.Log("_Offset:1"); VideoScreen.sharedMaterial.SetFloat("_Offset", 1); } }
string StereoTypeToWebStereoString(StereoType stereoType) { string webStereoString = string.Empty; switch (stereoType) { case StereoType.ST2D: webStereoString = "Window-2D"; break; case StereoType.ST3D_LR: webStereoString = "Window-3D-SS"; break; case StereoType.ST3D_TB: webStereoString = "Window-3D-UD"; break; case StereoType.ST360_2D: webStereoString = "360-2D"; break; case StereoType.ST360_LR: webStereoString = "360-3D-SS"; break; case StereoType.ST360_TB: webStereoString = "360-3D-UD"; break; case StereoType.ST180_2D: webStereoString = "180-2D"; break; case StereoType.ST180_LR: webStereoString = "180-3D-SS"; break; case StereoType.ST180_TB: webStereoString = "180-3D-UD"; break; } return(webStereoString); }
float getScale(float w, float h, StereoType m_VideoType, bool isOpen) { if (w != 0 && h != 0) { if (m_StereoType != StereoType.ST2D && m_StereoType != StereoType.ST3D_LR && m_StereoType != StereoType.ST3D_TB) { isOpen = false; } switch (m_VideoType) { case StereoType.ST3D_LR: if (isOpen) { return(w / h); } else { return((w / 2.0f) / h); } case StereoType.ST3D_TB: if (isOpen) { return(w / h); } else { return((2 * w) / h); } case StereoType.ST2D: return(w / h); default: return(1); } } else { return(16.0f / 9.0f); } }
void ImaxPurpleControlByStereoType(StereoType stereoType) { //ChangeSkyboxStyle(); //if (stereoType == StereoType.ST2D || stereoType == StereoType.ST3D_LR || stereoType == StereoType.ST3D_TB) //{ // VideoPlayerPanel.VideoCtrlPanel.SetLockBtnInteractable(true); // if (GlobalVariable.GetSceneModel() == SceneModel.Default || GlobalVariable.GetSceneModel() == SceneModel.StarringNight) // { // if (CinemaMaterialSetting.GetInstance().ImaxPurple.activeInHierarchy) // CinemaMaterialSetting.GetInstance().ImaxPurple.SetActive(false); // if (CinemaMaterialSetting.GetInstance().DriveSceneBox.activeInHierarchy) // CinemaMaterialSetting.GetInstance().DriveSceneBox.SetActive(false); // } // else if (GlobalVariable.GetSceneModel() == SceneModel.IMAXTheater) // { // if (!CinemaMaterialSetting.GetInstance().ImaxPurple.activeInHierarchy) // CinemaMaterialSetting.GetInstance().ImaxPurple.SetActive(true); // if (CinemaMaterialSetting.GetInstance().DriveSceneBox.activeInHierarchy) // CinemaMaterialSetting.GetInstance().DriveSceneBox.SetActive(false); // CinemaMaterialSetting.GetInstance().UnLoadRender(); // } // else if (GlobalVariable.GetSceneModel() == SceneModel.Drive) // { // VideoPlayerPanel.VideoCtrlPanel.SetLockBtnInteractable(false); // if (CinemaMaterialSetting.GetInstance().ImaxPurple.activeInHierarchy) // CinemaMaterialSetting.GetInstance().ImaxPurple.SetActive(false); // if (!CinemaMaterialSetting.GetInstance().DriveSceneBox.activeInHierarchy) // CinemaMaterialSetting.GetInstance().DriveSceneBox.SetActive(true); // CinemaMaterialSetting.GetInstance().UnLoadRender(); // } //} //else if (stereoType == StereoType.ST180_2D || stereoType == StereoType.ST180_LR || stereoType == StereoType.ST180_TB || // stereoType == StereoType.ST360_2D || stereoType == StereoType.ST360_LR || stereoType == StereoType.ST360_TB) //{ // VideoPlayerPanel.VideoCtrlPanel.SetLockBtnInteractable(false); // if (CinemaMaterialSetting.GetInstance().ImaxPurple.activeInHierarchy) // CinemaMaterialSetting.GetInstance().ImaxPurple.SetActive(false); // if (CinemaMaterialSetting.GetInstance().DriveSceneBox.activeInHierarchy) // CinemaMaterialSetting.GetInstance().DriveSceneBox.SetActive(false); //} VideoPlayerPanel.ChangePlayerUI(); }
/// <summary> /// 判断立体格式时,同时判断Setting UI上"屏幕尺寸"&"场景选择"按钮的可选性 /// </summary> /// <param name="stereoType"></param> void VideoSettingsUIControl(StereoType stereoType) { if (stereoType == StereoType.ST2D || stereoType == StereoType.ST3D_LR || stereoType == StereoType.ST3D_TB) { if (GlobalVariable.GetSceneModel() == SceneModel.Default || GlobalVariable.GetSceneModel() == SceneModel.StarringNight) { VideoPlayerPanel.VideoCtrlPanel.SettingsPanel.ScreenSizeBtnStatusControl(true); } else if (GlobalVariable.GetSceneModel() == SceneModel.IMAXTheater || GlobalVariable.GetSceneModel() == SceneModel.Drive) { VideoPlayerPanel.VideoCtrlPanel.SettingsPanel.ScreenSizeBtnStatusControl(false); } VideoPlayerPanel.VideoCtrlPanel.SettingsPanel.SceneChangeBtnStatusControl(true); } else if (stereoType == StereoType.ST180_2D || stereoType == StereoType.ST180_LR || stereoType == StereoType.ST180_TB || stereoType == StereoType.ST360_2D || stereoType == StereoType.ST360_LR || stereoType == StereoType.ST360_TB) { VideoPlayerPanel.VideoCtrlPanel.SettingsPanel.ScreenSizeBtnStatusControl(false); VideoPlayerPanel.VideoCtrlPanel.SettingsPanel.SceneChangeBtnStatusControl(false); } }
public PanoramaImage(List <string> url, StereoType stereoType) { this.url = url; this.stereoType = stereoType; }
public static void SetStereoPair(GameObject left, GameObject right, Material material, StereoType stereoType, bool isLeftFirst) { if (left == null || right == null) { Debug.Log("Stereo targets are null."); return; } // 0.Get left frame and right frame UV MeshFilter leftMesh = left.GetComponent <MeshFilter>(); MeshFilter rightMesh = right.GetComponent <MeshFilter>(); if (leftMesh != null && rightMesh != null) { Vector2[] leftUV = leftMesh.mesh.uv; Vector2[] rightUV = rightMesh.mesh.uv; // 1.Modify UV for (int i = 0; i < leftUV.Length; i++) { if (stereoType == StereoType.SIDE_BY_SIDE) { leftUV[i].x = leftUV[i].x / 2; rightUV[i].x = rightUV[i].x / 2; if (isLeftFirst) { rightUV[i].x += 0.5f; } else { leftUV[i].x += 0.5f; } } else if (stereoType == StereoType.TOP_DOWN) { leftUV[i].y = leftUV[i].y / 2; rightUV[i].y = rightUV[i].y / 2; if (!isLeftFirst) // For inverse uv, the order is inversed too. { rightUV[i].y += 0.5f; } else { leftUV[i].y += 0.5f; } } } leftMesh.mesh.uv = leftUV; rightMesh.mesh.uv = rightUV; } // 2.Assign texture left.GetComponent <MeshRenderer>().material = material; right.GetComponent <MeshRenderer>().material = material; }
/// <summary> /// Set-up shader value for stereo mode /// </summary> public void SetPlayMode(/*bool isChangePlayMode, */ StereoType stereoType) { m_StereoType = stereoType; if (stereoType == StereoType.ST180_2D || stereoType == StereoType.ST180_LR || stereoType == StereoType.ST180_TB) { //Cinema.GvrHead.trackPosition = true; QuadScreen.gameObject.SetActive(false); HemisphereScreen.gameObject.SetActive(true); SphereScreen.gameObject.SetActive(false); VideoScreen = HemisphereScreen; //RenderSettings.skybox = null; Camera.main.clearFlags = CameraClearFlags.Nothing; } else if (stereoType == StereoType.ST360_2D || stereoType == StereoType.ST360_LR || stereoType == StereoType.ST360_TB) { //Cinema.GvrHead.trackPosition = false; QuadScreen.gameObject.SetActive(false); HemisphereScreen.gameObject.SetActive(false); SphereScreen.gameObject.SetActive(true); VideoScreen = SphereScreen; //RenderSettings.skybox = null; Camera.main.clearFlags = CameraClearFlags.Nothing; } else/* (stereoType == StereoType.ST2D || stereoType == StereoType.ST3D_LR || stereoType == StereoType.ST3D_TB)*/ { SceneModel sceneModel = GlobalVariable.GetSceneModel(); bool isInteractable = false; switch (sceneModel) { case SceneModel.Default: case SceneModel.StarringNight: isInteractable = true; break; } Camera.main.clearFlags = CameraClearFlags.Skybox; if (ChangeSceneStyleCallback != null) { ChangeSceneStyleCallback(isInteractable, true); } //Cinema.GvrHead.trackPosition = true; QuadScreen.gameObject.SetActive(true); HemisphereScreen.gameObject.SetActive(false); SphereScreen.gameObject.SetActive(false); VideoScreen = QuadScreen; } if (Gvr.Internal.BaseVRDevice.IsSupported && VideoScreen.sharedMaterial != VideoUnlitForMultiViewMaterial) { VideoScreen.sharedMaterial = VideoUnlitForMultiViewMaterial; } else if (!Gvr.Internal.BaseVRDevice.IsSupported && VideoScreen.sharedMaterial != VideoMaterial) { VideoScreen.sharedMaterial = VideoMaterial; } if (VideoScreen != null && VideoScreen.sharedMaterial != null && VideoScreen.sharedMaterial.mainTexture == null && MainTexture != null) { VideoScreen.sharedMaterial.mainTexture = MainTexture; } //ChangeSceneType(false); VideoScreen.sharedMaterial.SetFloat("_StereoMode", 0); VideoScreen.sharedMaterial.DisableKeyword("_STEREOMODE_LEFTRIGHT"); VideoScreen.sharedMaterial.DisableKeyword("_STEREOMODE_TOPBOTTOM"); int i = (int)stereoType % 3; if (i == 1) { VideoScreen.sharedMaterial.EnableKeyword("_STEREOMODE_LEFTRIGHT"); VideoScreen.sharedMaterial.SetFloat("_StereoMode", 2); } else if (i == 2) { VideoScreen.sharedMaterial.EnableKeyword("_STEREOMODE_TOPBOTTOM"); VideoScreen.sharedMaterial.SetFloat("_StereoMode", 1); } if (ScreenSizeBtnStatusControlCallback != null) { ScreenSizeBtnStatusControlCallback(m_StereoType); } TensileSetStretchingPicture(true); }
public PanoramaImage(List<string> url, StereoType stereoType) { this.url = url; this.stereoType = stereoType; }