Otra alternativa de Multimaker

Avatar de Emiliusvgs - Emilio Vegas

 

Un archivo 3ds

 

 

Meses atrás, escribí un post sobre el multimarker con nyartoolkit. A raíz de este tutorial, me han llovido preguntas sobre cómo se inserta con objetos 3d  (obj/3ds)

Presentaré otra alternativa más intuita y usada por muchos programadores. Por cosas de simplicidad, aquí lo llamaremos: M-nyar. Hice un pequeño sondeo entre 10 personas expertas en temas de modelado en 3d y processing; y 7 de ellos usan M-nyar.

Si más preambulos aquí les va la explicación:

  • Importar librerías

import processing.core.*;
import processing.opengl.*;
import processing.video.*;
import jp.nyatla.nyar4psg.*;
import javax.media.opengl.*;
import mri.*;

  • Llamar librerías

Capture cam;
NyARMultiBoard nya;
V3dsScene vscene;
V3dsScene vscene2;

  • Usamos public void para llamar a las instancias de la clase

public void setup() {
size(640,480,OPENGL);
colorMode(RGB, 100);

  • Agregamos la cámara y los string para usar distintos marcadores y características

cam=new Capture(this,width,height,24);
String[] patts = {
«patt.hiro», «patt.e»
};

double[] widths = {
80,80
};
nya=new NyARMultiBoard(this,width,height,»camera_para.dat»,patts,widths);
print(nya.VERSION);

nya.gsThreshold=120;
nya.cfThreshold=0.4;

  • Es momento de agregar los objetos 3d

try
{

vscene = new V3dsScene (this, «ARCHIVO.3ds»);
vscene.useMaterial( true );

vscene2 = new V3dsScene (this, «ARCHIVO.3ds»);
vscene2.useMaterial( true );

}
catch( Exception e )
{
println( e );
System.exit( 0 );
}
}

  • Nuevamente usamos un public, en esta ocasión es:

public void draw() {
background(200);
if (cam.available() ) {
cam.read();
}

  • Luego le agregamos las cosas esenciales de nyartoolkit

background(255);
hint(DISABLE_DEPTH_TEST);
image(cam,0,0);
hint(ENABLE_DEPTH_TEST);

if (nya.detect(cam))
{
hint(ENABLE_DEPTH_TEST);

PGraphicsOpenGL pgl = (PGraphicsOpenGL) g;
for (int i=0; i < nya.markers.length; i++)
{
if (nya.markers[i].detected)
{
nya.markers[i].beginTransform(pgl);

  • Finalmente cerramos las llamadas de los objetos 3d

if (i == 0)
{
vscene.draw();
}

else
{
vscene2.draw();
}
nya.markers[i].endTransform();
}
}
}
}

