[[¼¹É®/»¨»ï/SD/2009/03]] *¤Þ¤º¡¢Æ°¤«¤¹¤Ë¤Ï¡£ [#m9555aef] +JMF¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë ++[[JMF 2.1.1e Software>http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/download.html]]¤è¤ê¡¢Æþ¼ê¤·¤Æ¤¯¤À¤µ¤¤¡£ +Web¥«¥á¥é¤òÀܳ¤¹¤ë ++JMF¤ËÂбþ¤·¤Æ¤¤¤ë¤â¤Î¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¤¬¡¢¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¤Ï¡¢Âç¾æÉפǤ¹¡£ +¥«¥á¥é¥µ¡¼¥Ð¤òµ¯Æ°¤¹¤ë ++¥½¡¼¥¹¥³¡¼¥É¤ÎWebcamBroadcaster¥Ç¥£¥ì¥¯¥È¥ê¤ÎWebcamBroadcaster¤ò¼Â¹Ô¤·¤Þ¤¹¡£ ++¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¥Ð¥¤¥Ê¥ê¤¬¤ª¤¤¤Æ¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢²¼µ¤Î¤è¤¦¤Ë¼Â¹Ô¤Ç¤¤Þ¤¹¡£ +++java WebcamBroadcaster +Êì´ÏPC¤ÎIP¤òÄ´¤Ù¤ë ++Android¥¨¥ß¥å¥ì¡¼¥¿¤Ï¡¢qemu¾å¤ÇÆ°¤¤¤Æ¤¤¤ë¤¿¤á¡¢¡Ölocalhost¡×¤Ë¤è¤ë¥¢¥¯¥»¥¹¤Ï½ÐÍè¤Þ¤»¤ó¡£¤½¤Î¤¿¤á¡¢Êì´ÏPC¤Ë²¿¤«¤·¤é¤ÎIP¥¢¥É¥ì¥¹¤¬É¬Íפˤʤê¤Þ¤¹¡£ +++¥×¥é¥¤¥Ù¡¼¥ÈIP¤Ç¤â¹½¤¤¤Þ¤»¤ó¡£ ++Ä´ººË¡¤Ï¡¢Windows·Ï¤Ç¤¢¤ì¤Ð¡Öipconfig¡×¡¢Mac/Linux·Ï¤Ç¤¢¤ì¤Ð¡Öifconfig¡×¤ÇÄ´¤Ù¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£ +¥½¡¼¥¹¥³¡¼¥É°ì¼°¤òEclipse¤ËÆɤ߹þ¤à ++µ»½ÑɾÏÀ¼Ò¤µ¤ó¤Î[[ÆÃÀߥڡ¼¥¸>http://gihyo.jp/magazine/SD/archive/2009/200903/support]]¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£ ++File¢ÍImport¢ÍExisting Projects into Workspace ¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£ ++¡ÖSelect root directory¡×¤Ë¡¢²òÅàÀè¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ ++¡ÖProjects¡×Íó¤Ë¡ÖNyARtoolkitAndroid¡×¤¬É½¼¨¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢ÁªÂò¤·¤Æ ¡ÖFinish¡×¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£ +¥½¡¼¥¹¥³¡¼¥É¤ÎIP¥¢¥É¥ì¥¹¤ÎÀßÄê¤òÊѹ¹¤¹¤ë ++res/values/strings.xml <string name="server_addr">192.168.86.1</string> ¤Î Éôʬ¤ò¾åµ¤ÇÄ´¤Ù¤¿¤â¤Î¤ËÊѹ¹¤·¤Þ¤¹¡£ +¥Þ¡¼¥«¡¼¤ò°õºþ¤¹¤ë ++res/raw/marker.jpg +++¤ò¡¢°õºþ¤·¤Æ¤¯¤À¤µ¤¤¡£ +¼Â¹Ô¤¹¤ë ++Eclipse¤«¤é¡¢¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£¥¨¥ß¥å¥ì¡¼¥¿¤¬µ¯Æ°¤·¤Æ¡¢¥«¥á¥é²èÁü¤¬É½¼¨¤µ¤ì¤ë¤Ï¤º¤Ç¤¹¡£ ++¾åµ¤Ç°õºþ¤·¤¿¥Þ¡¼¥«¡¼¤ò¡¢¥«¥á¥é¤Ç¼Ì¤¹¤È¡¢3D¥ª¥Ö¥¸¥§¥¯¥È(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢°Ø»Ò)¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ **ɽ¼¨¤µ¤»¤ë3D¥ª¥Ö¥¸¥§¥¯¥È¤òÊѹ¹¤¹¤ë [#c61cefeb] +assets¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡¢Æɤ߹þ¤Þ¤»¤¿¤¤3D¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ç¡¼¥¿¤ò¥³¥Ô¡¼¤·¤Æ¤¯¤À¤µ¤¤¡£ ++¥á¥¿¥»¥³¥¤¥ä·Á¼°¥Õ¥¡¥¤¥ë¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£ ++Android¤ÎÀ©¸Â¤Ë¤è¤ê¡¢1MB¤Þ¤Ç¤Î¥Õ¥¡¥¤¥ë¤·¤«Æɤ߽Ф»¤Þ¤»¤ó¡£ +¥½¡¼¥¹¥³¡¼¥É¡ÖNyARToolkitAndroidActivity#onCreate()¡× mRenderer = new ModelRenderer(false, getAssets(), "chair01.mqo", 0.04f); ++¤Î¹Ô¤ò¥³¥Ô¡¼¤·¤¿¥Õ¥¡¥¤¥ë̾¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£ +++ºÇ¸å¤ÎfloatÃͤϡ¢ÇÜΨ¤Ç¤¹¡£ **G1¤äDev Phone 1¤ÇÆ°¤«¤¹ [#sa497b75] +res/values/strings.xml <string name="camera_name">jp.android_group.artoolkit.hardware.SocketCamera</string> ¤ò¡¢ <string name="camera_name">jp.android_group.artoolkit.hardware.Dev1Camera</string> ¤ËÊѹ¹¤¹¤ë¡£ *¥½¡¼¥¹¥³¡¼¥É¤òÄɤ¤¤«¤±¤ë(¾ÜºÙÊÔ) [#l85f87e9] ºÙ¤«¤¤ÅÀ¤Ë¤Ä¤¤¤Æ¡¢¥³¡¼¥É¤ò½çÈÖ¤ËÄɤäƤ¤¤¤Þ¤¹¡£~ **NyARToolkitAndroidActivity#onCreate(Bundle)¤ò¸«¤Æ¤ß¤ë [#d44027ae] ¤³¤ì¤¬¡¢main()¥á¥½¥Ã¥É¤ËÅö¤¿¤ëÉôʬ¤Ç¤¹¡£¤³¤³¤òÆɤà¤È¡¢²¿¤ò¤¹¤ë¤Î¤«¡©¤¬¡¢¤À¤¤¤¿¤¤ÇÄ°®¤Ç¤¤Þ¤¹¡£ ***ModelRenderer¤Î¥¤¥ó¥¹¥¿¥ó¥¹²½ [#s1caab84] ModelRenderer¥¯¥é¥¹¤Ï¡¢³Æ¼ï3D¥â¥Ç¥ë¤òÆɤ߽Ф·¤Æ¡¢ÉÁ²è¤¹¤ë¤¿¤á¤Î¥¯¥é¥¹¤Ç¤¹¡£´ðËÜŪ¤Ë¤Ï¡¢AndroidÅëºÜ¤Î3D¥Á¥Ã¥×¸þ¤±¤ÎÄ´À°¤äÀßÄê¤òÆþ¤ì¹þ¤ó¤Ç¤¤¤Þ¤¹¡£¤Ç¤¹¤Î¤Ç¡¢º£¸å¡¢Androidµ¡¤¬Áý¤¨¤Æ¤¯¤ì¤Ð¡¢¤³¤ì¤ò³ÈÄ¥¤·¤¿¤ê¡¢°ã¤¦¤â¤Î¤òÍÑ°Õ¤·¤¿¤ê¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£~ // Renderer mRenderer = new ModelRenderer(false, getAssets(), "chair01.mqo", 0.04f); ºÇ½é¤Î°ú¿ô¤Ï¡¢¤³¤¦¤¤¤¦¤â¤Î¤À¤È»×¤Ã¤Æ¤¯¤À¤µ¤¤¡£¥¨¥ß¥å¥ì¡¼¥¿¤ÈDev Phone 1¤Î3D¥¢¥¯¥»¥é¥ì¡¼¥¿¥Á¥Ã¥×¤Î½é´ü²½¥Ñ¥é¥á¡¼¥¿¤ò¤¤¤í¤¤¤í¤ÈÄ´À°¤·¤¿·ë²Ì¡¢Éղ䵤줿¤â¤Î¤Ç¤¹¡£~ ~ 2¤ÄÌܤΥѥé¥á¡¼¥¿¡ÖgetAssets()¡×¤Ï¡¢¡Öassets¡×¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥Ç¡¼¥¿¤òÆɤ߹þ¤à¤¿¤á¤Ë¡¢Android¤ËÍÑ°Õ¤µ¤ì¤¿¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼¤Ç¤¹¡£zip¥Õ¥¡¥¤¥ë¤Ê¤É¡¢³°Éô¤Î¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤à¥Ç¡¼¥¿¤Ï¡¢¤³¤³¤Ë¤ª¤¤¤Æ¤ª¤¯¤Î¤¬¡¢Android»ÅÍͤΤ褦¤Ç¤¹¡£~ ~ 3¤ÄÌܰʹߤϡ¢[[ɽ¼¨¤µ¤»¤ë3D¥ª¥Ö¥¸¥§¥¯¥È¤òÊѹ¹¤¹¤ë>#c61cefeb]]¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£~ ***¥á¥Ã¥»¡¼¥¸¥Ï¥ó¥É¥é [#x71b23d6] ³¤¤¤Æ¡¢¼¡¤Î¹Ô¤Ë mRenderer.setMainHandler(mHandler); ¤È¤¤¤¦¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤¾¡¢Android¥Õ¥ì¡¼¥à¥ï¡¼¥¯¡ª¤È¤¤¤¦¤Ù¤¤â¤Î¤Î°ì¤Ä¤Ç¤¹¡£~ set¤¹¤ë¤È¤³¤í¤ÏÎɤ¤¤È¤·¤Æ¡¢¤³¤Î¥Ï¥ó¥É¥é¤òÍøÍѤ·¤Æ¤¤¤ë²Õ½ê¤ò¸«¤Æ¤ß¤ë¤È¡¢ModelRenderer#initModel(GL11)Æâ¤Ë¤¢¤ê¤Þ¤¹¡£ if (mainHandler != null) { mainHandler.sendMessage (mainHandler.obtainMessage (NyARToolkitAndroidActivity.SHOW_LOADING)); } ¥Ï¥ó¥É¥é¤ÎHandler#sendMessage()¥á¥½¥Ã¥É¤ò»È¤Ã¤Æ¡¢¡ÖNyARToolkitAndroidActivity.SHOW_LOADING¡×¤òÁ÷¤Ã¤Æ¤¤¤Þ¤¹¡£~ ¤³¤ì¤¬¡¢¤É¤³¤ËÆϤ¯¤Î¤«¤È¤¤¤¦¤È¡¢NyARToolkitAndroidActivityÆâ¤Ë¤¢¤ê¤Þ¤¹¡£ private class MainHandler extends Handler { @Override public void handleMessage(Message msg) { (ά) case SHOW_LOADING: {¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡ showDialog(DIALOG_LOADING); break; } case HIDE_LOADING: { try { dismissDialog(DIALOG_LOADING); removeDialog(DIALOG_LOADING); } catch (IllegalArgumentException e) { } break; } } } } ¤³¤ÎÃæ¤Ç¡¢¡¤Îcase¤Ë¤è¤ê¡¢¡ÖshowDialog(DIALOG_LOADING)¡×¤¬¸Æ¤Ð¤ì¤Æ¡¢Android¾å¤Ë¤ÏLoading¥À¥¤¥¢¥í¥°¤¬É½¼¨¤µ¤ì¤ë¤È¤¤¤¦Æ°ºî¤Ë¤Ê¤ê¤Þ¤¹¡£~ ~ ~ ¤Ê¤¼¡¢¤³¤ó¤Ê¤á¤ó¤É¤¯¤µ¤¤¤³¤È¤ò¤¹¤ë¤Î¤«¤È¤¤¤¦¤Î¤Ï¡¢[[Android¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë>#n04b1725]]¤Ç¡ª ***Camera¥¯¥é¥¹¤Î¼èÆÀ [#w6e40241] ³¤¤¤Æ¡¢ifʸ¤¬Ê¤ó¤Ç¤¤¤Þ¤¹¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦~ ¤¹¤ß¤Þ¤»¤ó¡¢ËÜÅö¤Ï¡¢¥ê¥Õ¥ì¥¯¥·¥ç¥ó¤Ë¤è¤ê¼èÆÀ¤¹¤ë¤è¤¦¤Ë¤·¤è¤¦¤«¤È»×¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢if¤Çʤ٤Á¤ã¤¤¤Þ¤·¤¿¡£~ Android¤Ë¤ª¤±¤ë¥ê¥Õ¥ì¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ¤Ï¡¢[[¤³¤Á¤é>http://www.noritsuna.com/archives/2008/03/android_2.html]]¤Ë¥µ¥ó¥×¥ë¥³¡¼¥É¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢»²¾È¤·¤Æ¤¤¤¿¤À¤±¤ì¤Ð¤È»×¤¤¤Þ¤¹¡£ÉáÄ̤ÎJava¤ÈÁ´¤¯°ì½ï¤Ê¤Î¤Ç¡¢ÌäÂê¤Ï¤Ê¤¤¤È»×¤¤¤Þ¤¹¤¬¡£ ***Android¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë [#n04b1725] Dev1Camera¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹²½»þ¤Ë¡¢NyARToolkitAndroidActivity¼«¿È¤òÍ¿¤¨¤Æ¤¤¤Þ¤¹¡£¤Ê¤¼¡¢¤³¤ó¤Ê¤³¤È¤ò¤ä¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© mCameraDevice = new Dev1Camera(this, mSurfaceView); ¤³¤ì¤³¤½¤¬¡¢Android¥Õ¥ì¡¼¥à¥ï¡¼¥¯¡ª¤Ê¤Î¤Ç¤¹¡£Android¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Ç¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢Android¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë³°¤Çºî¤é¤ì¤¿¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é¤Ï¡¢View¤Ê¤É¤Ø¥¢¥¯¥»¥¹¤Ç¤¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£~ ¤³¤ì¤Ë¤è¤ê¡¢ÅÅÃÓ¼÷Ì¿¤¬½ÅÍפʥե¡¥¯¥¿¡¼¤Ç¤¢¤ë¥â¥Ð¥¤¥ëµ¡´ï¤Ë¤ª¤¤¤Æ¤â¡¢¸·Ì©¤ÊÅŸ»´ÉÍý¤ò¤¹¤ë¤³¤È¤¬½ÐÍè¤ëÈ¿ÌÌ¡¢¾åµ¤ä²¼µ¤Î¤è¤¦¤Ë¡¢onCreate()Æâ¤äNyARToolkitAndroidActivity¤Î¥¤¥ó¥¹¥¿¥ó¥¹²½»þ¤Ë°ú¤ÅϤ·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¤Î¤Ç¤¹¡£(getter¤äsetter¤Ë¤è¤ëÊýË¡¤ä[[¥á¥Ã¥»¡¼¥¸¥Ï¥ó¥É¥é>#x71b23d6]]¤Ë¤è¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤ì¤ò»È¤ï¤Ê¤¤Íýͳ¤Ï¡¢[[ºÇĹÉÔÅÝ´Ø¿ô>#uece7766]]¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£)~ ¤Þ¤¿¡¢Android¤Î¥µ¥ó¥×¥ë¤Ë¤è¤¯½Ð¤Æ¤¯¤ë¡¢²¼µ¤Î¤è¤¦¤Ê¥½¡¼¥¹¥³¡¼¥É¤Ï¡¢¾åµ¤ÎÍýͳ¤ËͳÍ褷¤Æ¤¤¤ë¤È»×¤ï¤ì¤Þ¤¹¡£ mOrientationListener = new OrientationListener(this) { public void onOrientationChanged(int orientation) { mLastOrientation = orientation; } }; ¤½¤·¤Æ¡¢Àµ¹¶Ë¡¤ÊÊýË¡¤È¤·¤Æ[[¥á¥Ã¥»¡¼¥¸¥Ï¥ó¥É¥é>#x71b23d6]]¤¬¡¢¤³¤ÎAndroid¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë³°¤Çºî¤é¤ì¤¿¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤¿ÊýË¡¤Ê¤Î¤Ç¤¹¡£ ***VoicePlayer¥¯¥é¥¹¡£ [#hf623c6d] ²»À¼¥Õ¥¡¥¤¥ë¤òÍ¿¤¨¤ë¤È¡¢¡Ø3D¥ª¥Ö¥¸¥§¥¯¥È¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤È¤¤Ë¤½¤Î²»À¼¥Õ¥¡¥¤¥ë¤òή¤¹¡Ù¤³¤È¤¬¤Ç¤¤ë¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£~ »ÈÍѤ·¤¿¤¤¾ì¹ç¤Ï¡¢²¼µ¤ÎÉôʬ¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¡¢¡Öres/raw/¡×¥Ç¥£¥ì¥¯¥È¥ê¤ËºÆÀ¸¤·¤¿¤¤²»À¼¥Õ¥¡¥¤¥ë¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤¡£~ ¤Á¤Ê¤ß¤Ë¡¢»È¤¤¤É¤³¤í¤Ï¡¢¡¢¡¢Æâ½ï¤Ç¤¹¡£(;^_^A ¥¢¥»¥¢¥»¡¦¡¦¡¦ //TODO init VoicePlayer for ARToolkit. // VoicePlayer mVoiceSound = new VoicePlayer(); // mVoiceSound.initVoice(getResources().openRawResourceFd(R.raw.xxx_voice)); // arToolkit.setVoicePlayer(mVoiceSound); ***Dev Phone 1¥â¡¼¥É¤Ç¤Î²èÁü¤Î¸þ¤¤Ë¤Ä¤¤¤Æ [#va655ac7] ¤â¤·¤«¤¹¤ë¤È¡¢²èÌ̤¬·¹¤¤¤Æ¤¤¤Þ¤»¤ó¤«¡©~ ËÜÍè¤Ï¡¢¤½¤ì¤òÀ©¸æ¤¹¤ë¤¿¤á¤Ë¤Ï¡¢OrientationListener¥¯¥é¥¹¤òÍøÍѤ·¤Þ¤¹¡£~ NyARToolkitAndroidActivity#onCreate(Bundle)Æâ¤Ç¡¢ mOrientationListener = new OrientationListener(this) { public void onOrientationChanged(int orientation) { mLastOrientation = orientation; } }; ¤È¡¢¥¤¥ó¥¹¥¿¥ó¥¹²½¤·¤Æ¤¤¤Þ¤¹¡£~ ¤¬¡¢¤³¤ì¡¢»×¤Ã¤¿¤è¤¦¤ËÆ°¤¤¤Æ¤¯¤ì¤Þ¤»¤ó¡£Dev Phone 1¤ò¡¢Î©¤Æ¤Æ¤¤¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢¡Ø²£¡Ù¤ÎȽÄê¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤ê¡¢Æ°¤«¤·¤Æ¤¤¤Ê¤¤¤Î¤Ë¡¢½Ä¤«¤é²£¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤ê¤È¡¢¤¤¤Þ¤¤¤Á¡¢°ÂÄꤷ¤Þ¤»¤ó¡£~ ¤½¤Î¤¿¤á¡¢º£²ó¤Ï¡¢Æþ¤ì¤Æ¤Ï¤ª¤¤Þ¤·¤¿¤¬¡¢»È¤Ã¤Æ¤¤¤Þ¤»¤ó¡£~ ͸ú¤Ë¤¹¤ë¤Ë¤Ï¡¢Dev1Camera¥¯¥é¥¹¤Î¥¤¥ó¥Ê¡¼¥¯¥é¥¹¤Ç¤¢¤ëImageCapture#capture()Æâ¤Î //final int latchedOrientation = NyARToolkitAndroidActivity.roundOrientation(arActivity.getLastOrientation() + 90 ); ¡Êά¡Ë parameters.set("rotation", 90); //parameters.set("rotation", latchedOrientation); ¤Î¥³¥á¥ó¥È¥¢¥¦¥È¤ò¤Ï¤º¤·¤Æ¤â¤é¤¨¤ì¤Ð¡¢OK¤Ç¤¹¡£~ °ÂÄꤵ¤»¤é¤ì¤¿Êý¡¢À§È󡢤´Ï¢Íí¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£~ ***¥¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ [#fc051feb] ¾åµ¤ÎOrientationListener¤Ë¤è¤ë»ÑÀªÀ©¸æ¤Ë¤è¤ê¡¢½Ä²£¤¬ÀÚ¤êÂؤï¤Ã¤¿¥¿¥¤¥ß¥ó¥°¤Ç²èÌ̤Υµ¥¤¥º¤¬(½Ä²£Èæ)¤¬ÊѤï¤ê¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢¤³¤Î²£¥µ¥¤¥º¤Ë¤¢¤Ã¤¿ARToolkitÍѤΥ¥ã¥ê¥Ö¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¡Êres/raw/camera_para.dat¡Ë¤¬É¬Íפˤʤê¤Þ¤¹¡£~ º£²ó¤Ï¡¢ÍÑ°Õ¤·¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¤´¼«Ê¬¤ÇÍÑ°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ **ARToolkitDrawer#draw(byte[])¤ò¸«¤Æ¤ß¤ë [#b5cd23e0] ¤³¤³¤¬¡¢¤¹¤Ù¤Æ¤ÎÆ°ºî¤ò°ì¤Ä¤Ë«¤Í¤ëÉôʬ¤Ç¤¹¡£¤³¤³¤òÆɤà¤È¡¢²¿¤ò¤·¤Æ¤¤¤ë¤Î¤«¡©¤¬¤À¤¤¤¿¤¤ÇÄ°®¤Ç¤¤Þ¤¹¡£ ***OutOfMemoryError¤Ï¡¢Å¨ [#n3039f19] ¼Â¤Ï¡¢¥«¥á¥é¤«¤é»£¤ì¤ë²èÁü¤Î¥µ¥¤¥º¤¬¡¢Â礤¹¤®¤Æ¡¢¡ÖOutOfMemoryError¡×¤¬È¯À¸¤·¡¢¥¢¥×¥ê¤¬Íî¤Á¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤·¤«¤â¡¢¡ÖOutOfMemoryError¡×¤Ï¡¢¤É¤¦¤ä¤éAndroid¤Ç¤Ï¥Ï¥ó¥É¥ê¥ó¥°¤¬ÉÔ²Äǽ¤Ê¤è¤¦¤Ç¡¢¥¢¥×¥ê¤¬¶¯À©½ªÎ»¤µ¤»¤é¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£~ ¤½¤³¤Ç¡¢¥µ¥¤¥ºÄ´À°¤Î¤¿¤á¤ËÆþ¤Ã¤Æ¤¤¤ë¥³¡¼¥É¤¬¡¢²¼µ¤ÎÉôʬ¤Ç¤¹¡£~ ¡¤Ç¡¢1/4¥µ¥¤¥º¤ËÄ´À°¤¹¤ë¤È¤¤¤¦¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£~ ¤·¤«¤·¡¢¤³¤ì¤À¤È¡¢¾®¤µ¤¯¤Ê¤ê¤¹¤®¤Æ¤·¤Þ¤¦¾ì¹ç¤¬¤¢¤ë¤Î¤Ç¡¢¢¤Ç¡¢Height¤¬¡¢240¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï¡¢¸µ¤Î¥µ¥¤¥º¤Î²èÁü¤ò»È¤¦¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4;¡¦¡¦¡¦¡ Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options); if(bitmap.getHeight() < 240) {¡¦¡¦¡¦¢ bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); } º£²ó¤Ï¡¢¤³¤Î¤è¤¦¤ÊÊýË¡¤Çƨ¤²¤é¤ì¤Þ¤·¤¿¤¬¡¢¼ÂºÝ¤Ë¤Ï¡¢¥á¥â¥êÀ©¸Â¤Ï¤«¤Ê¤ê¸·¤·¤¤¤â¤Î¤Ë¤Ê¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ºÇ°¡¢¥á¥â¥ê¥¢¥í¥±¡¼¥¿¤ò¼«ºî¤¹¤ë¤Ê¤É¡¢¥á¥â¥ê¤Î»ÈÍÑÎ̤ϡ¢¸·Ì©¤Ë´ÉÍý¤¹¤ëɬÍפ¬¤¢¤ë¤è¤¦¤Ç¤¹¡£ ***Thread¤Î¶²ÉÝ [#i16a0ac7] ´ðËÜŪ¤Ë¤³¤Î¥á¥½¥Ã¥É¤Ï¡¢¥«¥á¥é¥Ç¡¼¥¿¤Î²Ã¹©¤äARToolkit¤Î½èÍý¡¢3DÉÁ²è¤Î²¼½èÍý¤Ê¤É¡¢Èó¾ï¤Ë»þ´Ö¤Î¤«¤«¤ë½Å¤¤½èÍý¤È¤Ê¤ê¤Þ¤¹¡£~ ¤½¤³¤Ç¡¢¤³¤³¤Ç¤¤¤í¤¤¤í¤È¤º¤ë¤ò¤¹¤ë¤¿¤á¤Ë¤â¡¢ Î㤨¤Ð¡¢ARToolkit½èÍý1²ó¤Ë¤Ä¤¡¢ÇطʲèÁü¤Î½ñ¤´¹¤¨¤À¤±¤Ï3²ó¤ä¤ë ¤Ê¤É¤¹¤ë¤È¡¢¡Ø°ì¸«¥¹¥à¡¼¥ºÆ°¤¤¤Æ¤¤¤ë¡Ù¤è¤¦¤Ë¸«¤ë ÉÁ²è¤Î½ñ¤´¹¤¨¤ÎºÙ¤«¤¤À©¸æ¤ò¤·¤¿¤¤¤È»×¤¤¡¢¤É¤¦¤·¤è¤¦¤«¤ÈÂÁߤ¤¤Æ¤ß¤Þ¤·¤¿¡£~ ·ëÏÀ¤«¤é¸À¤¦¤È¡¢¤Ò¤È¤Þ¤º¡¢¤¢¤¤é¤á¤Þ¤·¤¿¡£¤¹¤ß¤Þ¤»¤ó¡ª¡ª¡ª¼¡¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¹Í¤¨Ä¾¤·¤Þ¤¹¤Î¤Ç¡¢¾¯¡¹¤ªÂÔ¤Á¤¯¤À¤µ¤¤¡£<(_ _)>~ ~ ~ ¤Ç¡¢¤½¤Î¤È¤¤Î¼ºÇÔÃ̤ò¡¢²¼µ¤Ëµ¤·¤Þ¤¹¡£~ ¤Þ¤º¡¢²èÌÌÉÁ²è¤ÎÀ©¸æ¤Ç¤¹¤¬¡¢GLSurfaceView¤Ç¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£¤½¤·¤Æ¡¢GLSurfaceView¤Ë¤Ï¡¢ GLSurfaceView#onPause() ¤È¤¤¤¦¡¢²èÌÌÉÁ²è¤ò°ì»þÄä»ß¤µ¤»¤ë¥á¥½¥Ã¥É¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤ì¤òÍøÍѤ·¤è¤¦¤È¤·¤Æ¡¢¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤ë¤È¡¢¡¢¡¢ EglHelper#finish() ¤ò¸Æ¤Ó½Ð¤·¤Æ¤Þ¤·¤¿¡ªEglHelper¤¬½é´ü²½¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£~ ½èÍý¤ò·Ú¤¯¤·¤¿¤¤¤Î¤Ç¡¢¤³¤ì¤Ç¤Ï¡¢ËÜËöžÅݤʤΤǾ¤ÎÀ©¸æË¡¤òõ¤·¤¿¤È¤³¤í¡¢ GLSurfaceView#queueEvent(new Runnable()) ¤¬¤¢¤ê¤Þ¤·¤¿¡£¤³¤ì¤Ç¤¹¤È¡¢Runnable#run()¤ÇÄêµÁ¤·¤¿½èÍý¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¡¢²èÌÌÉÁ²è¤òÀ©¸æ¤Ç¤¤Þ¤¹¡£~ ¤È¤¤¤¦¤³¤È¤Ç¡¢¤³¤ì¤Ë¡ÖARToolkitDrawer#draw(byte[])¡×¤Î½èÍý¤ò¤½¤Î¤Þ¤ÞÆþ¤ì¤Æ¤ß¤¿¤È¤³¤í¡¢ dead lock¡ªorz ¤½¤·¤Æ¡¢Ä´ºº¤ò¿Ê¤á¤¿¤Î¤Ç¤¹¤¬¡¢»þ´ÖÀÚ¤ì¤È¤Ê¤ê¡¢ÂŶ¨Åª¤ËÆþ¤ì¤¿¤Î¤¬NyARToolkitAndroidActivity¥¯¥é¥¹¤Ë¤¢¤ë private void draw() { drawFlag = true; try { // The measure against over load. Thread.sleep(500); } catch (InterruptedException e) { ; } drawFlag = false; mGLSurfaceView.queueEvent(new Runnable() { @Override public void run() { while (!drawFlag) try { Thread.sleep(400); } catch (InterruptedException e) { ; } } } ); } ¤Ç¤¹¡£¤À¤ì¤«¡¢¥«¥Ã¥³Îɤ¯ºî¤êľ¤·¤Æ¤¯¤ì¤ë¤È¥¦¥ì¥·¥¤¤Ç¤¹¡£<(_ _)> *ÄûÀµ¤È¤ªÃΤ餻 [#m2784785] **RGB¤ÎʤӤˤĤ¤¤Æ [#wdeab5a6] Camera¡ßCallback¡ßBitmapÀá¤Ë¤Æ¡¢RGB¤Î»ý¤ÁÊý¤Ë´Ø¤¹¤ëµ½Ò¤¬¤¢¤ê¤Þ¤¹¤¬¡¢ ¥Ó¥Ã¥È¥Þ¥Ã¥×¤ÈOpenGL/ES¤È¤ÎRGB¤Î»ý¤ÁÊý¤Î°ã¤¤ ¤È¤¤¤¦Êý¤¬Àµ¤·¤¤¤È¤Î¡¢»ØŦ¤¬¤¢¤ê¤Þ¤·¤¿¤Î¤Ç¡¢ÄûÀµ¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£ *Android Tips [#z4777d8b] **Android³«È¯Á´ÈÌ [#a74322bd] ***¥Ñ¥Ã¥±¡¼¥¸¤ÎÀ©¸Â [#kdbbd65a] Eclipse¤ÇAndroid¥×¥í¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤È¤¤Ë»ØÄꤷ¤¿¥Ñ¥Ã¥±¡¼¥¸²¼°Ê³°¤Ë¡¢¥½¡¼¥¹¥³¡¼¥É¤òÆþ¤ì¤Æ¤â¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Þ¤»¤ó¡£~ Android¥×¥í¥¸¥§¥¯¥È¤Ç¤Ï¡¢¤³¤Î¤è¤¦¤ÊÀ©¸Â¤¬Â¿¤¤¤Î¤Ç¡¢¥Ñ¥Ã¥±¡¼¥¸¤Î̾Á°¤òÊѤ¨¤ë¤È¤¤ÏÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ***javax¤Ê¤É¤ÎJ2SE¥é¥¤¥Ö¥é¥ê [#h55b2629] J2SE´°Á´¸ß´¹¤Ç¤Ï¤Ê¤¤¤¿¤á¡¢°ìÉô¡¢Æþ¤Ã¤Æ¤¤¤Ê¤¤¥é¥¤¥Ö¥é¥ê¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£¤È¤¯¤Ë¡¢javax°Ê²¼¤¬Èù̯¤ËÆþ¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¤±¤Ã¤³¤¦¡¢¤Ä¤é¤¤¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£~ ¤·¤«¤·¡¢Æþ¤Ã¤Æ¤¤¤Ê¤¤¤«¤é¤È¸À¤Ã¤Æ¡¢javax¤ÈƱ̾¤Î¥Ñ¥Ã¥±¡¼¥¸¡Ü¥¯¥é¥¹¤ò¼«ºî¤·¤Æ¤â¡¢Æ°¤¤Þ¤»¤ó¡£Android¤Î¥³¥ó¥Ñ¥¤¥ë»þ¤Î¥Á¥§¥Ã¥¯¤Ë¤è¤ê¡¢¤½¤Î¤è¤¦¤Ê¥¯¥é¥¹¤Ï¡¢ÃƤ«¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£~ ¤½¤Î¤¿¤á¡¢¥·¥¹¥Æ¥à¥¤¥á¡¼¥¸¤«¤éÊѤ¨¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤¿¤á¡¢¥Ï¡¼¥É¥ë¤¬¹â¤¤¤Ç¤¹¡£ **xxxManager¤äxxxRegistrar¡¢xxxProvider [#n0793e4c] ¡Ö¥³¥é¥à¡§Android¤Ç¤Î¥Ç¥Ð¥¤¥¹¤Î°·¤¤¡×¤Ç¡¢½ñ¤¤¤¿¤è¤¦¤ËAndroid¤Ë¤Ï¡¢xxxListener¡ÜxxxCallback¤¬¤¢¤ê¤Þ¤¹¡£~ ¤½¤·¤Æ¡¢¼Â¤Ï¤µ¤é¤Ë¡¢¤³¤ì¤éxxxListener¡ÜxxxCallback¤ò«¤Í¤ë¡¢xxxManager¤äxxxRegistrar¡¢xxxProvider¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£~ xxxListener¡ÜxxxCallback¤Ï¡¢¤³¤ì¤é¤ËÅÐÏ¿¤µ¤ì¤Æ¡¢°ì¸µÅª¤Ë°·¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢Î㤨¤Ð¡¢ÅÅÏäâ3G¤Ë¤è¤ëÃå¿®¤«¡©IPÅÅÏäˤè¤ëÃå¿®¤«¡©¤Ê¤Éµ¤¤Ë¤¹¤ë¤³¤È¤Ê¤¯¡¢°ì¸µÅª¤Ë°·¤¨¤ë¤è¤¦¤Ë½ÐÍè¤Þ¤¹¡£~ **ºÇĹÉÔÅÝ´Ø¿ô [#uece7766] Dev1Camera¥¯¥é¥¹ ¤È¤«¡¢¥í¡¼¥«¥ë¤ÊÊÑ¿ô¤ä¤é½èÍý¤·¤Þ¤¯¤ê¤Î¥á¥½¥Ã¥É¤ä¤é¡¢¤â¤Ã¤ÈÀÚ¤êʬ¤±¤¿Êý¤¬¤¤ì¤¤¤Ê¤Î¤Ë¡ª¤È¤«¡¢»×¤¤¤Þ¤»¤ó¤«¡©»ä¤â»×¤¤¤Þ¤¹¡£(;^_^A ¥¢¥»¥¢¥»¡¦¡¦¡¦~ ¤·¤«¤·¡¢¼Â¤Ï¡¢°ÕÌ£¤¬¤¢¤Ã¤¿¤ê¤·¤Þ¤¹¡£~ ~ ¤½¤ì¤Ï¡¢Dev Phone 1 ¤ä G1 ¤Ê¤É¤ÎÈóÎϤÊCPU¤Ç¤¹¤È¡¢ ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¥³¥¹¥È¤Ç¤µ¤¨¥Ð¥«¤Ë½ÐÍè¤Ê¤¤¥³¥¹¥È ¤Ë¤Ê¤ê¤Þ¤¹¡£~ ¤È¤¯¤Ë¡¢¤³¤ÎDev1Camera¥¯¥é¥¹¤Î¤è¤¦¤Ê¥Ï¡¼¥É¥¦¥§¥¢¤ÈÏ¢·È¤¹¤ë¤è¤¦¤Ê¥¯¥é¥¹¤Ç¤¹¤È¡¢Ã×̿Ū¤È¸À¤¦¤¯¤é¤¤¤Î¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£~ ¤½¤Î¤¿¤á¡¢Android¤Î¥½¡¼¥¹¥³¡¼¥É¥ê¥Ý¥¸¥È¥ê¤Ë¤¢¤ë¥½¡¼¥¹¥³¡¼¥É¤â¡¢Â®ÅÙ¤¬É¬Íפʤâ¤Î¤Ï¡¢¤³¤Î¤è¤¦¤Ê¹½Â¤¤È¤Ê¤Ã¤Æ¤ª¤ê¡¢¤¶¤é¤Ë3000¹Ô¤òĶ¤¨¤ë¥¯¥é¥¹¤Ê¤É¤â¤¢¤ê¤Þ¤¹¡£OHA¤µ¤ó¤â¡¢Â®ÅÙ¥Á¥å¡¼¥Ë¥ó¥°¤Ë¶ìÏ«¤·¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ **¥Ï¡¼¥É¥¦¥§¥¢Á´ÈÌ [#ia13d4d7] ***¥«¥á¥é¤Î¼ïÎà [#h6162093] |StaticCamera|¥í¡¼¥«¥ë¤ËÊݸ¤µ¤ì¤¿²èÁü¤ò¥«¥á¥é²èÁü¤È¤·¤ÆÆɤ߹þ¤à| |SocketCamera|Jpeg²èÁü¤ò¡¢Socket·Ðͳ¤Ç¼èÆÀ¤¹¤ë| |Dev1Camera|G1¤äDev Phone 1¸þ¤±¼ÂÁõ| |AttachedCamera|ËÜÍèŪ¤ÊCamera²èÁü¤Î¼èÆÀ¤ÎÊýË¡¡£G1¤äDev Phone 1¤Ç¤Ï¡¢¤¦¤´¤«¤Ê¤¤orz¢ÍÍýͳ¤Ï¡¢»£¤ì¤ë²èÁü¥Õ¥©¡¼¥Þ¥Ã¥È¤¬¡¢Bitmap¥¯¥é¥¹¤Ç°·¤¨¤Ê¤¤¤¿¤á¤Ç¤¹¡£¥Ð¥°°·¤¤¤Ç¡¢¤¹¤Ç¤Ë¥ì¥Ó¥å¡¼¥¹¥Æ¡¼¥È¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¶á¤¤¤¦¤Á¤Ë»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¤Ï¤º¤Ç¤¹¡£| ***WebcamBroadcaster [#za5c5cb1] ¤Á¤Ê¤ß¤Ë¡¢[[Armadillo-500¾å¤ÎAndroid¤Ç¥«¥á¥é¥×¥ì¥Ó¥å¡¼¤¹¤ëÊýË¡>http://d.hatena.ne.jp/bs-android/20081024]]¤Ç»È¤Ã¤Æ¤¤¤ë¤â¤Î¤ÈƱ¤¸¥Õ¥©¡¼¥Þ¥Ã¥È¤Ê¤Î¤Ç¡¢Armadillo-500¾å¤ÇËÜ¥¢¥×¥ê¤ÏÆ°ºî¤µ¤»¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£ ***¥Þ¥¸¥Ã¥¯¥Ê¥ó¥Ð¡¼¡Ö1600¡×¤Ã¤Æ¤Ê¤Ë¡© [#t70e4631] SocketCamera¥¯¥é¥¹¤Ç¡¢¥«¥á¥é²èÁü¤Î¥¹¥È¥ê¡¼¥à¤òÆɤ߹þ¤à¤È¤³¤í¤Ë¤¢¤ë¡¢ if(offset+1600 > buf_size){ ¤Î¡Ö1600¡×¤Ç¤¹¤¬¡¢Ether¤Î1¥Ñ¥±¥Ã¥È¥µ¥¤¥º¤Ç¤¹¡£ **3DÁ´ÈÌ [#m5598095] **3D¾ÜºÙ [#ce09e104] Android¤Î¤¿¤á¤Î3D¤äOpenGL/ES¤òÁàºî¤¹¤ë¤¿¤á¤Ë¡¢ GLBg GLSurfaceView ModelRenderer ¤È¤¤¤¦¥¯¥é¥¹¤òÍÑ°Õ¤·¤Æ»È¤Ã¤Æ¤¤¤Þ¤¹¡£~ ¤³¤ì¤é¤Ï¡¢¤Ï¤Ã¤¤ê¸À¤Ã¤Æ¡¢Android¤ÎOpenGL/ES¤È¤ÎÀ襤¤ÎµÏ¿¤Ç¤·¤«¤¢¤ê¤Þ¤»¤ó¡£Íפ¹¤ë¤Ë¡¢3D¥Á¥Ã¥×¤ÎÀ©¸Â¤À¤Ã¤¿¤ê¡¢¤Þ¤À¡¢Ì¤¼ÂÁõ¤È¤·¤«»×¤¨¤Ê¤«¤Ã¤¿¤ê¡¢¤¿¤À¤Î¥Ð¥°¤È¤·¤«»×¤¨¤Ê¤«¤Ã¤¿¤ê¡¢¤Ê¤É¤ò¤É¤¦²óÈò¤¹¤ë¤«¤È¤¤¤¦¥Ð¥Ã¥É¥Î¥¦¥Ï¥¦¤Î¸Ç¤Þ¤ê¤Ç¤¹¡£orz~ ¤Ê¤Î¤Ç¡¢´ðËÜŪ¤Ë¤Ï¡¢¡Ø¤Ê¤Ë¤â¹Í¤¨¤º¤Ë¤½¤Î¤Þ¤Þ»È¤¨¡Ù¤È¤¤¤¦¤³¤È¤Ç¡¢²òÀâ¤Ï¾Êά¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£~ ¤³¤Î¤Ø¤ó¤Î¾ÜºÙ¤ÎÏäϡ¢3D¤äOpenGL/ES¤Ë´Ø¤·¤Æ¤Ï¡¢¥¨¥¤¥Á¥¢¥¤¤Î¹â¶¶¤µ¤ó¤Ê¤É¤ò¤ª¸Æ¤Ó¤·¤Æ¡¢¥»¥ß¥Ê¡¼¤ò³«ºÅ¤µ¤»¤Æ¤¤¤¿¤À¤³¤¦¤È»×¤¤¤Þ¤¹¤Î¤Ç¡¢¤´Î»¾µ¤¯¤À¤µ¤¤¡£ ***ARModel¥¤¥ó¥¿¥Õ¥§¡¼¥¹ [#h8e00b0e] ¤¹¤ß¤Þ¤»¤ó¡£ËÜÅö¤Ï¡¢³Æ¼ï3D¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¤³¤ì¤Ç¥é¥Ã¥×¤¹¤ë¤Ï¤º¤À¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢´Ö¤Ë¹ç¤¤¤Þ¤»¤ó¤Ç¤·¤¿¡£~ ¼¡¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¢¼ÂÁõ¤·¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ **NyARToolkit¤È¥á¥¿¥»¥³¤ÎÆɤ߽Ф·¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ [#f85c7305] ¸½ºß¡¢NyARToolkit¤ÎVer.2.0²½ ¤È Android¤ËÉÕ°¤·¤Æ¤¤¤ëfloat·Ï¤Î¥Í¥¤¥Æ¥£¥Ö¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ¹¤ë¤è¤¦¤ËÊѹ¹¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£~ ¤½¤ì¤Ë¤¢¤ï¤»¤Æ¸ø³«¤¹¤ëͽÄê¤Ç¤¹¤Î¤Ç¡¢¾¯¡¹¤ªÂÔ¤Á¤¯¤À¤µ¤¤¡£ *¤ª¤Þ¤± [#hf0515e9] **ËÜÀá¤Î1¥Ú¡¼¥¸Ìܤμ̿¿¤Î¼ê [#jac05a65] -¼ê¥¿¥ì¤È¤·¤Æ½Ð±é¤·¤Æ¤â¤é¤Ã¤¿¤Î¤Ï¡¢[[¤³¤ì>http://yoshiori.org/]]¤Ç¤¹¡£¶¨ÎÏ¡¢¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡ª -¸¶¹ÆÎÁ¤Î°ìÉô¤ò¼ê¥¿¥ìÎÁ¤È¤·¤Æ¡¢¡Ö[[Âè½½»°²ó Âè1²ó¥Á¥¥Á¥java-ja ²¹Àô>http://java-ja.yoshiori.org/index.php?Âè½½»°²ó]]¡×¤Î°é±Ñ²ñÊç¶â¤Ë´óÉÕ¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤·¤¿¡£