private void EnableDepthOcclusion(bool enable)
 {
     ViveSR_DualCameraImageCapture.ChangeDepthCase(enable ? DepthCase.CLOSE_RANGE : DepthCase.DEFAULT);
     ViveSR_DualCameraImageCapture.EnableDepthProcess(enable);
     ViveSR_DualCameraImageCapture.EnableDepthRefinement(enable);
     ViveSR_DualCameraImageRenderer.UpdateDepthMaterial   = enable;
     ViveSR_DualCameraImageRenderer.DepthImageOcclusion   = enable;
     ViveSR_DualCameraImageRenderer.OcclusionNearDistance = 0.05f;
     occlusionEnabled = enable;
 }
示例#2
0
    public static void OpenDynamicHandCollider()
    {
        Debug.LogWarning("OpenDynamicHandCollider");
        //     if (isEnableDepth)
        //         return;
        isEnableDepth = true;
        ViveSR_DualCameraImageCapture.EnableDepthProcess(true);
        ViveSR_DualCameraDepthCollider.UpdateDepthCollider = true;
        ViveSR_DualCameraImageCapture.ChangeDepthCase(DepthCase.CLOSE_RANGE);
        ViveSR_DualCameraDepthCollider.UpdateDepthColliderRange   = true;
        ViveSR_DualCameraDepthCollider.UpdateColliderNearDistance = Near;
        ViveSR_DualCameraDepthCollider.UpdateColliderFarDistance  = Far;

        ViveSR_DualCameraImageCapture.DepthRefinement  = true;
        ViveSR_DualCameraImageCapture.DepthEdgeEnhance = true;

        _dynamicHandMesh = null;
        Debug.LogWarning("OpenDynamicHandCollider");
    }
