Deprecated: Assigning the return value of new by reference is deprecated in /home/provolo/public_html/david5.com/wp-settings.php on line 520

Deprecated: Assigning the return value of new by reference is deprecated in /home/provolo/public_html/david5.com/wp-settings.php on line 535

Deprecated: Assigning the return value of new by reference is deprecated in /home/provolo/public_html/david5.com/wp-settings.php on line 542

Deprecated: Assigning the return value of new by reference is deprecated in /home/provolo/public_html/david5.com/wp-settings.php on line 578

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/provolo/public_html/david5.com/wp-settings.php on line 18

Warning: Cannot modify header information - headers already sent by (output started at /home/provolo/public_html/david5.com/wp-settings.php:520) in /home/provolo/public_html/david5.com/wp-content/plugins/LanguageSwitcher/langswitch.php on line 727
Mis primeros experimentos en Papervision3D | David

Mis primeros experimentos en Papervision3D EnglishPortuguês

2 March 2009

Papervision3D, Noticias

Mis primeros experimentos en Papervision3D

Hace unos meses comenzé a utilizar Papervision3D. Es impresionante como el Core Team de Papervision3D está desafiando el rendimiento del Flash Player. Conociendo bien este motor de renderizado 3D, es posible hacer una infinidad de cosas, es posible crear back-ends tridimensionales dinámicos, es una innovación muy interesante. Ya he comenzado a estudiar Papervision3D.

Pongo a vuestra disposición los primeros experimentos que realizé.

  • Construcción de un triángulo.
    trianglepapervision3dEn este experimento aprendí a crear un TriangleMesh3D, el proceso es simple, cada punto en el espacio es una instancia de la clase Vertex3D, y las faces están basadas en estos puntos. La forma de mapear correctamente las faces lo explicaré más adelante.
    Ver - Código Fuente
  • Mi siguiente paso fue crear un plano uniendo dos triángulos.
    triangle2papervision3dEn Papervision3D ya existe la clase Plane, pero decidí hacerlo manualmente, con el objetivo de aprender a construir instancias de TriangleMesh3D.
    Código Fuente
  • Luego empezé a experimentar para crear juegos 3D,
    papervision3dgameutilicé la clase Particles, para crear partículas, en cada vértice del plano que va girando sobre su propio eje. Las limitaciones que posee es el framerate muy bajo, es necesario optimizar el código, pero para una primera experiencia fue muy gratificante. Para rotar y moverse, puedes utilizar el mouse y las flechas del teclado.
    Ver - Código Fuente
  • Mi siguiente experimento consistió en la construcción de superficies algebraicas, instanciando la clase TriangleMesh3D, y realizé mi primera integración de Tweener con Papervision3D en este experimento.
    algebrapv3dPara rotar y moverse, puedes utilizar el mouse y las flechas del teclado. Y presiona la tecla espacio para cambiar de objeto.
    Ver - Código Fuente.
  • El experimento citado arriba simplemente juega con la profundidad del eje z, realizé una pequeña modificación de forma a que los componenetes x e y sigan una curva senoidal, y el componente z de cada punto realize la transición.
    algebra2pv3dAlgunos objetos son feos, otros raros, pero da una idea de lo que se puede hacer con un cuidadoso estudio matemático de las superficies a crear.
    Código Fuente
  • Hay numerosas clases para crear materiales en Papervision3D, las pruebas basicas que he realizado con materiales utilizan los siguientes tipos de materiales:
    flatShadedMaterial
    gouraundMaterial
    phongMaterial
    cellMaterial
    envMapMaterial
    materialpapervision3dPara visualizar los tipos de materiales citados arriba, debes volver a compilar el código fuente debes habilitar los códigos que están como comentarios.
    Código Fuente
  • Me resultó interesante realizar una pequeña integración de sonido con materiales.
    Código Fuente
  • Este último ejemplo de cubos y esferas en Papervision3D fué muy facil de realizar, pues simplemente utiliza objetos primitivos.
    cubeandspherepv3dCódigo Fuente

Este es mi primer post sobre Papervision3D, escribiré con bastante frecuencia sobre esta temática.

, , ,

