Es muy fácil deformar una maya, simplemente moviendo sus vértices (do3d.geometry.vertices). En este ejemplo los muevo con Tweener.
He puesto una esfera en cada vértice para resaltar el efecto. Uso el mismo método para mover cada vértice y cada esfera.
Podéis mover la cámara arrastrando el ratón y con la rueda
Este fin de semana , he estado pegándome con la Realidad Aumentada y al final conseguí sacar adelante un ejemplito el cual os quiero enseñar. Este post es el primero de una serie en la que iré explicando y comentando los diferentes aspectos de este tema desde la perspectiva de Flash. Espero que os guste este pequeño ejercicio.
Los dias 6, 7 y 8 de Abril de 2009 Carlos Ulloa impartirá un curso avanzado intensivo en Londes para progamadores con experiencia previa en ActionScript y Papervision3D.
Según nos comenta Carlos en Espapervision3D:
“Este es un curso que tenia ganas
de hacer desde hace tiempo, dirigido a gente que ya sabe para asi
poder meternos en cosas realmente interesantes”
Las plazas son limitadas (20 en total). Por lo que si estás pensando en ir ya sabes…
Acabo de ver la charla en diferido (Adobe connect) de Ralph Hauwert como pre-entrevista de lo que será el FITC (Flash in the Can) de Amsterdam 2009. Pero lo que más se ha comentado es sobre Papervision3D X, la futura versión de este motor 3D. Los asistentes han hecho muchas preguntas de interés general como por ejemplo, si la nueva versión utilizará las mejoras de la nueva API de flash player 10, cuáles son las mejoras de rendimiento respecto a la versión 2.0, opiniones sobre el impacto de Unity3D en el mercado, etc, etc… Todas contestadas por Ralph. Ha sido muy esclarecedor. Os podría contar muchas cosas más, pero mejor que lo veáis vosotros mismos:
Hace unos días se dió a conocer este motor de física para entornos 3D con Flash, orginalmente pensado para Papervision3D, pero que rápido la comunidad ha portado a Sandy 3D engine y Away3D.
En realidad esta librería es una traducción a ActionScript de la libería original escrita en C++.
Los que conozcan WoW engine , Bolt3D y sus limitaciones creo que verán la luz al ver los ejemplos de esta nueva librería. Por los ejemplos que he visto y las clases del proyecto, creo que será bastante sencillo su uso. Os paso unos enlances con ejemplos, casi todos son lo mismo, pero desde diferentes engines. Ahora los suyo sería que hagamos nuestras propias pruebas un poquito más originales.
Yo de momento solo he intentado llegar a ver qué rendimiento puede alcanzar con muchos elementos en pantalla. Para eso hice esta prueba en la que puedes ir agregando “cuerpos” con la tecla enter. Al pasar de 20 la cosa empieza a ir muy lenta. Pero este japo con el away3D, como se ve, le rinde muchísimo más. Habrá que hacer más pruebas
Podéis descargar el código fuente del proyecto mediante un cliente de subversion desde este link: http://jiglibflash.googlecode.com/svn/trunk/
Según afirma uno de sus autores, el proyecto acaba de empezar y todavía está en una fase muy temprana, por lo cuál todavía está lejos de quedar terminado.
Os presento la nueva lista que hemos creado. Se llama ESPapervision3D, y como su nombre indica es una lista pensada para la comunidad de habla hispana. Ya que los recursos en nuestro idioma son bastante escasos, creemos que esta lista podrá servir de mucha ayuda, y la vemos como un reto para aprender y profundizar sobre esta tecnología.
De momento no tiene tráfico, ya que está nuevecita, pero esperamos que crezca poco a poco.
Acabo de hacer una prueba con esta clase y me ha parecido de lo más útil. Hace poco hice una clase similar por no saber que existía (creo que por entonces no existía). Es una cámara que usamos en lugar de “Camera3D”, que nos da total control sobre ella, mediante movimientos de ratón (pinchar y arrastrar) y mediante el teclado.
Me parece idónea para movernos por la escena y explorarla desde todas las vistas posibles cuando estamos desarrollando con Papervision3D. Además podemos explorar en tiempo real, propiedades muy importantes como “fov”, “near plane” y “far plane” para el manejo del frustum culling (la explicación de todo esto vendrá en nuevo post), lo que nos evitará tener que cambiar y probar con numeritos “mágicos” tropecientas veces hasta que los objetos se vean como queremos.
La clase se encuentra en el mismo package de las cámaras (org.papervision3d.cameras).
Si no la encuentras hazle un “update” a tu repositorio, que lo más seguro es que tengas una versión desactualizada.
Aquí va una prueba sencilla de lo que estoy contando: Continue reading »
De momento usaremos solamente un material, el WireframeMaterial, ya que el uso de materiales se detallará debídamente en otro post.
Aunque no es una primitiva tambien usaremos la clase UCS (objects.special), que no es sino un eje de coordenadas 3D visibles formadas por líneas (core.geom.Lines3D), que nos pueden ser muy útiles en algunos casos.
También aprovecho para implementar un movimiento de cámara con tweenings, de una primitiva a otra, y una navegación mediante botones fuera de la escena de Papervision, que servirán para navegar. Los botones son de la clase “ItemButton”, de los cuáles podéis ver la referencia en este post, aunque lógicamente sirve cualquiera. Continue reading »
Como bién dice en la documentación de Papervision3D (traduzco), el BasicView es una clase que nos brinda una plantilla para configurar rápidamente un proyecto de Papervision, creando automáticamente un viewport, escena, cámara y renderer (bucle de renderización). Como BasicView es una subclase de Sprite, la podemos añadir a cualquier DisplayObject.
En resumen: te facilita la vida para proyectos sencillos, evitando instanciar y declarar unas cuantas cosas.
La clase la podéis encontrar dentro del package “view” de Papervision3D Great White.
Este es el primer post sobre la tecnología 3D con flash llamada Papervision3D. Ya que estoy empezando con ello, iré posteando referencias sobre las pruebas que haga. Hay muchos tutoriales por ahí con los que empezar, pero creo que otro punto de vista nunca viene mal, y sobretodo si está en español (la mayoría no lo son)
Nota: Este artículo parte de cero en cuanto a que no solo explica el comienzo de un proyecto con papervision, sino también a cómo usar un cliente de subversion para actualizar y/o descargar el uso de código de terceras partes, la configuración de un proyecto en Flex Builder y conceptos básicos con los que empezamos a lidiar cuando damos el salto desde Flash a otro modo de desarrollar ActionScript Continue reading »