public bool InitializeApplication(Form1 topLevelForm, CaptureDevice i_cap_device) { topLevelForm.ClientSize = new Size(SCREEN_WIDTH, SCREEN_HEIGHT); //キャプチャを作る(QVGAでフレームレートは30) i_cap_device.SetCaptureListener(this); i_cap_device.PrepareCapture(SCREEN_WIDTH, SCREEN_HEIGHT, 30); this._cap = i_cap_device; //AR用カメラパラメタファイルをロードして設定 NyARParam ap = NyARParam.createFromARParamFile(new StreamReader(AR_CAMERA_FILE)); ap.changeScreenSize(SCREEN_WIDTH, SCREEN_HEIGHT); //マーカライブラリ(ARTKId)の構築 this._mklib = new ARTKMarkerTable(10, 16, 16, 25, 25, 4); //マーカテーブルの作成(1種類) this._mklib.addMarkerFromARPatt(new StreamReader(AR_HIRO_FILE), 0, "HIRO", 80, 80); //Realityの準備 this._reality = new NyARRealityD3d(ap, 10, 10000, 2, 10); this._reality_source = new NyARRealitySource_DShow(SCREEN_WIDTH, SCREEN_HEIGHT, null, 2, 100); //3dデバイスを準備する this._device = PrepareD3dDevice(topLevelForm); this._device.RenderState.ZBufferEnable = true; this._device.RenderState.Lighting = false; //カメラProjectionの設定 Matrix tmp = new Matrix(); this._reality.getD3dCameraFrustum(ref tmp); this._device.Transform.Projection = tmp; // ビュー変換の設定(左手座標系ビュー行列で設定する) // 0,0,0から、Z+方向を向いて、上方向がY軸 this._device.Transform.View = Matrix.LookAtLH( new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 1.0f, 0.0f)); Viewport vp = new Viewport(); vp.Y = 0; vp.Height = ap.getScreenSize().h; vp.Width = ap.getScreenSize().w; vp.MaxZ = 1.0f; //ビューポート設定 this._device.Viewport = vp; //カラーキューブの描画インスタンス this._cube = new ColorCube(this._device, 40); //背景サーフェイスを作成 this._surface = new NyARD3dSurface(this._device, SCREEN_WIDTH, SCREEN_HEIGHT); return(true); }
public Test_NyARRealityD3d_ARMarker(Form1 topLevelForm, ResourceBuilder i_resource) { this._capture = i_resource.createWmCapture(); this._capture.setOnSample(this); this._d3dmgr = i_resource.createD3dManager(topLevelForm); this._back_ground = i_resource.createBackGround(this._d3dmgr); this._d3dcube = new ColorCube(this._d3dmgr.d3d_device, 40); //ARラスタを作る(DirectShowキャプチャ仕様)。 this.m_raster = i_resource.createARRaster(); //AR用のパターンコードを読み出 //マーカライブラリ(ARTKId)の構築 this._mklib = new ARTKMarkerTable(10, 16, 16, 25, 25, 4); //マーカテーブルの作成(1種類) this._mklib.addMarker(i_resource.createNyARCode(), 0, "HIRO", 80, 80); //Realityの準備 this._reality = new NyARRealityD3d(i_resource.ar_param, 10, 10000, 1, 5); this._reality_source = new NyARRealitySource_WMCapture(SCREEN_WIDTH, SCREEN_HEIGHT, null, 2, 100); }
public Test_NyARRealityD3d_ARMarker(Form1 topLevelForm, ResourceBuilder i_resource) { this._capture = i_resource.createWmCapture(); this._capture.setOnSample(this); this._d3dmgr = i_resource.createD3dManager(topLevelForm); this._back_ground = i_resource.createBackGround(this._d3dmgr); this._d3dcube = new ColorCube(this._d3dmgr.d3d_device,40); //ARラスタを作る(DirectShowキャプチャ仕様)。 this.m_raster = i_resource.createARRaster(); //AR用のパターンコードを読み出 //マーカライブラリ(ARTKId)の構築 this._mklib = new ARTKMarkerTable(10, 16, 16, 25, 25, 4); //マーカテーブルの作成(1種類) this._mklib.addMarker(i_resource.createNyARCode(), 0, "HIRO", 80, 80); //Realityの準備 this._reality = new NyARRealityD3d(i_resource.ar_param, 10, 10000, 1, 5); this._reality_source = new NyARRealitySource_WMCapture(SCREEN_WIDTH, SCREEN_HEIGHT, null, 2, 100); }
public bool InitializeApplication(Form1 topLevelForm,CaptureDevice i_cap_device) { topLevelForm.ClientSize=new Size(SCREEN_WIDTH,SCREEN_HEIGHT); //キャプチャを作る(QVGAでフレームレートは30) i_cap_device.SetCaptureListener(this); i_cap_device.PrepareCapture(SCREEN_WIDTH, SCREEN_HEIGHT, 30); this._cap = i_cap_device; //AR用カメラパラメタファイルをロードして設定 NyARParam ap =NyARParam.createFromARParamFile(new StreamReader(AR_CAMERA_FILE)); ap.changeScreenSize(SCREEN_WIDTH, SCREEN_HEIGHT); //マーカライブラリ(ARTKId)の構築 this._mklib = new ARTKMarkerTable(10, 16, 16, 25, 25, 4); //マーカテーブルの作成(1種類) this._mklib.addMarkerFromARPatt(new StreamReader(AR_HIRO_FILE), 0, "HIRO", 80, 80); //Realityの準備 this._reality = new NyARRealityD3d(ap, 10, 10000, 2, 10); this._reality_source = new NyARRealitySource_DShow(SCREEN_WIDTH, SCREEN_HEIGHT, null, 2, 100); //3dデバイスを準備する this._device = PrepareD3dDevice(topLevelForm); this._device.RenderState.ZBufferEnable = true; this._device.RenderState.Lighting = false; //カメラProjectionの設定 Matrix tmp = new Matrix(); this._reality.getD3dCameraFrustum(ref tmp); this._device.Transform.Projection = tmp; // ビュー変換の設定(左手座標系ビュー行列で設定する) // 0,0,0から、Z+方向を向いて、上方向がY軸 this._device.Transform.View = Matrix.LookAtLH( new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(0.0f, 1.0f, 0.0f)); Viewport vp = new Viewport(); vp.Y = 0; vp.Height = ap.getScreenSize().h; vp.Width = ap.getScreenSize().w; vp.MaxZ = 1.0f; //ビューポート設定 this._device.Viewport = vp; //カラーキューブの描画インスタンス this._cube = new ColorCube(this._device, 40); //背景サーフェイスを作成 this._surface = new NyARD3dSurface(this._device, SCREEN_WIDTH, SCREEN_HEIGHT); return true; }