示例#3
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        if (!Application.isPlaying)
        {
            return;
        }

        GUIStyle style = new GUIStyle();

        style.fontStyle = FontStyle.Bold;

        GUILayout.BeginHorizontal();
        GUILayout.Label("Undistort Method:");
        int curMode = (int)ViveSR_DualCameraImageRenderer.UndistortMethod;

        curMode = EditorGUILayout.Popup(curMode, undistortMethod);
        GUILayout.EndHorizontal();
        if (curMode != (int)ViveSR_DualCameraImageRenderer.UndistortMethod)
        {
            ViveSR_DualCameraImageRenderer.UndistortMethod = (UndistortionMethod)curMode;
        }

        ViveSR_DualCameraImageRenderer.UpdateDistortedMaterial   = GUILayout.Toggle(ViveSR_DualCameraImageRenderer.UpdateDistortedMaterial, "Update Camera Material");
        ViveSR_DualCameraImageRenderer.UpdateUndistortedMaterial = GUILayout.Toggle(ViveSR_DualCameraImageRenderer.UpdateUndistortedMaterial, "Update Undistorted Material");
        ViveSR_DualCameraImageRenderer.UpdateDepthMaterial       = GUILayout.Toggle(ViveSR_DualCameraImageRenderer.UpdateDepthMaterial, "Update Depth Material");
        ViveSR_DualCameraImageRenderer.CallbackMode = GUILayout.Toggle(ViveSR_DualCameraImageRenderer.CallbackMode, "Callback Mode");

        GUILayout.Label(new GUIContent("[FPS Setting]"), style);
        SetSeethroughFPS = GUILayout.Toggle(SetSeethroughFPS, "Set seethrough FPS");
        if (SetSeethroughFPS)
        {
            GUILayout.Box("Value: " + (int)Mathf.Round(SeethroughFPS));
            float NewSeethroughFPS = GUILayout.HorizontalSlider(SeethroughFPS, 1.0f, 60.0f);
            if (NewSeethroughFPS != SeethroughFPS)
            {
                SRWorkModule_API.SetSeeThroughMaxFps((int)Mathf.Round(NewSeethroughFPS));
                SeethroughFPS = NewSeethroughFPS;
            }
        }

        GUILayout.Label(new GUIContent("[Depth Setting]"), style);
        string btnStrEnableDepthProcess = ViveSR_DualCameraImageCapture.DepthProcessing ? "Disable Depth Processing" : "Enable Depth Processing";

        if (GUILayout.Button(btnStrEnableDepthProcess))
        {
            ViveSR_DualCameraImageCapture.EnableDepthProcess(!ViveSR_DualCameraImageCapture.DepthProcessing);
        }

        if (ViveSR_DualCameraImageCapture.DepthProcessing)
        {
            GUILayout.BeginHorizontal();
            GUILayout.Label("Depth Case     :");
            int curDepthCase = (int)ViveSR_DualCameraImageCapture.DepthCase;
            curDepthCase = EditorGUILayout.Popup(curDepthCase, depthCauseMode);
            GUILayout.EndHorizontal();
            if (curDepthCase != (int)ViveSR_DualCameraImageCapture.DepthCase)
            {
                ViveSR_DualCameraImageCapture.ChangeDepthCase((DepthCase)curDepthCase);
            }
            EditorGUILayout.Separator();
            ViveSR_DualCameraImageCapture.DepthRefinement  = GUILayout.Toggle(ViveSR_DualCameraImageCapture.DepthRefinement, "Enable Depth Refinement");
            ViveSR_DualCameraImageCapture.DepthEdgeEnhance = GUILayout.Toggle(ViveSR_DualCameraImageCapture.DepthEdgeEnhance, "Enable Depth Edge Enhance");

            EditorGUILayout.Separator();
            ViveSR_DualCameraImageRenderer.DepthImageOcclusion     = GUILayout.Toggle(ViveSR_DualCameraImageRenderer.DepthImageOcclusion, "Enable Depth Image Occlusion");
            ViveSR_DualCameraImageRenderer.VisualizeDepthOcclusion = GUILayout.Toggle(ViveSR_DualCameraImageRenderer.VisualizeDepthOcclusion, "Visualize Depth Occlusion");
            {
                GUILayout.Label("Near Occlusion Distance:");
                GUILayout.BeginHorizontal();
                NearOcclusionDistThres = ViveSR_DualCameraImageRenderer.OcclusionNearDistance = GUILayout.HorizontalSlider(ViveSR_DualCameraImageRenderer.OcclusionNearDistance, 0.05f, 10.0f);
                GUILayout.Label("" + NearOcclusionDistThres.ToString("0.00") + "m");
                GUILayout.EndHorizontal();

                GUILayout.Label("Far Occlusion Distance:");
                GUILayout.BeginHorizontal();
                FarOcclusionDistThres = ViveSR_DualCameraImageRenderer.OcclusionFarDistance = GUILayout.HorizontalSlider(ViveSR_DualCameraImageRenderer.OcclusionFarDistance, 0.05f, 10.0f);
                GUILayout.Label("" + FarOcclusionDistThres.ToString("0.00") + "m");
                GUILayout.EndHorizontal();
            }

            EditorGUILayout.Separator();
            ViveSR_DualCameraDepthCollider.UpdateDepthCollider = GUILayout.Toggle(ViveSR_DualCameraDepthCollider.UpdateDepthCollider, "Run Depth Mesh Collider");
            if (ViveSR_DualCameraDepthCollider.UpdateDepthCollider)
            {
                ViveSR_DualCameraDepthCollider.ColliderMeshVisibility = GUILayout.Toggle(ViveSR_DualCameraDepthCollider.ColliderMeshVisibility, "Show Depth Mesh Collider");

                ViveSR_DualCameraDepthCollider.UpdateDepthColliderHoleFilling = GUILayout.Toggle(ViveSR_DualCameraDepthCollider.UpdateDepthColliderHoleFilling, "Enable Depth Mesh Hole Filling");

                ViveSR_DualCameraDepthCollider.UpdateDepthColliderRange = GUILayout.Toggle(ViveSR_DualCameraDepthCollider.UpdateDepthColliderRange, "Adjust Depth Distance");


                if (ViveSR_DualCameraDepthCollider.UpdateDepthColliderRange)
                {
                    GUILayout.Label("Mesh Collider Distance - Near:");
                    GUILayout.BeginHorizontal();
                    NearColliderDistThres = ViveSR_DualCameraDepthCollider.UpdateColliderNearDistance = GUILayout.HorizontalSlider(ViveSR_DualCameraDepthCollider.UpdateColliderNearDistance, 0.0f, 10.0f);
                    GUILayout.Label("" + NearColliderDistThres.ToString("0.00") + "m");
                    GUILayout.EndHorizontal();

                    GUILayout.Label("Mesh Collider Distance - Far:");
                    GUILayout.BeginHorizontal();
                    FarColliderDistThres = ViveSR_DualCameraDepthCollider.UpdateColliderFarDistance = GUILayout.HorizontalSlider(ViveSR_DualCameraDepthCollider.UpdateColliderFarDistance, 0.0f, 10.0f);
                    GUILayout.Label("" + FarColliderDistThres.ToString("0.00") + "m");
                    GUILayout.EndHorizontal();
                }
            }
            GUILayout.Label(new GUIContent("[FPS Setting]"), style);
            SetDepthFPS = GUILayout.Toggle(SetDepthFPS, "Set depth FPS");
            if (SetDepthFPS)
            {
                GUILayout.Box("Value: " + (int)Mathf.Round(DepthFPS));
                float NewDepthFPS = GUILayout.HorizontalSlider(DepthFPS, 1.0f, 60.0f);
                if (NewDepthFPS != DepthFPS)
                {
                    SRWorkModule_API.SetDepthMaxFps((int)Mathf.Round(NewDepthFPS));
                    DepthFPS = NewDepthFPS;
                }
            }
        }
    }
示例#4
0
 void SetDepthCase(DepthCase DepthCase)
 {
     ViveSR_DualCameraImageCapture.ChangeDepthCase(DepthCase);
     switches_status[(int)ControlMode.DepthCase - sliders.Count].text = ViveSR_DualCameraImageCapture.DepthCase == DepthCase.DEFAULT ? "Default" : "Close Range";
 }