示例#1
0
    // Use this for initialization
    IEnumerator Start()
    {
        var     gamma = 1.0f;
        Texture src   = debugSrc;

        if (src == null)
        {
            yield return(Application.RequestUserAuthorization(UserAuthorization.WebCam));

            if (!Application.HasUserAuthorization(UserAuthorization.WebCam))
            {
                Debug.Log("Failed to obtain a web camera");
                yield break;
            }

            var webCamTex = new WebCamTexture();
            src = webCamTex;
            webCamTex.Play();
            while (src.width <= 16)
            {
                yield return(0);
            }
            Debug.Log(string.Format("Texture size : ({0}x{1})", src.width, src.height));

            bilateralGridMat.SetInt(PROP_TEXTURE_TYPE, 1);
            resultMat.SetInt(PROP_TEXTURE_TYPE, 1);
            gamma = UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear ? 2.2f : 1.0f;
        }

        webcamMat.mainTexture = src;
        Debug.Log("Gamma : " + gamma);
        bilateralGridMat.SetFloat(PROP_GAMMA, gamma);
        resultMat.SetFloat(PROP_GAMMA, gamma);

        _bg = new BilateralGrid(src, sigma, gaussianX, gaussianY, gaussianZ);
        _bg.BindCamera(camera);
        _bg.BindGridMat(bilateralGridMat);
        _bg.BindResultMat(resultMat);
        _bg.BindViewer(viewer);
        var meshGen = GetComponentInChildren <MeshGenerator>();

        meshGen.Generate();
        yield break;
    }
示例#2
0
    // Use this for initialization
    IEnumerator Start()
    {
        var gamma = 1.0f;
        Texture src = debugSrc;
        if (src == null) {
            yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
            if (!Application.HasUserAuthorization(UserAuthorization.WebCam)) {
                Debug.Log("Failed to obtain a web camera");
                yield break;
            }

            var webCamTex = new WebCamTexture();
            src = webCamTex;
            webCamTex.Play();
            while (src.width <= 16)
                yield return 0;
            Debug.Log (string.Format("Texture size : ({0}x{1})", src.width, src.height));

            bilateralGridMat.SetInt(PROP_TEXTURE_TYPE, 1);
            resultMat.SetInt(PROP_TEXTURE_TYPE, 1);
            gamma = UnityEditor.PlayerSettings.colorSpace == ColorSpace.Linear ? 2.2f : 1.0f;
        }

        webcamMat.mainTexture = src;
        Debug.Log("Gamma : " + gamma);
        bilateralGridMat.SetFloat(PROP_GAMMA , gamma);
        resultMat.SetFloat(PROP_GAMMA, gamma);

        _bg = new BilateralGrid(src, sigma, gaussianX, gaussianY, gaussianZ);
        _bg.BindCamera(camera);
        _bg.BindGridMat(bilateralGridMat);
        _bg.BindResultMat(resultMat);
        _bg.BindViewer(viewer);
        var meshGen = GetComponentInChildren<MeshGenerator>();
        meshGen.Generate();
        yield break;
    }