[youtube=http://www.youtube.com/watch?v=EDsaxRf6bgE]

Enjoying this article?

Subscribe to get new posts delivered straight to your inbox. No spam, unsubscribe anytime.

No spam. Unsubscribe anytime.

You may also like

See All Posts →

29 responses to “Otra alternativa de Multimaker”

  1. Avatar de Copernico

    Genial, muy buen trabajo y bien documentado, felicitaciones.

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus

      Gracias Copernico 🙂

  2. Avatar de Ademar

    Felicidades por el artículo.

    Nuevas alternativas para la Realidad Aumentada, siempre es bienvenido.

    felicitaciones.

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus

      Gracias Ademar!!! 🙂

  3. Avatar de alex

    ok he llegado dandole vueltas hasta aqui…
    y ahora no me encuentra los patts…

    cam=new Capture(this,width,height,24);
    String[] patts = {
    “patt.hiro”, “patt.kanji”

    no puede seeer!! ajj

  4. Avatar de Rui Teixeira
    Rui Teixeira

    isn’t this library the same one from the older post?

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus

      Hey Rui! Yes is the same library but with other process.

  5. Avatar de Rui Teixeira
    Rui Teixeira

    ok. nice. i’ve been looking for nyarpsg documentation (in english) but i can’t find anything. do you know where i would be able to find it?

    also, i’m having a problem in this code line:
    (…)
    if (nya.detect(cam))
    (…)

    the camera works but nya.detect(cam) always returns false. do you know why this is happening?

    thanks 🙂

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus
  6. Avatar de alex

    Gracias!

    Al fin conseguí hacer el multimarker…

    funciona genial !

    esto es fantástico…

    lo único q no me sale.. aunque retocar el código se ve fácil…

    poner más de 3 markers .. se puede?

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus

      Claro es cuestión de modificar algunas sintaxis.

  7. Avatar de alex

    Te paso un link con mi blog…
    hay ejemplos de lo que he hecho 😉

    http://starbusker.blogspot.com/

    tambien la web… aunque solo es de 3d…

    http://www.alx3d.com

    Como veréis los modeloss tienen sobre la textura un mapa de «occlusion»… que son las ( auto sombras ) de un objeto…

    com maya se puede generar un render de una textura en lugar de un render normal de imagen, para después componerla en photoshop sobre la textura del color…
    los modelos quedan muy bien con este truquillo 😉

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus

      Me gusta tu página y he visto el ejemplo que pones donde tu hermano está practicando realidad aumentada. Si tienes fotos de algo de realidad aumentada en la que hayas aprendido aquí, me gustaría verlo.

      Saludos!

      1. Avatar de alex

        bueno lo que estoy intentando ahora es triplicar
        los muñequitos esos q se ven abajo de la foto de mi hermano ( jejej )…

        Se ven bonito.. pero si tubiera más de uno podría hacer… un juego de damas x ejemplo

        el caso, es que retoco el código
        añadiendo V3dsScene; etc…

        pero me salta un error

  8. Avatar de caprirey

    hola, tengo un problema al correr cualquier programa utilizando esta libreria no se donde tengo que guardarla o bajo que nobre si me pueden ayudar gracias

  9. Avatar de alex

    jeje estoy haciendo progresos… genial!
    ya vereis…

    lo único q al importar el objeto 3ds en processing , no viene con la animacón…

    y el objeto 3ds la tiene! por que lo vuelvo a abrir en max y está animado … que raro?

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus

      Es que no se importa las animaciones en processing. Al menos con 3ds no

  10. Avatar de chepo

    Hola, oye, tengo una gran duda… en donde pondria los comandos para que cuando presione una tecla, suceda algo y mas especifico que se mueva de posicon?

    saludos

  11. Avatar de herman gonzalez
    herman gonzalez

    Hola tengo una consulta, como se pueden rotar los elementos 3ds, yo los exporto desde 3d max como 3ds pero al momento de visualizar en processing quedan de lados

  12. Avatar de Manuel Jimenez
    Manuel Jimenez

    En primer lugar agradecer tus tutoriales, son fantásticos. Trabajocon processing en mac osx y el código ejemplo me funciona perfectamente, pero necesito crear mis propios marcadores y el programa flash web que indicas: http://flash.tarotaro.org/blog/2008/12/14/artoolkit-marker-generator-online-released/
    me crea un .pat que processing no reconoce tan bien como el patt.hiro. Sabes cuál es el problema? puedo generar un patt.?

    TE AGRADECERÍA MUCHÍSIMO TU RESPUESTA porque llevo casi una semana intentandolo

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus

      Hola Manuel disculpa que no te haya respondido tan rápido. El problema de que no se visualice tanto es posiblemente por el dibujo del marcador. Debe ser cuadrada y en el medio tener, si deseas, un distintivo.

      Saludos

  13. Avatar de Mike

    Primero que nada muchas gracias por los tutoriales y el apoyo con tu blog, gracias a tu blog, pase en una semana de nunca haber tocado un codigo, a saberme manejar(un poco pero ya me defiendo haha) en un entorno de programacion, por cierto investigando, encontre este loader de kmz/dae:
    http://wiki.enterpriselab.ch/el/doku.php?id=projects:colladaloader:colladaloader

    voy a intentar integrarlo a nyartoolkit a ver como resulta
    Muchas gracias 😀

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus

      Hola Mike que buen dato lo de el colladaloader! Es una buen solución.

      Si haces algo, no dudes en enviarmelo en mi correo quizá lo lanzo como un post con todo los créditos posibles jejeje

      Yo tb voy a investigar sobre ese tema!

      Saludos!

  14. Avatar de Jesus

    Hola Emilio, el objimport tiene su propio ejemplo, lo ejecuto y funciona OK. Ahora hice un pequeño cubito, lo deforme un poquito y lo puse en el ejemplo PERO:

    Loaded OBJ from file ‘D:DOCUMENTOSProcessingobjimportexamplesloadobjdatacubito.obj’
    129 vertices.
    0 normals.
    0 textures coordinates.
    Exception in thread «Animation Thread» java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.RangeCheck(ArrayList.java:547)
    at java.util.ArrayList.get(ArrayList.java:322)
    at objimp.ObjImpScene.draw(ObjImpScene.java:301)

    A que crees que se deba, ojo que todo está en su sitio, la exportación se hizo como indicas en tu video.

    GRACIAS DESDE YA…

    1. Avatar de Jesus

      SOLUCIONADO: Resulta que al momento de exportar desde blender hay que marcar también la opción «normals» y listo…
      BLENDER 2.57b

  15. Avatar de Jesus

    Me olvidaba, para trabajar con «animaciones intrinsecas» osea hechas con el mismo blender, cual es la mejor exportación: OBJ, COLLADE, MD2, 3DS ???

    Gracias nuevamente.

  16. Avatar de Jesus

    Hola de nuevo, como podemos hacer esto: http://www.youtube.com/watch?v=m3SJo2u7tQo&feature=player_detailpage#t=226s

    Todo en blender y exportamos como obj???

    lo alucinante es el efecto de luz…

    miren a partir del minuto 2.34
    ALUCINANTE!!!!

    1. Avatar de emilio vegas ubillus
      emilio vegas ubillus

      Hola Jesus! Que bueno que hayas resuelto tu problema! Creo que para hacer eso es la escena en 3d que ya viene con la inclusión de la luz y el efecto de la sombra. Prueba yo creo que si funcionaría 😀

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.