Resultados 1 al 20 de 20

Morfer entre mayas de diferente numero de vértices

  1. #1
    Fecha de ingreso
    Feb 2005
    Mensajes
    2,231

    Morfer entre mayas de diferente número de vertices

    Pues eso. Lo que me gustaría saber es si se puede mediante script hacer un morfer de una malla a otro de diferente número de polígonos. Es posible hacer en 3dsmax que una mano se convierta en cuchilla? Ya sabéis, en plan Terminator 2.

    Es que si se puede, mañana mismo me pongo a hacer a matanza. Así ya tengo el trío spidergay, digo man, enom y mantanza.

    Me suena que se comentó que se podía hacer, pero que la transición es muy chunga. Es factible conseguir hacerlo, o me olvido desde ya?
    Un saludo.

  2. #2
    Fecha de ingreso
    Dec 2004
    Mensajes
    866

    Morfer entre mayas de diferente número de vertices

    Pues lo de hacer Morphs entre distintas mallas con diferente número de vértices lo veo complicado, si no los programas de 3d lo traerían de serie, básicamente el Morph traslada en línea recta (siempre que no uses Morphs intermedios) el vértice x de la malla 1 a la posición del vértice x de la malla 2, es decir si tuvieses dos objetos exactamente iguales, pero la numeración de los vértices fuese distinta en cada uno, lo que te saldría del Morph sería un amasijo de polígonos bastante inútil:
    Para poder hacer un Morph entre mallas con una cantidad de vértices diferentes tendrías que ser capaz de parametrizar la forma del objeto (si no se me va la pinza sería poder sacar la forma del objeto mediante ecuaciones matemáticas, vamos como las primitivas del 3ds Max).

    Resumiendo que es difícil, difícil, alternativas que se me ocurren a bote pronto, usar mapas de desplazamiento para animar la malla, así siempre tendrías el mismo objeto base con sus huesos y demás, pero por encima podrías cambiarle la forma mediante el desplazamiento de la malla.

    Para lo del script mejor que se pase Halfvector que es el que controla de estas cosas.
    _________________________________________________
    Reloj de pulsera /\ Marine Starcraft 2 WIP /\ Motorola L6 /\ Canon Ixus II /\ La vigilante /\ Dragon WIP ________________________________________________

  3. #3
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Morfer entre mayas de diferente número de vertices

    Hola. Hace un tiempo Ballo planteó el mismo tema de hacer morphing entre objetos con distinto número de vértices y topología. En el último mensaje de ese hilo puse un par de papers con soluciones a dicho problema.

    En cualquier caso, ahora puedo aportar un poco más de información (si no recuerdo mal es una solución similar a la que se daba en uno de los papers del mensaje que escribí en ese hilo).

    Supongamos que queremos hacer un morphing entre dos objetos con distinto número de vértices (y por lo tanto, distinta topología), el objeto a y el objeto b. La cuestión sería trabajo el objeto a sobre el objeto b (llamémosle objeto ab) y viceversa (objeto ba). Luego se hace un merge del objeto a con el objeto bellas artes y otro merge entre el objeto ab y el objeto b. Justo en ese orden, de lo contrario la topología será totalmente distinta. Una imagen puede venir bien:


    En este caso se ha proyectado un cubo sobre una esfera.

    De todas formas, la calidad del resultado final va a depender de la forma y complejidad geométrica de los objetos. Hay que tener en cuenta que al hacer la proyección y el merge, en realidad estamos creando dos elementos separados. Lo ideal sería que todo fuera un mismo objeto, de esta forma los resultados serían mejores. Lo que pasa es que entonces lo más probable es que estuviéramos cambiando la topología.

    Por ejemplo, en el caso del cubo y la esfera se pueden ver ciertas fallas al hacer el morphing. Tal vez se podrían disimular poniendo Morph targets intermedios. He subido un pequeño video demostrativo para que veas de lo que hablo. Saludos.

    -- IMÁGENES ADJUNTAS --

    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: projObj.jpg 
