示例#1
0
    } // Awake

    /* Unityカメラのセットアップ */
    protected void setupCamera(Camera targetCamera, int cameraIndex)
    {
        /* プロジェクタパラメータの取得 */
        GCHandle projectorParametersArrayGCHandle = GCHandle.Alloc(projectorParametersArray, GCHandleType.Pinned);
        IntPtr   projectorParametersArrayPtr      = projectorParametersArrayGCHandle.AddrOfPinnedObject();

        LibProCamCalibration.getProjectorParameters(projectorParametersArrayPtr);

        /* Distortion Parameters */
        k[0] = projectorParametersArray[0];
        k[1] = projectorParametersArray[1];
        k[2] = projectorParametersArray[2];
        k[3] = projectorParametersArray[3];

        c = new Vector2(projectorParametersArray[4], projectorParametersArray[5]);

        /* Set Translation */
        targetCamera.transform.position = new Vector3(
            projectorParametersArray[6] / 100.0f,
            projectorParametersArray[7] / 100.0f,
            projectorParametersArray[8] / 100.0f);

        /* Set Rotation */
        targetCamera.transform.rotation = Quaternion.identity;
        targetCamera.transform.Rotate(Vector3.right, -projectorParametersArray[9]);
        targetCamera.transform.Rotate(Vector3.up, -projectorParametersArray[10]);
        targetCamera.transform.Rotate(Vector3.forward, -projectorParametersArray[11]);
        //targetCamera.transform.Rotate(Vector3.forward,  180.0f);

        print("Distortion parameters: "
              + projectorParametersArray[0] + ", "
              + projectorParametersArray[1] + ", "
              + projectorParametersArray[2] + ", "
              + projectorParametersArray[3]);

        print("Camera Offset parameters: "
              + projectorParametersArray[4] + ", " + projectorParametersArray[5]);

        print("Camera Translation parameters: "
              + projectorParametersArray[6] / 100.0f + ", "
              + projectorParametersArray[7] / 100.0f + ", "
              + projectorParametersArray[8] / 100.0f);

        print("Camera Rotation(Euler) parameters: "
              + projectorParametersArray[9] + ", " + projectorParametersArray[10] + " ," + projectorParametersArray[11]);
    } // setupCamera
示例#2
0
    void Awake()
    {
        /* libProCamCalibrationの初期化 */
        int ret = LibProCamCalibration.initialize(1);

        if (ret < 0)
        {
            print("Failed to initialize libProCamCalibration: " + ret);
            return;
        }
        else
        {
            print("libProCamCalibration has been initialized.");
        }

        /* カメラ初期化 */
        targetCamera = cameraToSetup.GetComponent <Camera>();
        setupCamera(targetCamera, 0);

        print("Unity camera has been Initialized.");
    } // Awake