3D en ActionScript
4 seguidores
Buenas.
Me gustaría empezar a bichear un poco el 3D en Flash.
Lo primero que quiero hacer es poder rotar una imagen plana al menos en el eje Y al ir moviendo el ratón.
Supongo que para esto habrá una serie de fórmulas matemáticas para gestionar ese movimiento no? Alguien me puede ayudar?
Usuario desconocido
Yo cuando me hice mi engine hace un anyo lo que hice fue mirarme el codigo fuente de otros engines, y deducir la teoria. Una vez con un poco de logica me puse a buscar cosas mas concretas para entenderlo mejor. Cosas tal que esto:
http://www.cubic.org/docs/camera.htm
http://www.cubic.org/docs/backcull.htm
http://www.cubic.org/docs/3dclip.htm
Y luego si lo que quieres es que tu API se quede un poco decente, le puedes echar una vista a tutoriales de Direct3D o OpenGL, como este:
http://usuarios.lycos.es/andromeda_studios/paginas/tutoriales/tutgl004.htm
Y copiar un poco los metodos.
De todos modos, me repito, a dia de hoy, lo mejor creo que es usar un engine ya hecho, a no ser que simplemente te lo tomes como un reto intelectual como hice yo, en ese caso, google y la paciencia es tu mejor profesor.
EDIT: Este link tb te puede aclarar un poco el asunto, http://www.video-animation.com/flash3d_007.shtml
corpas
mrdoob
Vale, pues no es sencilla. Desmotivemos al chico.
jeje, no te preocupes. A ver tengo un nivel medio/alto de programación, el tema está en mi desconocimiento en términos como el que comentas de cómo programar esa cámara o esa perspectiva.
Un saludo
elsuricatorojo
Si yo lo digo porque a mi me ha pasado de ir muy motivado y salir bien escaldado de algún proyecto (por lanzarme al ruedo creyendo que era una tierna vaquilla y descubriendo que era un Miura resabiado lo que tenía delante).
Usuario desconocido
Vale, pues no es sencilla. Desmotivemos al chico.
elsuricatorojo
La galería... sencilla, sencilla, lo que se dice sencilla yo no la veo.
Si opta por utilizar un engine/framework 3D ya creado, por lo menos le va a tocar empaparse un poco de él antes de utilizarlo de forma práctica.
Si opta por hacérselo el mismo, en mi humilde opinión, el tema de la cámara va a ser lo de menos... va a tener primero que desarrollar y programar conceptos como escenario, cámara, giros, zooms y perspectiva, a no ser que encuentre alguna solución sencillota en el sentido de falsear el 3D, pero yo a priori no la veo, al menos de forma evidente.
No se que nivel tendrá corpas pero para programarlo desde cero considero que se necesita un nivel alto/muy alto.
No se, lo mismo es que yo soy muy melón y por eso se me escapa ;-)
elSuricatoVerdeMelón
Usuario desconocido
corpas
Mi idea es reproducir el efecto que han conseguido en esta galería:
http://www.recursosflash.es/2007/10/02/tilt-viewer-una-increible-galeria-en-flash/
Esa galeria es muy sencilla de reproducir. El truco es que no son las imagenes las que se mueven sino la camara. Si piensas en una camara con su propio target (punto al que mira), solo tienes que ir moviendo el target de sitio. Cuendo clicas en una imagen mueves el target al centro de esa imagen y la camara la rotas alrededor del target con su distancia oportuna.
elsuricatorojo
corpas, por lo que yo veo en el ejemplo que quieres reproducir, el plano con las fotografías efectua giros en al menos 2 ejes ("x" e "y") y no solo eso, sino que aplica perspectiva, vamos que las líneas paralelas fugan en un punto (como en una perpectiva cónica). Lo veo en principio dificil de "simular" como un falso 3D y creo que es un 3D en toda regla.
corpas
Que chula! muy buen trabajo.
Lo que le faltaría sería el giro 3d sobre la Y
caracool
hicimos una galería parecida a la que buscas ::ejemplo::
corpas
Mi idea es reproducir el efecto que han conseguido en esta galería:
http://www.recursosflash.es/2007/10/02/tilt-viewer-una-increible-galeria-en-flash/
Usuario desconocido
corpas
Lo primero que quiero hacer es poder rotar una imagen plana al menos en el eje Y al ir moviendo el ratón.
Supongo que para esto habrá una serie de fórmulas matemáticas para gestionar ese movimiento no? Alguien me puede ayudar?
Como ya han dicho, tienes 2 opciones. O usar algun engine3D ya hecho, o si te lo quieres montar tu, ten en cuenta que en flash no se pueden pintar quads correctamente texturados (poligonos de 4 vertices). El truco es pintar poligonos de 3 vertices y usar el beginBitmapFill pasandole una matriz de distorsion para simular la distorsion que necesita ese poligono. A partir de ahi, y con conocimientos de mates no deberia ser complicado hacerte tu propio engine3D para hacer lo de rotar la imagen en el eje vertical.
caracool
en blog.coconnut.com tienes ejemplos de flash y 3D con las librerías de PAPERVISION. Espero te sean de ayuda.
corpas
Muchas gracias le echaré un vistazo
tatanka
Lo he encontrado, este es el libro, solo es la portada y no ha mucha resolución pero espero te ayude.
ver imagen
tatanka
Hola corpas, has mirado la editorial ANAYA? no recuerdo exactamente como se llama el libro pero era algo así como 3D PARA FLASH, recuerdo que era muy bueno pero no lo compre porque estaba para actionsScript 1 o 2, pero igual te vale, o han sacado alguna nueva versión.
corpas
Tomo nota, le echaré un vistazo.
Gracias![/code]
elsuricatorojo
Tienes 2 opciones:
1) Ponerte las pilas pero bien con matemáticas especialmente con matrices y trigonometría y desarrollar tu propio engine 3D
2) Utilizar librerias opensource ya creadas
A no ser que seas un mago de las matemáticas yo te recomiendo la segunda opción. En este sentido, PAPERVISION se está convirtiendo en un "estandar" (aunque existen otros proyectos similares ojo!). Ejemplos, info y links aquí: https://www.domestika.org/foros/viewtopic.php?t=53014.
Por temas de rendimiento Papervisión es AS3 aunque creo recordar que algunas versiones iniciales corrian con AS2.