12 Responses to “Mis primeros experimentos en Papervision3D”

  1. Gabriela Fretes Says:

    Hola!!!

    Está demás decirte que tu blog está simplemente G E N I A L!!!!
    Te felicito por tan lindo e interesante emprendimiento. Estuve leyendo algo de tu trabajo…está súper bueno, aunque entienda casi nada al respecto jejeje, pero bueno eso se puede aprender :-)

    Éxitos!!

  2. Pamela Says:

    exelente trabajo, felicidades!

  3. Kenneth Espinal Says:

    Hola, saludos desde México, estan muy interesante tus artículos sobre PaperVision….. algún tutorial que recomiendes y creas que es conveniente para empezar =).

    Saludos!

  4. David Perez Says:

    Hola, muchas gracias!
    Para empezar, podrías leerte este post

    http://www.david5.com/interfaces-tridimensionales-en-los-navegadores-de-internet-papervision3d/

    y también ver los ejemplos de código del sitio http://pv3d.org/ , allí hay muchos ejemplos interesantes.

    Un saludo.

  5. Laura Says:

    Muy bueno esta tu blog David! te felicito por el emprendimiento. Creo que ambos tenemos la misma idea, jajajajaja (vos me entendes):P

  6. Rodolfo Says:

    Hola David, como estas? Mi nombre es Rodolfo Vegas, Licenciado en Computación, de Valencia - VENEZUELA. Actualmente estoy haciendo mi tesis doctoral que consiste en una aplicación web hecha en flex que lea unos archivos de extensión c3d y a partir de los datos que consiga de ese archivo hacer una simulación en 3d.

    Te explico, en algunos hospitales existen laboratorios de marcha, en esos laboratorios van pacientes con enfermedades neuro musculares, los doctores les colocan una serie de sensores alrededor de su cuerpo y la persona va caminando con esos sensores en su cuerpo, hay un sistema que recibe esa señal y va almacenandolo en los archivos que son los c3d.

    Mi sistema fuyncionaría así: un médico registrado en el sistema escoge un archivo c3d, el sistema le proporcionara unos datos y nas graficas y a parte la simulacion en 3d de una personas con los sensores caminando sobre el plano y eso es lo que yo quisiera hacer en papervision, las coordenadas y el tiempo que va una persona caminando ya los tengo pero lo que no se hacer es la simulación y se que papervision es una aplicación para hacer aplicaciones en 3d, de verdad te agradecería que me ayudaras en esto, como te dije antes soy nuevo en esto y no tengo experiencia, lo mio es java, c++, opengl pero bueno me toco hacerlo web y en flex. Gracias!!!!

  7. David Perez Says:

    @laura: Gracias Lau! Espero que los ejemplos te sean útiles. Un saludo! :)

    @Rodolfo: Tu tema de tesis está buenísimo. Si, se puede integrar flex con papervision3D, aqui encontraràs una pequeña integración de ambos:
    http://www.david5.com/rigid-spheres-with-jigliflash-and-papervision3d/
    Lògicamente, en tu trabajo la integración será mucho más compleja, pero dicho link te podría servir como punto de partida en dicha integración.
    Con tu experiencia en java, c++ y opengl avanzarás muy rápido en este nuevo entorno. Podrías usar java del lado del servidor (con blazeDS por ejemplo), y si tienes código o bibliotecas en C o C++ que son de interés para tu proyecto podrías reutilizarlos ejecutándolos directamente en la máquina virtual Flash player gracias a Alchemy. Y el aprendizaje de PV3D será sencillo si conoces opengl. Para el proceso de aprendizaje de las herramientas que necesitas, te recomiendo iniciarte en AS3, luego pasas a PV3D, luego pasas a Flex y allí lo vas integrando con tu lenguaje del lado del servidor (java por ejemplo), y finalmente Alchemy, si es necesario.

    Te recuerdo que PV3D tiene aceleración 3D por software, no por hardware como opengl, por lo tanto, podrás renderizar hasta 3000 o 5000 triángulos a la vez, dependiendo principalmente de que materiales y shaders utilizes. Siempre Alchemy y PixelBender serán tus aliados en caso de que necesitas cálculos que tengan un alto costo computacional para tu simulación, pero creo que tendrías que preparar las bibliotecas complementarias que necesites para esos casos. Si necesitas algo realmente potente te recomiendo utilizar Unity3D. Lo bueno de PV3D es la ubicuidad del Flash Player, en ese punto Unity3D falla.

    Los archivos c3d los manipularías con los paquetes COLLADA de PV3D. Sería bueno que investigues si soporta dicho formato.

    Hace un buen tiempo me tocó hacer una simulación de fluidos en PV3D,
    http://forum.papervision3d.org/viewtopic.php?f=9&t=590
    no lo terminé por falta de tiempo, pero por la experiencia que tuve en dicho experimento, podría decirte de que si es posible hacer simulaciones 3D via web con Flash/Flex, el desafío estará siempre en la optimización de tu código.

    Suerte con el proyecto! Un saludo.

  8. dress 2012 Says:

    Wow, great post! Well-written, informative and eye-opening. Will definitely be checking out your blog more in the future :)

  9. Alena Says:

    really impressed! everything is very open and very clear explanation of issues. it contains truly information. your website is very useful. thanks for sharing. looking forward to more!http://www.casaemail.com.br

  10. scottuckers Says:

    Wonderful items from you, man. I have bear in mind your stuff previous to and you’re simply extremely excellent. I actually like what you’ve bought right here, certainly like what you are stating and the way
    in which by which you assert it. You’re making it entertaining and you continue to care for to stay it sensible. I cant wait to read far more from you. This is actually a tremendous site.


Trackbacks/Pingbacks

  1. [...] Los objetos geométricos complejos se crean a partir de la combinación de triángulos, que son el ente geométrico básico en el proceso de renderizado. Aqui posteé unos ejemplos de construcción de un triángulo, y de instancias de TriangleMesh3D más complejas. [...]

Leave a Reply