Meus primeiros experimentos em Papervision3D EnglishEspañol

2 March 2009

Papervision3D, Notícias

Meus primeiros experimentos em Papervision3D
Alguns meses atrás eu comecei a estudar o motor de render chamado Papervision3D. É impressionante observar como o Core Team de Papervision3D está desafiando o desempenho do Flash Player. Conhecendo bem este motor de renderização em 3D, e pode fazer um monte de coisas legais e inovadoras, você pode criar back-ends tridimensionais dinâmicos. Isso é uma inovação muito interessante. Eu já comecei a explorar Papervision3D.

Coloco a sua disposição os meus primeiros experimentos realizados.

  • Construção de um triângulo 3D.
    trianglepapervision3d
    Neste experimento, aprendi a criar um TriangleMesh3D, o processo é simples, cada ponto no espaço é uma instância da classe Vertex3D, e as faces são baseadas nestes pontos. A maneira de fazer um mapeamento correto, vou explicar-lo em outro post.
    Visualizar. Código fonte.
  • Meu próximo passo foi a criação de um plano,
    triangle2papervision3dcom a união de dois triângulos. Em Papervision3D já existe na classe primitiva que faiz planos, mas eu decidi fazê-lo manualmente, com o objetivo de aprender como construir instâncias de TriangleMesh3D.
    Visualizar. Código Fonte.
  • Depois, comecei a experimentar com criaçao de um simples, mais muito simple jogo 3D,
    papervision3dgameutilizei a clase Particles para criar partículas em cada vertice do plano, que vai girando em torno do seu eixo. As restrições que encontrei foi um framerate muito baixo, é necessário otimizar o código, mas para uma primeira experiência foi muito gratificante. Para girar e mover a cámera, você pode usar seu mouse e as setas do teclado.
    Visualizar. Código Fonte.
  • Meu próximo experimento consistiu na construção de superfícies algébricas instanciando a classe TriangleMesh3D,
    e fiz a minha primeira integração de Tweener com Papervision3D neste experimento.
    algebrapv3dPara girar e mover, você pode usar seu mouse e setas. E pressione a tecla de espaço para mudar de assunto.
    Visualizar. Código Fonte.
  • O experimento acima citado, simplesmente brinca com a profundidade do componente do eixo z das instancias Vertex3D, fiz uma pequena modificação para que os componentes x e y possam seguir um patrão sinusoidal.
    algebra2pv3dAlgums objetos são feios, algums deles bem raros, mas dá uma idéia do que pode ser feito com cuidadoso estudo matemático de superfícies.
    Visualizar. Código Fuente.

Este é o meu primeiro post sobre Papervision3D, vou escrever com frequência sobre este tema.

, , ,

10 Responses to “Meus primeiros experimentos em 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 :)


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