Пример #1
0
        /* カメラのプロジェクションMatrix(RH)を返します。
         * このMatrixはMicrosoft.DirectX.Direct3d.Device.Transform.Projectionに設定できます。
         */
        public static void toCameraFrustumRH(NyARPerspectiveProjectionMatrix i_promat, NyARIntSize i_size, double i_scale, double i_near, double i_far, ref Matrix o_d3d_projection)
        {
            NyARDoubleMatrix44 m = new NyARDoubleMatrix44();

            i_promat.makeCameraFrustumRH(i_size.w, i_size.h, i_near * i_scale, i_far * i_scale, m);
            NyARD3dUtil.mat44ToD3dMatrixT(m, ref o_d3d_projection);
            return;
        }
Пример #2
0
        /**
         * この関数は、ARToolKitスタイルのProjectionMatrixから、 CameraFrustamを計算します。
         * @param i_promat
         * @param i_size
         * スクリーンサイズを指定します。
         * @param i_scale
         * {@link #toCameraFrustumRH(NyARParam i_arparam,double i_scale,double i_near,double i_far,double[] o_gl_projection)}を参照。
         * @param i_near
         * {@link #toCameraFrustumRH(NyARParam i_arparam,double i_scale,double i_near,double i_far,double[] o_gl_projection)}を参照。
         * @param i_far
         * {@link #toCameraFrustumRH(NyARParam i_arparam,double i_scale,double i_near,double i_far,double[] o_gl_projection)}を参照。
         * @param o_gl_projection
         * {@link #toCameraFrustumRH(NyARParam i_arparam,double i_scale,double i_near,double i_far,double[] o_gl_projection)}を参照。
         */
        public static void toCameraFrustumRH(NyARPerspectiveProjectionMatrix i_promat, NyARIntSize i_size, double i_scale, double i_near, double i_far, ref Matrix4x4 o_mat)
        {
            NyARDoubleMatrix44 m = new NyARDoubleMatrix44();

            i_promat.makeCameraFrustumRH(i_size.w, i_size.h, i_near * i_scale, i_far * i_scale, m);
            o_mat.m00 = (float)m.m00;
            o_mat.m01 = (float)m.m01;
            o_mat.m02 = (float)m.m02;
            o_mat.m03 = (float)m.m03;
            o_mat.m10 = (float)m.m10;
            o_mat.m11 = (float)m.m11;
            o_mat.m12 = (float)m.m12;
            o_mat.m13 = (float)m.m13;
            o_mat.m20 = (float)m.m20;
            o_mat.m21 = (float)m.m21;
            o_mat.m22 = (float)m.m22;
            o_mat.m23 = (float)m.m23;
            o_mat.m30 = (float)m.m30;
            o_mat.m31 = (float)m.m31;
            o_mat.m32 = (float)m.m32;
            o_mat.m33 = (float)m.m33;
            return;
        }