Han pasado seis años desde que lancé mi primer tutorial sobre realidad aumentada. Ahora les comentaré cómo hacer realidad aumentadad NFT. No nos vamos a poner sentimentales; pero siempre que hablo sobre realidad aumentada+ processing me traen buenos recuerdos 😀
La semana pasada recibí un correo de Ryo; el creador de Nyartoolkit (librería de realidad aumentada multiplataforma) comentándome sobre su nueva versión de su librería que era compatible con processing 3 (la última actualización de processing). Esta nueva actualización de Nyartoolkit tenía una información interesante: la estabilidad de su sistema para trabajar Natural Feature Tracking (NFT), es decir no es necesario utilizar marcadores a blanco y negro como el Hiro tradicional, sino que permite reconocer imágenes a color y de diferentes formas.
Tutorial: realidad aumentada NFT
Primero vamos a explicar cómo instalar realidad aumentada con processing 3.2
- Instala processing. La plataforma por excelencia en esta web -> https://processing.org/download/
- Descarga Nyartoolkit. En realidad esta librería existe para varias plataformas; pero en este caso usaremos para processing -> https://github.com/nyatla/NyARToolkit-for-Processing
- Algunos recordarán que antes era necesario descargar el quicktime y el WinVDIG para configurar el tema de video. Ahora simplemente debes asegurarte que funcione tu cámara web y que tengas (just in case) la librería de video ya instalada. Para hacer eso vamos a processing -> sketch -> importar librería -> añadir librería
- Ahora vamos a analizar nuestros archivos descargados de nyartoolkit. En realidad existen dos archivos que posiblemente sean necesario descargar https://github.com/nyatla/NyARToolkit-for-Processing/releases. En este caso podemos ver. Yo descargo estas dos porque en ambos tenemos información sobre las librerías más completas (nyar4psg y Nyartoolkit) y en el otro source code podemos ver la carpeta de archivos data completa.
- Abrimos el primer ejemplo -> examples -> simpleLite. Una vez abierto es necesario agregar las dos librerías que les comenté. Simplemente arrastramos estas librerías hacia el sketch.
- Si te arroja un error con camera_data simplemente en la carpeta data buscamos este archivo y también lo arrastramos.
- Por fin -> Darle Run para ver si reconoce la cámara, marcador HIRO (que está en la carpeta data) y la imagen cubo.
- Ahora que más! Pues a realizar el uso de NATURAL FEATURE TRACKING (NFT) Sí! Por que en realidad el tutorial es sobre este tópico 😉 En la carpeta example existe un ejemplo llamado nftfilesGEN
- Utilizamos la imagen que deseemos (y que cumpla requisitos visuales importantes) e iniciamos el proceso de registro. Hacemos el import -> luego make feature set -> export
- Luego le damos exportar y tendremos tres archivos distintos. En mi caso será peru.iset, peru.fset,peru.fset3. Estos tres elementos lo pondremos dentro de nuestro sketch.
- El sketch que vamos utilizar es el simpleNFT. Abrimos el sketch y cambiamos la linea de código 24, donde estará colocada la información de addNFTtarget («infinitycat») por nuestro archivo nombrado
- RUN! y veremos nuestro marcador y el ejemplo inicial
El código sería:
/**
NyARToolkit for proce55ing/1.0.0
(c)2008-2011 nyatla
airmail(at)ebony.plala.or.jp
ARマーカとIdマーカを同時に使う例です。
ARマーカはkanji,hiro、idマーカは0,1番のマーカを使う事ができます。
This sample handles 2 ARToolkit style markers and 2 NyId markers at same time.
The ARToolKit marker files are kanji.patt and hiro.patt. NyId marker ids are #0 and #1.
*/
import processing.video.*;
import jp.nyatla.nyar4psg.*;
Capture cam;
MultiNft nya;
void setup() {
size(640,480,P3D);
colorMode(RGB, 100);
println(MultiMarker.VERSION);
cam=new Capture(this,640,480);
nya=new MultiNft(this,width,height,»camera_para5.dat»,NyAR4PsgConfig.CONFIG_PSG);
nya.addNftTarget(«peru»,160);//id=0
cam.start();
}
void draw()
{
if (cam.available() !=true) {
return;
}
cam.read();
nya.detect(cam);
background(0);
nya.drawBackground(cam);//frustumを考慮した背景描画
if(!nya.isExist(0)){
return;
}
nya.beginTransform(0);
fill(255,0,0);
translate(-80,55,20);
box(40);
nya.endTransform();
}
hola tengo algunas dudas con el processing 3
no se si lo he configurado correctamente ya que processing 2.0.1 me corre perfectamente los ejemplos de Realidad Aumentada. quiero solicitarte una asesoría. saludos
Hola Roy!
Coméntame que tipo de problema tienes con este nuevo processing!
Slds
me sale el error: Framebuffer object are not supported by this hardware (or driver) Read https://wiki.processing/processing/w/OpenGL_Issues for help, donde me dice que una probable solucion es actualizar los drivers (cosa que ya he hecho)
lo que me parece extraño es que con processing 2 no tiene problemas.
uso una laptop vario serie S , procesador i5, con windows 10
Hola!
En la nueva versión de nyartoolkit del mes pasado existe un ejemplo que no requiere opengl para arrancar. De hecho en algunos casos el OpenGL ya no se utiliza para proyectar imágenes.
Hola amigo.
Recien empiezo con realidad aumenta y conoci gracias a tu pagia Processing 3.
Estoy siguiendo el tutorial pero llego hasta le punto 5 y alli me surge la duda, cuando dices «Simplemente arrastramos estas librerías hacia el sketch.» alli refieres a copiar las 2 librerias a la carpeta «simpleLite» ? Yo entiendo y lo hago, pero al ejecutar el programa me da el siguiente error «No library found for jp.nyatla.nyar4psg
Libraries must be installed in a folder named ‘libraries’ inside the ‘sketchbook’ folder.»
Ya proble creando la carpeta «Libraries» dentro de «simpleLite» y poniendo alli los 2 archivos jar pero sigo obteniendo el mismo error.
Como puedo solucionarlo ???
Desde ya gracias por tu respuesta.
Ya pude solucionar este problema. Ahora tengo otro
Cuando ejecuto la aplicacion se prende la camara pero se no muestra nada, se queda la pantalla de colora gris.
Luego en la parte de abajo de processing apararece este mensaje de error: «OpenGL error 1280 at bot beginDraw(): invalid enumerant NyAR4psg/3.0.4;NyARToolkit/5.0.7»
Hay alguna forma de solucionarlo ? a que se debe ? ya busque por google y no encontre nada
Estoy usando Windows 7
Prueba usando P3D en vez de OpenGL
Hola! Prueba con P3D, Opengl no está tan «actualizado»
Y donde debo usar P3D ? o que parte debo cambiar para usarlo ???
Recien empiezo en esto de realida aumentada
Debe usarlo dentro de la función size(). Revise el codigo de ejemplo que esta en este mismo post.
Saludos
Hola, muchas gracias por el tutorial.
Tengo un problema en el punto 11, donde debo poner el nombre de mi marcador, ¿que nombre debo poner???
yo puse el de la imagen que utilice para crear los archivos que luego arrastre al sketch. pero al ejecuar me tira un error que dice:
NyAR4psg/3.0.5;NyARToolkit/5.0.9
2017-03-20 16:18:46.839 java[5810:223255] Error loading /Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin/Contents/MacOS/DVCPROHDAudio: dlopen(/Library/Audio/Plug-Ins/HAL/DVCPROHDAudio.plugin/Contents/MacOS/DVCPROHDAudio, 262): no suitable image found.
…. Y continia un poco mas… acaso es algo en la ruta de los archivos??
yo trate con:
nya.addNftTarget(«data/marker_guarderia»,160);//id=0
y con:
nya.addNftTarget(«marker_guarderia»,160);//id=0
…. los otros ejemplos con los marcadores que tren los tutoriales funcionan prefecto.
gracias por a ayuda. saludos
Hola Carlos
¿Puedes subir el archivo en un drive o dropbox para chequearlo?
Gracias!
Gracias. Después de asignar varias opciones de ruta de los archivos el sketch funciono.
Aprovecho para felicitarte por este blog que recién estoy conociendo y me parece genial toda la información que compartes, seguramente te estaré preguntando algunas cosas en muchos de los posts que tienes.
Saludos