예제 #1
0
    public override void OnInspectorGUI()
    {
        OvrvisionProperty resultProp = new OvrvisionProperty();
        Ovrvision obj = target as Ovrvision;

        EditorGUILayout.LabelField( "Ovrvision Status" );
        if(obj.camStatus)
            EditorGUILayout.HelpBox( "Opened", MessageType.Info, true );
        else
            EditorGUILayout.HelpBox( "Closed", MessageType.Error, true );

        EditorGUILayout.Space();

        EditorGUILayout.LabelField("Ovrvision Configures");
        if (EditorGUILayout.Toggle ("Exposure Automatic", resultProp.exposure < 0) == false)
            resultProp.exposure = EditorGUILayout.IntSlider ("Exposure level", resultProp.exposure, 0, 5);
        else
            resultProp.exposure = OV_SET_AUTOMODE;	//Automode

        if (EditorGUILayout.Toggle ("Color temp Automatic", resultProp.whitebalance < 0) == false)
            resultProp.whitebalance = EditorGUILayout.IntSlider( "Color temperature", resultProp.whitebalance, 2800, 6500 );
        else
            resultProp.whitebalance = OV_SET_AUTOMODE;	//Automode

        resultProp.contrast = EditorGUILayout.IntSlider( "Contrast", resultProp.contrast, 0, 127 );
        resultProp.saturation = EditorGUILayout.IntSlider( "Saturation", resultProp.saturation, 0, 127 );
        resultProp.brightness = EditorGUILayout.IntSlider( "Brightness", resultProp.brightness, 0, 255 );
        resultProp.sharpness = EditorGUILayout.IntSlider( "Sharpness", resultProp.sharpness, 0, 15 );
        resultProp.gamma = EditorGUILayout.IntSlider( "Gamma", resultProp.gamma, 0, 10 );

        EditorGUILayout.Space();

        //Ovrvision ex
        obj.useOvrvisionEx = EditorGUILayout.Toggle("Use the OvrvisionEx", obj.useOvrvisionEx);

        EditorGUILayout.Space();

        //Select plane shader
        string[] planeshader = {"Normal Shader", "Chroma-key Shader"};
        obj.camViewShader = EditorGUILayout.Popup("Camera view shader", obj.camViewShader, planeshader);
        if (obj.camViewShader == 1) //Chroma-Key shader
        {
            obj.chroma_hue.x = EditorGUILayout.Slider("Max Hue", obj.chroma_hue.x, 0.0f, 1.0f);
            obj.chroma_hue.y = EditorGUILayout.Slider("Min Hue", obj.chroma_hue.y, 0.0f, 1.0f);
            obj.chroma_saturation.x = EditorGUILayout.Slider("Max Saturation", obj.chroma_saturation.x, 0.0f, 1.0f);
            obj.chroma_saturation.y = EditorGUILayout.Slider("Min Saturation", obj.chroma_saturation.y, 0.0f, 1.0f);
            obj.chroma_brightness.x = EditorGUILayout.Slider("Max Brightness", obj.chroma_brightness.x, 0.0f, 1.0f);
            obj.chroma_brightness.y = EditorGUILayout.Slider("Min Brightness ", obj.chroma_brightness.y, 0.0f, 1.0f);
        }

        EditorUtility.SetDirty( target );	//editor set
        //changed param
        if (GUI.changed) {
            obj.UpdateOvrvisionSetting(resultProp);	//apply
            EditorUtility.SetDirty( target );	//editor set
        }
    }
예제 #2
0
    //Public methods.
    //UpdateOvrvisionSetting method
    public void UpdateOvrvisionSetting(OvrvisionProperty prop)
    {
        if (!camStatus)
            return;

        ovSetExposure (prop.exposure);
        ovSetWhiteBalance (prop.whitebalance);
        ovSetContrast (prop.contrast);
        ovSetSaturation (prop.saturation);
        ovSetBrightness (prop.brightness);
        ovSetSharpness (prop.sharpness);
        ovSetGamma (prop.gamma);
    }