Visitas: 692 
Tamaño: 64.7 KB 
ID: 38877  
    Archivos adjuntados Archivos adjuntados
    Última edición por HalfVector; 11-11-2006 a las 00:18

  4. #4
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Morfer entre mayas de diferente número de vertices

    Edito: lo siento, mensaje duplicado.

  5. #5
    Fecha de ingreso
    Feb 2005
    Mensajes
    2,231

    Morfer entre mayas de diferente número de vertices

    Vaya, me parece que a pesar de los fallos en la transición es una solución bastante buena. Si se suaviza media Morph targets intermedios podría salir algo interesante. Además, en animaciones rápidas no se notaria (a no ser que seamos muy freakys y pasemos frame a frame). Voy a buscar el mensaje a ver si que tal. Gracias.

    Posdata: voy a publicar otro mensaje de puntos y líneas.

  6. #6
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Morfer entre mayas de diferente número de vertices

    Tengo que pulir un poco el script que hace la proyección y en cuanto lo tenga lo pongo aquí. Saludos.

  7. #7
    Fecha de ingreso
    Dec 2004
    Mensajes
    3,387

    Morfer entre mayas de diferente número de vertices

    Ostia que bueno, esto puede tener un montón de aplicaciones, lo dejes tío.
    PromineoStudios

    Sin riesgos en la lucha, no hay gloria en la victoria

  8. #8
    Fecha de ingreso
    Oct 2004
    Mensajes
    687

    Morfer entre mayas de diferente número de vertices

    En al Maya 8 se puede hacer bastante fácil con la herramienta transfer, y luego un blendshape (Morph) siguiendo los mismos pasos, funciona bastante bien para superficies bastante suaves, como una cara o así, en superficies más angulosas da problemas, pero siempre se podría tener una geometría base que se deformase hacia las dos de modo que fuese una intermedia.
    Larry vizoso
    Pipeline developer/technical director
    el ranchito : mi blog

  9. #9
    Fecha de ingreso
    Feb 2005
    Mensajes
    2,231

    Morfer entre mayas de diferente número de vertices

    En al Maya 8 se puede hacer bastante fácil con la herramienta transfer, y luego un blendshape (Morph) siguiendo los mismos pasos, funciona bastante bien para superficies bastante suaves, como una cara o así, en superficies más angulosas da problemas, pero siempre se podría tener una geometría base que se deformase hacia las dos de modo que fuese una intermedia.
    Maldito Maya, porque no podías dar los mismo problemas que max?

  10. #10
    Fecha de ingreso
    Nov 2003
    Mensajes
    755

    Morfer entre mayas de diferente número de vertices

    Es que si se puede, mañana mismo me pongo a hacer a matanza. Así ya tengo el trío spidergay, digo man, enom y mantanza.
    Vaya, veo que te pico lo suficiente.

    Sé que tú puedes hacerlo, Sheen, suerte.

  11. #11
    Fecha de ingreso
    Jul 2005
    Mensajes
    1,768

    Morfer entre mayas de diferente número de vertices

    Maldito Maya, porque no podías dar los mismo problemas que max?
    Tranquilo, tu deja que los de Autodesk sigan metiendo las zarpas en el código de Maya. Veas que poco tarda en cargar mal las versiones anteriores de los archivos, y esas nuevas features que incorpora el 3ds Max.

  12. #12
    Fecha de ingreso
    Oct 2004
    Mensajes
    687

    Morfer entre mayas de diferente número de vertices

    Lo primero es que ya me casca Maya muchísimo más que antes, hola?
    Larry vizoso
    Pipeline developer/technical director
    el ranchito : mi blog

  13. #13
    Fecha de ingreso
    Apr 2006
    Mensajes
    2,391

    Morfer entre mayas de diferente número de vertices

    Pregunto: si dos más dos siguen siendo cuatro, si tenemos dos modelos con las mismas cantidad de polígonos, que más daría que uno tenga forma de cubo y otro de esfera, o cono, o cara, etc. No he hecho la prueba, pero me da que tendría que funcionar.

    Sino, no funcionaría el hecho de morphear dos caras de igual poligonización, pero distintas formas, no. Un saludo.

  14. #14
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Morfer entre mayas de diferente número de vertices

    Pregunto: si dos más dos siguen siendo cuatro, si tenemos dos modelos con las mismas cantidad de polígonos, que más daría que uno tenga forma de cubo y otro de esfera, o cono, o cara, etc. No he hecho la prueba, pero me da que tendría que funcionar.
    No sé si he entendido bien. Si el problema sólo fuese el número de vértices/Faces, sería bastante sencillo. El problema es que tienen que tener la misma topología, es decir, exactamente el mismo orden de creación de caras, de lo contrario el resultado final del Morph será una masa de vértices sin sentido. Saludos.

  15. #15
    Fecha de ingreso
    Dec 2004
    Mensajes
    866

    Morfer entre mayas de diferente número de vertices

    La cuestión sería trabajo el objeto a sobre el objeto b.
    Repasando esa idea me acordé del script que habías hecho para plantar árboles sobre una superficie, usabas una función que trazaba un rayo desde el objeto a plantar a la superficie y así obtenías las coordenadas, en teoría ¿no se podría hacer algo similar, pero en vez de calcularlo por objeto hacerlo por vértice? Lo único que las mallas tendrían que tener una densidad de polígonos parecida porque si no haría cosas raras, ahí queda eso, me voy para cama ya repasaré lo escrito por si he soltado demasiadas burradas. Saludos.
    _________________________________________________
    Reloj de pulsera /\ Marine Starcraft 2 WIP /\ Motorola L6 /\ Canon Ixus II /\ La vigilante /\ Dragon WIP ________________________________________________

  16. #16
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Morfer entre mayas de diferente número de vertices

    Repasando esa idea me acordé del script que habías hecho para plantar árboles sobre una superficie, usabas una función que trazaba un rayo desde el objeto a plantar a la superficie y así obtenías las coordenadas, en teoría ¿no se podría hacer algo similar, pero en vez de calcularlo por objeto hacerlo por vértice? Lo único que las mallas tendrían que tener una densidad de polígonos parecida porque si no haría cosas raras, ahí queda eso, me voy para cama ya repasaré lo escrito por si he soltado demasiadas burradas.
    Eso es lo que hago.

    Se bombardea el objeto b con rayos lanzados desde el objeto a. Aquí hay varias posibilidades. O bien lanzas los rayos con su origen en los vértices de a y dirección la normal del vértice, o bien creas una esfera virtual y proyectas desde ahí con dirección igual al origen de la esfera.

    De todas formas, dependiendo de la forma de lo objetos, puede ocurrir que al trabajo el objeto a sobre b, hayan polígonos que crucen espacios vacíos. Por ejemplo, imagina una mano con sus dedos. Puede ocurrir que un vértice sea proyectado en la punta de un dedo y otro vértice del mismo polígono se proyecte en la punta del dedo contiguo. Eso generaría geometría que rompería la forma de la mano.

    En cualquier caso, a ver si le doy los últimos retoques y lo saco. No hay nada que perder. Saludos.

  17. #17
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Morfer entre mayas de diferente número de vertices

    Hola. Aquí tenéis la primera versión del script que proyecta un objeto sobre otro. Os comento un poco cada cosa (ver imagen):


    • virtual sphere Radius: especifica el radio de la esfera (virtual) desde la cual se proyectara el objeto. En la imagen podéis ver dicho radio en 2d. Tened en cuenta que las unidades del radio son genéricas, aunque vosotros tengáis las unidades puestas enpreguntao lo que sea.
    • ray direction: especifica la dirección en la cual se proyectaran los vértices. Tenemos dos opciones. O bien se proyectan utilizando la normal de cada vértice, o bien lo hacen utilizando el radio-Vector, es decir, el Vector que va del vértice al centro de la esfera virtual (ver imagen). La dirección óptima dependerá de la forma del objeto.
    • object todo Project: con este botón puedes seleccionar el objeto (objeto a) que se proyectara (debe ser Editable Poly).
    • object todo Project on: con este botón puedes seleccionar el objeto sobre el que se proyectara (objeto b) el objeto a (también debe ser Editable Poly).
    • Project: ejecuta la proyección. Se creara un nuevo objeto (copia del objeto a) proyectado sobre el objeto b.
    • exit: hm.

    Bien, con esto no está todo hecho para poder hacer el morphing.

    Imaginad que tenéis un cubo y una esfera. Primero proyectais (el orden da igual) el cubo sobre la esfera y tendréis como resultado el objeto, llamémosle cube_proj. Ahora proyectais la esfera sobre el cubo y tendréis como resultado el objeto sphere_proj. Lo siguiente es atachar sphere_proj al cubo y la esfera a cube_proj. Aquí el orden de asociación sí es importante, de lo contrario la topología se nos ira al carajo.

    Una vez hecho todo eso, tenemos dos objetos, lo más probable es que no sean perfectos. Seguramente habrán aristas cruzando espacios vacíos (esto dependerá de la forma de los objetos) y habrá que mover los vértices de forma que dichas aristas queden dentro del objeto original. Otra cosa que seguramente necesitaréis para obtener resultados decentes a la hora de hacer el Morph es utilizar varios Morph targets intermedios. De esta forma la transición será más controlable. También se suelen obtener mejores resultados con objetos suaves y bastante teselados. Otra cosa que suele venir bien es escalar (utilizando el centro como pivote) el objeto proyectado, de forma que quede más en el interior del objeto que sirvió como referencia para la proyección. De esta forma evitaréis z-fighting en el render.

    En fin, eso es todo por ahora. Si tenéis dudas o encontráis fallos no tenéis más que comunicarlo por aquí y haré lo que pueda. Saludos.

    -- IMÁGENES ADJUNTAS --

    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: ProjectObjectInfo.jpg 