예제 #3
0
    //Public methods.
    //UpdateOvrvisionSetting method
    public void UpdateOvrvisionSetting(OvrvisionProperty prop)
    {
        if (!camStatus)
            return;

        //set config
        ovSetExposure (prop.exposure);
        ovSetWhiteBalance (prop.whitebalance);
        ovSetContrast (prop.contrast);
        ovSetSaturation (prop.saturation);
        ovSetBrightness (prop.brightness);
        ovSetSharpness (prop.sharpness);
        ovSetGamma (prop.gamma);
        ovSetIPDHorizontal(prop.IPDHorizontal);
        ovSetIPDVertical(prop.IPDVertical);

        //change shader
        if (camViewShader == 0)
        {   //Normal shader
            go_cameraPlaneLeft.renderer.material.shader = Shader.Find("Ovrvision/ovTexture");
            go_cameraPlaneRight.renderer.material.shader = Shader.Find("Ovrvision/ovTexture");
        }
        else if (camViewShader == 1)
        {   //Chroma-key shader
            go_cameraPlaneLeft.renderer.material.shader = Shader.Find("Ovrvision/ovChromaticMask");
            go_cameraPlaneRight.renderer.material.shader = Shader.Find("Ovrvision/ovChromaticMask");

            go_cameraPlaneLeft.renderer.material.SetFloat("_Color_maxh", chroma_hue.x);
            go_cameraPlaneLeft.renderer.material.SetFloat("_Color_minh", chroma_hue.y);
            go_cameraPlaneLeft.renderer.material.SetFloat("_Color_maxs", chroma_saturation.x);
            go_cameraPlaneLeft.renderer.material.SetFloat("_Color_mins", chroma_saturation.y);
            go_cameraPlaneLeft.renderer.material.SetFloat("_Color_maxv", chroma_brightness.x);
            go_cameraPlaneLeft.renderer.material.SetFloat("_Color_minv", chroma_brightness.y);

            go_cameraPlaneRight.renderer.material.SetFloat("_Color_maxh", chroma_hue.x);
            go_cameraPlaneRight.renderer.material.SetFloat("_Color_minh", chroma_hue.y);
            go_cameraPlaneRight.renderer.material.SetFloat("_Color_maxs", chroma_saturation.x);
            go_cameraPlaneRight.renderer.material.SetFloat("_Color_mins", chroma_saturation.y);
            go_cameraPlaneRight.renderer.material.SetFloat("_Color_maxv", chroma_brightness.x);
            go_cameraPlaneRight.renderer.material.SetFloat("_Color_minv", chroma_brightness.y);
        }
    }
예제 #4
0
    public override void OnInspectorGUI()
    {
        OvrvisionProperty resultProp = new OvrvisionProperty();
        Ovrvision obj = target as Ovrvision;

        EditorGUILayout.LabelField( "Ovrvision Status" );
        if(obj.camStatus)
            EditorGUILayout.HelpBox( "Opened", MessageType.Info, true );
        else
            EditorGUILayout.HelpBox( "Closed", MessageType.Error, true );

        EditorGUILayout.Space();

        EditorGUILayout.LabelField( "Ovrvision Setting" );
        if (EditorGUILayout.Toggle ("Exposure Automatic", resultProp.exposure < 0) == false)
            resultProp.exposure = EditorGUILayout.IntSlider ("Exposure level", resultProp.exposure, 0, 5);
        else
            resultProp.exposure = OV_SET_AUTOMODE;	//Automode

        if (EditorGUILayout.Toggle ("Color temp Automatic", resultProp.whitebalance < 0) == false)
            resultProp.whitebalance = EditorGUILayout.IntSlider( "Color temperature", resultProp.whitebalance, 2800, 6500 );
        else
            resultProp.whitebalance = OV_SET_AUTOMODE;	//Automode

        resultProp.contrast = EditorGUILayout.IntSlider( "Contrast", resultProp.contrast, 0, 127 );
        resultProp.saturation = EditorGUILayout.IntSlider( "Saturation", resultProp.saturation, 0, 127 );
        resultProp.brightness = EditorGUILayout.IntSlider( "Brightness", resultProp.brightness, 0, 255 );
        resultProp.sharpness = EditorGUILayout.IntSlider( "Sharpness", resultProp.sharpness, 0, 15 );
        resultProp.gamma = EditorGUILayout.IntSlider( "Gamma", resultProp.gamma, 0, 10 );

        EditorUtility.SetDirty( target );	//editor set
        //changed param
        if (GUI.changed) {
            obj.UpdateOvrvisionSetting(resultProp);	//apply
            EditorUtility.SetDirty( target );	//editor set
        }
    }