Visitas: 316 
Tamaño: 54.5 KB 
ID: 38968  
    Archivos adjuntados Archivos adjuntados
    Última edición por HalfVector; 13-11-2006 a las 21:12

  18. #18
    Fecha de ingreso
    Apr 2005
    Mensajes
    1,621

    Morfer entre mayas de diferente número de vertices

    Y todo esto no es lo mismo que un conformí. Corregidme si me equivoco, porque no lo entiendo, la verdad.
    Aquel que pregunta, es tonto un rato. Aquel que no pregunta, es tonto toda la vida.

  19. #19
    Fecha de ingreso
    Mar 2004
    Mensajes
    855

    Morfer entre mayas de diferente número de vertices

    Pues sí, eso parece. De hecho, hay opciones en el Conform que tenía pensado meter en el script también. En fin, es lo que tiene no conocer el 3ds Max.

  20. #20
    Fecha de ingreso
    Dec 2004
    Mensajes
    866

    Morfer entre mayas de diferente número de vertices

    Básicamente sí que es lo mismo, pero siempre mola ver cómo Halfvector se curra estos scripts, además nunca se sabe cuándo te puede hacer falta programar y siempre tienes estas aplicaciones para estudiar el código, en cuanto pueda lo prueba y comento si encuentro algún fallo.

    Editado : no había visto el mensaje de half, pero la idea de aprender del código sigue siendo valida.
    _________________________________________________
    Reloj de pulsera /\ Marine Starcraft 2 WIP /\ Motorola L6 /\ Canon Ixus II /\ La vigilante /\ Dragon WIP ________________________________________________

Temas similares

  1. Activar número de vértices y polígonos
    Por NomakIN- en el foro Modelado
    Respuestas: 1
    : 18-01-2021, 12:44
  2. Seleccionar entre dos vértices
    Por slash en el foro Programas de Diseño 3D y CAD
    Respuestas: 6
    : 01-04-2011, 02:49
  3. Selección entre vértices
    Por oscurart en el foro Modelado
    Respuestas: 6
    : 10-08-2009, 02:04
  4. Consulta averiguar numero de vértices de una spline
    Por ramiro3d en el foro Plugins y Scripts
    Respuestas: 1
    : 08-02-2009, 07:30
  5. Respuestas: 3
    : 02-02-2008, 22:25