Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 50 de 59

Segunda actividad de Houdini pintar una bola resolución

  1. #1
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    Houdini 2ª actividad de Houdini pintar una bola resolucion

    Aquí voy a poner los pasos para completar la escena desde cero. Esta vez se trata de pintar una esfera con los colores de las partículas que reboten en ellas. El objetivo es entender las limitaciones de un sistema procedural y la forma de conseguir que algunos atributos sean persistentes.

    -- IMÁGENES ADJUNTAS --
    Archivos adjuntados Archivos adjuntados
    Última edición por 3dpoder; 21-08-2007 a las 23:06
    Minor Bun engine made Benny Lava!

  2. #2
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Primero creamos un nodo de geometría en el tronco de la escena (obj). Para eso en la ventana scene le damos a tab, escribimos geo, seleccionamos geometry y colocamos el nodo, después entramos dentro del nodo. Para hacer esto podemos hacer doble click en el o click y enter. Una vez dentro, borramos el nodo por defecto (file) y creamos tres nodos para definir la escena:
    El primero será un grid (tab / grid / enter). Este será el suelo de nuestra escena. En las propiedades del objeto cambiaremos el tamanyo a 100 por 100 unidades (parámetro size). Lo demás lo dejaremos como esta. A este nodo le llamaremos groundplane (para cambiar el nombre hay que hacer doble click en el mismo).

    Luego creamos una esfera (tab / sphere / enter). Cambiaremos el tipo de primitiva a polygon para poder acceder y manipular los atributos y aumentaremos el radio a 10 10 10. Para que flote por encima del suelo, como posición (center) pondremos 0 10 0, para que se levante 10 unidades en el eje Y. Para terminar, subiremos la frecuencia a 12 para que tenga suficiente resolución.

    El tercer objeto será otro grid que usaremos para emitir las partículas. Tendrá un tamanyo de 20 por 20 y lo colocaremos a 32 unidades en el eje Y.
    Minor Bun engine made Benny Lava!

  3. #3
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    La escena debería de verse así.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v1.jpg 
Visitas: 563 
Tamaño: 202.2 KB 
ID: 53494  
    Minor Bun engine made Benny Lava!

  4. #4
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Ahora necesitamos que el emisor genere partículas, que estas caigan y que reboten en la bola. Para crear un sistema de partículas hacemos [ tab / pop network / enter ], dentro de ese operador ira el flujo de nodos que condicionaran el comportamiento de las partículas.

    Lo primero que vamos a hacer es conectar el emisor al primer input, la esfera al segundo y el suelo al tercero. Estos imputs no tienen por qué seguir ningún orden en partículas. Solo servirán para llamar a cada geometría por separado desde dentro del sistema de partículas.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v2.jpg 
Visitas: 594 
Tamaño: 179.0 KB 
ID: 53495  
    Minor Bun engine made Benny Lava!

  5. #5
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Ahora nos metemos dentro del pop network haciendo doble click en el nodo. Al hacer esto, vemos que la ventana de scene view también cambia para ahora visualizar el sistema de partículas.

    Nosotros queremos seguir viendo toda la escena en conjunto, así que, vamos hacia atrás con la flecha que hay debajo del scene view, y apretamos en el icono del pin que está más a la derecha en esea misma ventana. Para ver todo a la vez, hacemos Control shift click en el segundo botón empezando por la derecha de todos los nodos (el botón se volverá morado).

    Ahora, nos meteremos en el sistema de partículas para modificarlo, y seguiremos viendo la escena completa en esa ventana gracias a que hemos pulsado el pin, con lo que se mantiene la vista anterior.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v3.jpg 
Visitas: 437 
Tamaño: 180.6 KB 
ID: 53496  
    Minor Bun engine made Benny Lava!

  6. #6
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Ya por fin estamos dentro del pop network (doble click en el nodo) y no hay nada dentro. Lo primero que hay que crear es un operador source para generar partículas. [tab / source / enter ].

    El nodo aparecerá con unas líneas rojas. Esto es porque está fallando, y la razón de eso es que por defecto no existe ninguna geometría que usar para la emisión. Para resolver eso, vamos a el parámetro geometry source y elegimos use first context geometry. Esto hará que el primer input que conectamos anteriormente al pop network sea lo que emita partículas, si ahora le damos a play, se puede apreciar que se generan partículas, pero estas se quedan quietas en el emisor, ya que no hay nada que diga que se tienen que mover de ahí. Si el objeto emisor tuviera normales o componentes de velocidad, las partículas se moverian de acuerdo con ello, pero no es el caso, para hacer que se caigan simulando una gravedad, habrá que añadir un operador force [ tab / force / enter ] y conectarlo después del source. Para que ese nuevo operador se tenga en cuenta, y sea el último en ser calculado, habrá que hacer click en el botón derecho del nodo hasta que se ponga azul. Ahora en los parámetros del operador force escribiremos -1 en la segunda casilla (eje y) y si le damos a play, veremos que una lluvia de partículas vcae sobre la esfera y el suelo.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v4.jpg 
Visitas: 454 
Tamaño: 186.4 KB 
ID: 53497  
    Minor Bun engine made Benny Lava!

  7. #7
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Luego sigo, que me van a echar del trabajo. Voy poco a poco para que esto sea accesible a todo el mundo. Lo siento por los usuarios más avanzados, pero ya llegaremos ahí. Alguien me puede poner el icono de Houdini en el mensajes? Se me ha olvidado.
    Minor Bun engine made Benny Lava!

  8. #8
    Fecha de ingreso
    Oct 2004
    Mensajes
    10,798

    2ª actividad de Houdini pintar una bola resolucion

    Luego sigo, que me van a echar del trabajo.
    Slime, el trabajo es lo primero, que después de llegar hasta dónde has llegado solo faltara eso. Así que puedes dejarnos en la cuneta cuando quieras sin problema. Muchas gracias por toda tu aportación.

  9. #9
    Fecha de ingreso
    Dec 2004
    Mensajes
    1,852

    2ª actividad de Houdini pintar una bola resolucion

    Muchas gracias, que detallado, mola. Lo del pin es nuevo para mí, por ejemplo. Y bueno, gracias a todos también, of course.
    E moet roeien met de riemen die je hebt.

  10. #10
    Fecha de ingreso
    Jun 2006
    Mensajes
    64

    2ª actividad de Houdini pintar una bola resolucion

    Sí. Es mejor que vaya despacio, que a veces hay detalles que incluso a los que supuestamente ya sabemos un poco, se nos escapan.

  11. #11
    Fecha de ingreso
    Apr 2004
    Mensajes
    3,115

    2ª actividad de Houdini pintar una bola resolucion

    1 (que en jerga de foros significa que opino igual que toda la panda que ha escrito antes que yo). Posdata: cuando termines juntaré todos tus mensajes en uno sólo al principio de la página, para que quede todo ordenado (si os parece bien).

  12. #12
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Las partículas caen de manera muy uniforme. Esto ocurre por varias razones. Por defecto las partículas se generan con un tipo de emisión points(ordered), lo que creara partículas solo en los vértices y en orden numérico. Si queremos que se generen en la superficie completa y en lugares aleatorios, tendremos que cambiar el emission type a surfaces (random). Después de hacer esto al darle a play se puede ver cómo caen de una forma mucho más orgánica.

    Para darle color aleatorio a las partículas, podemos poner un operador color entre el source y el force, vamos a la pestaña param y veremos que hay tres casillas con tres expresiones ($cr, $cg, $cb). Estos atributos son los que representan el color, que no han sido inicializados. Para cambiarlos, lo primero que tenemos que hacer es borrar las expresiones, para eso, hacemos click con el botón derecho en la zona a la izquierda del rectángulo de colory elegimos deleete channels (también es posible hacer esto con Control + Alt + botón izquierdo del ratón.

    Ahora en vez de las expresiones tendremos en las tres casillas (0 0 0).

    Sustituyamos la primera por uno para que quede (1 0 0)
    Para ver los cambios, necesitamos rebobinar la escena (ir al primer fotograma, para que el sistema de partículas se inicialice) y luego podrmos darle a play. Veremos que ahora las partículas que caen son rojas.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v5.jpg 
Visitas: 314 
Tamaño: 195.2 KB 
ID: 53507  
    Última edición por slime; 19-07-2007 a las 22:21
    Minor Bun engine made Benny Lava!

  13. #13
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    La idea es que las partículas adquieran un color distinto. Esto se consigue con una expresión aleatoria que dependa de su identificador ($id), que es único para cada partícula, si en la primera casilla de color sustituimos el valor 1 por la expresión Rand($id), cada partícula producirá un valor aleatorio entre cero y uno ligado a ese $id, para ver lo que está pasando, rebobinemos, y vayamos al fotograma 100. Dándole al botón derecho encima del operador force, podemos elegir spreadshet, que nos dará información de todo lo que hay en ese nodo, si nos fijamos en las columnas id y CD(0) veremos el identificador y la intensidad de rojo (las intensidades de color van desde 0 a 1), el color aparece como CD(0) porque es una variable de tres componentes. Al ser una variable especial, aparece con un nombre declarado distinto al original. Esto no es importante ahora mismo. Lo que importa es entender que cada partícula generara un componente rojo distinto, de entre cero y uno.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v6.jpg 
Visitas: 404 
Tamaño: 117.7 KB 
ID: 53508  
    Minor Bun engine made Benny Lava!

  14. #14
    Fecha de ingreso
    Oct 2004
    Mensajes
    10,798

    2ª actividad de Houdini pintar una bola resolucion

    Vaya con el spreadshet.

  15. #15
    Fecha de ingreso
    Dec 2005
    Mensajes
    939

    2ª actividad de Houdini pintar una bola resolucion

    Vaya con el spreadshet.
    Si eso ya lo vimos en el otro mensaje, Leander.

  16. #16
    Fecha de ingreso
    Oct 2004
    Mensajes
    10,798

    2ª actividad de Houdini pintar una bola resolucion

    Si eso ya lo vimos en el otro mensaje, Leander.
    Pues no me di cuenta, Slime por mucho que hable y/o esté rodeado del inglés se expresa mejor que el catedrático de Mars.

    Me callo, no pienso interrumpir más.

  17. #17
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    cuidado con pulsar en la parte izquierda de la ventana con el color en las propiedades del nodo, porque del modo expresiones se pasara al de resultados y habrá que pulsar de nuevo para volver..

    Nosotros queremos que las partículas tengan colores distintos, por lo que rellenaremos las otras casillas del operador color con expresiones similares, pero no con la misma. Si ponemos [ Rand($id) Rand($id) Rand($id) ] las tres expresiones devolverán el mismo número, por lo que tendremos tonalidades de gris. Para evitar eso, usaremos offsets en el Rand. Escribiendo [Rand($id) Rand($id+1) Rand($id+2) ] tendremos un color distinto para cada partícula.

    Ahora tenemos las partículas con colores aleatorios, pero el sistema no está demasiado optimizado, ya que, cada fotograma Houdini vuelve a calcular las expresiones aleatorias para llegar al mismo valor que ya tenía antes, puesto que los $ids no cambian, así que, estaría bien poder solo definir el color una vez, cuando la partícula nace.

    Para esto, necesitamos crear un grupo donde solo estén las partículas que acaben de nacer y solo cambiar el color de las partículas a ese grupo.

    Primero iremos al nodo source y haremos click en la pestaña Birth. En Birth group escribiremos justborn. Este será el grupo que se creara y que comprenderá las partículas que acaban de nacer. Hay un botón que se llama preserve group. Esto sirve para que las partículas que entren en ese grupo permanezcan ahí todo el tiempo. Esto ahora mismo no tiene ninguna utilidad, puesto que solo queremos que estén en el grupo las que acaban de nacer, para que todo sea más optimizado.

    Ahora iremos al nodo color y en source group escribiremos justborn. Ahora solo se cambiara el color de las partículas cuando nazcan y el sistema será más optimizado.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v7.jpg 
Visitas: 240 
Tamaño: 187.0 KB 
ID: 53510  
    Minor Bun engine made Benny Lava!

  18. #18
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Tip: para ver informaciones en los nodos hay que pulsar el botón central en medio de los mismos. Aparecerá una ventana de información flotante. Por ejemplo, aquí me dice que tengo 721 puntos (partículas) en total en la simulación y cuatro puntos (partículas) en el grupo justborn, lo qué significa que han nacido cuatro partículas este fotograma.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v8.jpg 
Visitas: 243 
Tamaño: 26.5 KB 
ID: 53511  
    Minor Bun engine made Benny Lava!

  19. #19
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolución

    El siguiente paso será conseguir que las partículas reboten en la esfera. Para eso colocaremos un nodo collision al final de todo, después del nodo force y lo activaremos como parte final del sistema haciendo click en la parte derecha del nodo para que se vuelva azul, ahora tenemos que elegir la geometría con la que chocaran las partículas.

    Al principio, cuando creamos el pop network, colocamos la esfera en el segundo input y el suelo en el tercer input, así que, utilizaremos el segundo input para las colisiones. Eso lo especificamos en las propiedades de colisión, en geometry source, seleccionando use second context geometry, en un principio dejaremos hint como static geometry, ya que la esfera no se va a mover, pero si esta se moviera, habría que cambiarlo a translating geometry. Si se deformara, habría que convertirla a triángulos y utilizar deforming geometry, pero eso lo veremos más adelante.

    Si ahora le damos a play, veremos que las partículas desaparecen al chocar con la esfera. Esto es porque por defecto, es el comportamiento que se asigna a las colisiones. Para cambiarlo, tenemos que ir a la pestaña de behavior y cambiar el behavior a bounce on collision, al darle ahora a play podremos ver cómo las partículas rebotan bastante al chocar con la esfera.

    Existen dos parámetros en la misma pestaña llamados gain Tangent y gain normal. Estos van a controlar la dirección e intensidad del bote.

    El gain Tangent es un multiplicador del Vector tangente a la superficie, usando como Vector inicial el de velocidad de la partícula. Es decir, si la partícula va hacia una dirección al chocar con la esfera, la partícula seguirá la misma dirección, pero en la superficie de la esfera. Podemos ver el efecto poniendo el gain normal a 0. Las partículas resbalaran por la superficie de la esfera.

    El gain normal es un multiplicador del Vector normal de la superficie. Las normales de las superficies suelen ser vectores perpendiculares a las mismas (aunque es posible modificarlos), por lo que las partículas rebotaran hacia afuera del objeto siguiedo un Vector perpendicular a la superficie. Podemos ver el efecto poniendo el gain Tangent a 0. Las partículas rebotaran con un ángulo de 90 grados a la superficie de la esfera.

    En la vida real, existen muchos factores que determinaran la velocidad y trayectoria resultantes (el Vector) después de una colisión. Hay que tener en cuenta la fricción y la forma de los objetos, pero siempre se perderá energía después de una colisión. En definitica, cada partícula tendría una colisión diferente en la vida real, en mayor o menor medida.

    Para simular esto, usaremos unas expresiones simples en gain Tangent y gain normal usando fit y Rand.
    la expresión fit01(a,b,c) interpretara el valor a entre 0 y 1 y asignara b al 0 y c al 1 y hará una interpolación de los valores intermedios de forma lineal, por ejemplo, fit01(0,0.5,1) nos dará como resultado 0.5, fit(0.5,0.5,1) nos dará 0.75 y fit(1,0.5,1) nos dará 1.
    en gain Tangent pondremos fit01(Rand($id+4),0.4,0.
    Y en gain normal pondremos fit01(Rand($id+5),0.2,0.6).

    Con esto conseguiremos valores aleatorios en el gain Tangent de entre 0.4 y 0.8 y de 0.3 y 0.6 en el gain normal. La razón de esto es que no queremos que los valores se acerquen a 0 o a 1, ya que eso sería poco habitual en la vida real. Por supuesto cada caso es distinto y hay más formas de conseguir esos valores.

    Por ejemplo, fit01(Rand($id+4),0.4,0. sería lo mismo que (Rand($id+4)*0.4)+0.4.

    Si le damos ahora a play veremos que las partículas rebotan de forma más o menos orgánica.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v9.jpg 
Visitas: 278 
Tamaño: 208.0 KB 
ID: 53525  
    Última edición por slime; 20-07-2007 a las 00:38
    Minor Bun engine made Benny Lava!

  20. #20
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Antes de ponernos con la transferencia de color, vamos a hacer unas pruebas de emisión de partículas. En el nodo source, si ponemos en const. Activation un 0, esto desactivara la emisión constante de 100 partículas por segundo, así que, si damos ahora a play no se generaran partículas, si en impulse activation escribimos $f==25
    Y en impulse Birth rate 100
    Cuando demos a play, el impulse activation será 1 (activado) solo cuando el fotograma sea el 25, y entonces se generaran 100 partículas. Se pueden escribir expresiones más complicadas en el impulse activation y Birth rate.

    Por ejemplo:
    Impulse activation $f<100
    Birth rate (($f*0.01)3)*100
    Esto emitirá partículas hasta el fotograma 99 (impulse activation estará activo hasta el fotograma 100) y se generaran partículas dependiendo del número de frame según la expresión (($f*0.01)3)*100, que nos dará una curva exponencial desde 0 a 100, por lo que al principio caerán pocas partículas y cada vez más al final.

    Otro ejemplo:
    Impulse activation: 1
    Birth rate: max(0, (sin($f*5)11)*30)
    Esto emitirá un número de partículas correspondiente a la parte positiva de una onda sinusoidal elevada a una potencia alta para comprimirla, max(a,b) es una expresión que devuelve el número mayor de los dos, por lo que si es max(0,a) como en este caso, convertirá cualquier número menor que cero a cero.

    Para ver la gráfica de la formula, es posible hacer click con el botón derecho en el nombre del parámetro y elegir scope channels (o shift + botón central del ratón).

    Después de hacer unas cuantas pruebas y jugar con expresiones, volvamos a estos valores:
    Impulse activation: 0
    Impulse Birth rate: 0
    Const. Activation : 1
    Const. Birth rate: 50.

    Para que se generen 50 partículas por segundo.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v10.jpg 
Visitas: 259 
Tamaño: 203.5 KB 
ID: 53533  
    Última edición por slime; 20-07-2007 a las 05:22
    Minor Bun engine made Benny Lava!

  21. #21
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Ahora vamos a pasar el color de las partículas a la esfera. Para eso, volvemos a geometría desde dentro del sistema de partículas, dándole a la flecha hacia la izquierda. Crearemos un nodo attributetransfer y conectaremos la esfera al input de la izquierda y el popnet a la derecha. Por defecto todos los atributos de las partículas se pasaran a la esfera, con los parámetros determinados.

    Originalmente el radio es bastante grande, por lo que veremos colorearse la esfera, aunque las partículas aún no hayan tocado su superficie, el único problema es que cuando las partículas se alejan la esfera, estas dejan de afectar al color de la misma. Lo que necesitamos es que cuando una partícula la toque, esta se quede ahí, pintándola todo el rato.

    Para conseguir esto, volvamos dentro del sistema de partículas (popnet) y en el nodo collision, en la pestaña behavior, cambiemos bounce on collision a stick on collision. Ahora las partículas no rebotaran, sino que se quedarán pegadas a la esfera, por lo que transferiran el color todo el rato. Tenemos que encontrar una forma de que boten a la vez se queden pegadas todo el rato (creando nuevas partículas) o en su defecto algo que haga que la esfera mantenga las propiedades en el tiempo. Esta segunda opción nos proporcionara mucho más potencial.

    Houdini está basado en sistemas procedurales, y esto tiene ciertas ventajas e inconvenientes. Uno de los principales inconvenientes es que los atributos de la geometría no son persistentes. Si solo utilizáramos una partícula y transfiriéramos el color a la esfera, la esfera volvería al color inicial una vez la partícula se alejase lo suficiente. Esto es porque la geometría no se actualiza con el fotograma anterior. Lo que ocurre en ese fotograma es lo único que le afecta. Los sistemas de partículas son distintos, son dependientes del tiempo y mantienen los atributos. Por eso, para llegar al fotograma x de un sistema de partículas, se tiene que pasar por todos los anteriores y el sistema tiene que ser inicializado previamente, es decir, que si tenemos una geometría con animación procedural, podremos ir al fotograma 1000 y veremos inmediatamente el resultado. Si se trata de un sistema de partículas, tendrá que calcular internamente los 1000 fotogramas, pero lo bueno es que los atributos se mantendrán, como ocurre con el color que solo declaramos cuando las partículas nacen.

    En Houdini se pueden usar los sistemas de partículas para mantener propiedades en la geometría y eso es lo que vamos a usar nosotros, pero primero, vayamos un poco más lejos en el tema de colisiones, para que la esfera solo acepte el color de las partículas que ya han chocado con ella.

    En el nodo collision se puede especificar el collision group. Este grupo contendrá las partículas que hayan chocado con la geometría. Llamemosle hascollided. Esta vez si que queremos que las partículas se mantengan en ese grupo por el resto de su vida y no solo en el momento del choque, por lo que activaremos el preserve group. Si hacemos play en la simulación y vemos el estado del nodo collision en un fotograma donde ya hayan chocado partículas con la esfera (botón medio) podremos ver que el grupo hascollided se está llenando.

    Ahora iremos de vuelta a geometría y en el nodo attrribute transfer, escribiremos hascollided en el source group y cambiaremos el source group type a points, ya que es un grupo de puntos (partículas) y no primitivas. Para optimizar la transferencia de atributos, desactivaremos el botón de primitives y en el de points, seleccionaremos únicamente el color (CD). Así las partículas solo pasaran el color y solo harán una vez hayan chocado con la esfera.

    -- IMÁGENES ADJUNTAS --

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

Nombre: spherepaint_ss_v11.jpg 
Visitas: 317 
Tamaño: 169.8 KB 
ID: 53534   Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v12.jpg 
Visitas: 302 
Tamaño: 171.8 KB 
ID: 53535  
    Última edición por slime; 20-07-2007 a las 02:49
    Minor Bun engine made Benny Lava!

  22. #22
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Manyana más.
    Minor Bun engine made Benny Lava!

  23. #23
    Fecha de ingreso
    Jan 2007
    Mensajes
    43

    2ª actividad de Houdini pintar una bola resolucion

    Bien Slime, estoy tomando nota, lápiz y papel, y gracias por tu tiempo.

    An-Hell
    Machupicchu: Enigmática maravilla del mundo.

  24. #24
    Fecha de ingreso
    Sep 2005
    Mensajes
    855

    2ª actividad de Houdini pintar una bola resolucion

    Gracias Slime, muy bien explicadito todo.

  25. #25
    Fecha de ingreso
    Oct 2004
    Mensajes
    10,798

    2ª actividad de Houdini pintar una bola resolucion

    Borrar.

  26. #26
    Fecha de ingreso
    Apr 2002
    Mensajes
    20,231

    2ª actividad de Houdini pintar una bola resolucion

    Muchas gracias master. Tendré un ratio libre en el trabajo para seguirlo paso a paso. Abriendo Houdini.
    Obtén enseñanza tradicional en arte y cine. Los ordenadores solo son herramientas. Ellos no pueden tomar decisiones creativas, y solo pueden crear trabajos tan buenos como tus conocimientos y tu experiencia les permita.
    Victor Navone


    Ser "animador" es un regalo que te ganas y un honor que deben adjudicarte los otros.
    Chuck Jones


    La tecnología no hace las pelí*culas, la gente las hace. No eres un animador sólo porque puedas mover un objeto del punto A al punto B. Eres alguien quien le da vida a un personaje, que es algo que el software y la tecnología no puede dar.
    John Lasseter

  27. #27
    Fecha de ingreso
    Oct 2004
    Mensajes
    10,798

    2ª actividad de Houdini pintar una bola resolucion

    Lo he pasado a pdf (con las capturas y todo) para todo aquel que lo quiera tener a mano y/o en papel. Son 11 páginas. Cuando me des tu permiso, Daniel, lo cuelgo.

  28. #28
    Fecha de ingreso
    Dec 2005
    Mensajes
    939

    2ª actividad de Houdini pintar una bola resolucion

    Lo he pasado a pdf (con las capturas y todo) para todo aquel que lo quiera tener a mano y/o en papel. Son 11 páginas.

    Cuando me des tu permiso, Daniel, lo cuelgo.
    Pero sí, aunqueda mucho.

  29. #29
    Fecha de ingreso
    Oct 2004
    Mensajes
    10,798

    2ª actividad de Houdini pintar una bola resolucion

    Pero sí, aunqueda mucho.
    Por eso digo cuando me de su permiso, o sea, cuando termine.

  30. #30
    Fecha de ingreso
    Oct 2004
    Mensajes
    10,798

    2ª actividad de Houdini pintar una bola resolucion

    Para todo aquel que no quiera estar parado con las partículas, podéis ir por aquí mientras: tutorial: working with particles - Side effects software inc..

  31. #31
    Fecha de ingreso
    Dec 2005
    Mensajes
    939

    2ª actividad de Houdini pintar una bola resolucion

    Para todo aquel que no quiera estar parado con las partículas.
    Yo tengo algo preparado. En cuanto acabe Slime su explicación lo pongo, creo que será entretenido.

  32. #32
    Fecha de ingreso
    Oct 2004
    Mensajes
    10,798

    2ª actividad de Houdini pintar una bola resolucion

    Yo tengo algo preparado. En cuanto acabe Slime su explicación lo pongo, creo que será entretenido.
    Pues muchas gracias, hombre, te debo mucho.

  33. #33
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Genial. Lo del pdf es una buena idea, y ya estoy deseando ver lo que pone Miguel. Hoy no he tenido tiempo para nada, voy a ver si ahora adelanto un poco.
    Minor Bun engine made Benny Lava!

  34. #34
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Ahora volvemos al dilema. Cómo hacer que las partículas se queden pegadas a la esfera a la vez que rebotan? Vamos a hacerlo de una forma sencilla, pero a la vez potente.

    Primero entremos en el pop network y en el nodo de colisión, volvamos al comporamiento bounce on collision y desactivemos el preserve group. Ahora las partículas botaran y pertenecerán al grupo hascollided únicamente en el fotograma en el que lo hayan hecho.

    Volvemos de nuevo atrás a geometría y anyadimos un nodo deleete conectado al pop network. En las propiedades del nodo, escribimos hascollided como nombre del grupo, elegimos points como entity (ya que se trata de partículas y por último en operation seleccionamos delete not selected. Si le damos a play veremos que es posible ver a las partículas solo por un fotograma, justo cuando han chocado con la esfera.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v13.jpg 
Visitas: 259 
Tamaño: 162.9 KB 
ID: 53604  
    Última edición por slime; 21-07-2007 a las 03:22
    Minor Bun engine made Benny Lava!

  35. #35
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    La idea es usar estos puntos que se crean cada fotograma para crear un nuevo sistema de partículas que sea el que se encargue de pasar los atributos de color a la esfera, manteniéndose en su superficie todo el rato.

    Para crear ese nuevo sistema de partículas, creamos un pop network conectado detrás del deleete, que podríamos renombrarlo como collisionframe_only. Entramos dentro y creamos un source y en las propiedades elegiremos como es habitual el first context geometry como geometry source. Luego iremos a la pestaña Birth y pondremos const. Activation y const. Birth rate a 0 para que no se emitan partículas constantemente, como el input de este sistema de partículas son otros puntos (partículas), lo que tenemos que hacer es saber cuántos puntos tenemos de entrada y generar partículas en su misma posición y con sus mismos atributos. Para esto, escribiremos $npt en impulse Birth rate. Ese atributo es el número de puntos de la geometría que le llega al sistema, por lo que básicamente este nodo va a crear un sistema de partículas nuevo a partir de los puntos de geometría del nodo anterior.

    Hagamos la prueba, y démosle ahora a play. Veremos que nuevas partículas se generan ahora en la esfera, pero en vez de estarse quietas se están moviendo hacia fuera de la misma. Esto ocurre porque las partículas están heredando los atributos de los puntos anteriores.

    -- IMÁGENES ADJUNTAS --

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

Nombre: spherepaint_ss_v14.jpg 
Visitas: 280 
Tamaño: 165.8 KB 
ID: 53605   Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v15.jpg 
Visitas: 263 
Tamaño: 162.0 KB 
ID: 53606  
    Minor Bun engine made Benny Lava!

  36. #36
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Ahora necesitamos que las partículas no se muevan. Para esto podemos ir a la pestaña attributes del source de este nuevo sistema de partículas y en Inherit velocity escribir 0. Ahora las partículas mantendrán las propiedades anteriores, pero no heredarán velocidad, para optimizar el sistema podemos cambiar el asterisco del Inherit attributes a CD, y ese será el único atributo que hereden las partículas que en definitiva es el único que nos interesa.
    en realidad, las partículas que se crean no lo están haciendo en la superficie de la esfera, ya que, al rebotar se encuentran en una posición dependiente al momento de impacto y el Vector resultante. Es muy sencillo colocarlas en el momento perfecto del impacto, usando el Vector de posición hitpues que nos proporciona el nodo collide y corrigiendo el valor en geometría, pero para no desviarnos demasiado del tema, lo dejaremos correr por ahora..

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v16.jpg 
Visitas: 328 
Tamaño: 152.7 KB 
ID: 53607  
    Minor Bun engine made Benny Lava!

  37. #37
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolución

    Limpiando un poco. Volvemos de nuevo atrás a geometría y antes de nada no estaría mal renombrar los nodos para que todo este más claro. El primer sistema de partículas lo he llamado main_pop_network y el segundo sticky_particles.

    Luego vamos a eliminar el attribute transfer que tenemos y limpiar un poco todo.

    Para visualizar todo el sistema desde un nodo, crearemos un merge al que llamaremos geoemtry_merge, al que conectaremos amitter, sphere y groundplane. Luego crearemos otro nodo merge al que llamaremos all_merge al que conectaremos el merge anterior (geometry_merge) y los dos sistemas de partículas.

    Si activamos la visualización del all_merge (botón azul del nodo) estaremos visualizando todo lo que nos interesa a la vez y no tendremos que preocuparnos de los template flags o botones rosas / morados para ver otras partes de la escena.

    Ahora todo debería de verse como en la imagen.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v17.jpg 
Visitas: 297 
Tamaño: 173.2 KB 
ID: 53608  
    Minor Bun engine made Benny Lava!

  38. #38
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolución

    Ya está casi. Ahora tenemos que hacer que el sistema de partículas sticky_particles sea el que pase la información de color a la esfera. Para eso, creamos un attribute transfer y lo conectamos entre la esfera y el geometry_merge. En el input derecho conectaremos sticky_particles, en las propiedades del attribute transfer, desactivaremos el botón de primitivas en la pestaña attributes y en la zona de points, únicamente usaremos el color (CD).

    Ahora iremos a la pestaña conditions y pondremos.

    Kernel Radius: 2.5
    Max sample count: 4
    Distance threshold: 2.5
    Así disminuimos el radio de acción del attribute transfer y con el sample count generamos interpolación para que los colores se mezclen.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v18.jpg 
Visitas: 280 
Tamaño: 173.9 KB 
ID: 53609  
    Minor Bun engine made Benny Lava!

  39. #39
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Al hacer play ahora se puede ver cómo la esfera se pinta y los colores se mantienen, pero la forma es algo brusca, para corregir esto, pondremos un nodo Smooth justo debajo del attribute transfer (ver imagen). Eligiremos en las propiedades apply to: color y en smoothing iterations pondremos 16.
    Ahora los colores se difuminaran mucho más, para que el efecto sea más evidente, podemos ahora colorear la esfera de negro, para lo que podemos poner un nodo de color justo después de la esfera y inicializar el color a 0 0 0.

    Ya está el ejercicio resuelto, aunque habría que hacer ciertas modificaciones si la esfera se estuviese moviendo. Pero aún podemos ir mucho más lejos. Seguiré actualizando este hilo, para los que se atrevan.
    Minor Bun engine made Benny Lava!

  40. #40
    Fecha de ingreso
    Jun 2005
    Mensajes
    1,206

    2ª actividad de Houdini pintar una bola resolucion

    Gracias Slime.

  41. #41
    Fecha de ingreso
    Sep 2005
    Mensajes
    855

    2ª actividad de Houdini pintar una bola resolucion

    Mola. Gracias Slime, este es el primer tutorial que consigo terminar con éxito en Houdini (a la tercera va la vencida). Muy didáctico y bien explicado. Ahora me voy a entretener en ahondar en todos los parámetros que has ido indicando.

  42. #42
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Me alegro de que sea útil.
    Minor Bun engine made Benny Lava!

  43. #43
    Fecha de ingreso
    Apr 2004
    Mensajes
    3,115

    2ª actividad de Houdini pintar una bola resolucion

    Preguntilla: ¿cómo hiciste tú que el color saliera poco a poco, sin saltos cuando una partícula contamina los vértices cercanos que ya tienen otro color? (es que no sé si das por terminada la explicación o vas a seguir).

  44. #44
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Buena pregunta ya llegaremos a eso más adelante, esto aún no ha terminado.
    Minor Bun engine made Benny Lava!

  45. #45
    Fecha de ingreso
    Apr 2004
    Mensajes
    3,115

    2ª actividad de Houdini pintar una bola resolucion

    Ok ok, esperaré ansioso el truco.

  46. #46
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolucion

    Luego explicaré el método necesario para que los colores no luchen entre ellos y se pueda actualizar el color de la superficie múltiples veces. Ahora vamos a llevar lo que tenemos un poco más lejos, desde aquí voy a ir un poco más rápido, sin dar tantos detalles. Quien tenga dudas, que pregunte.

    Primero vamos a la esfera y cambiamos la frecuencia a 16, para tener más polígonos con los que trabajar, luego iremos al pop network sticky_particles y anadiremos un nodo de fuerza con componente y -5 para simular la gravedad. Después de este, anyadiremos un nodo collision, usaremos el second context geometry y en el comportamiento haremos slide on collision. Volveremos atrás a geometría y conectaremos le esfera al segundo input del pop network y le cambiaremos el nombre a sliding_particles, si visualizamos únicamente sliding_particles veremos que se crearan partículas en la posición de colisión y que estas resbalaran por la superficie de la esfera.

    Como las partículas tardan mucho tiempo en llegar a la esfera, iremos ahora al main_pop_network y haremos que las partículas tengan una velocidad inicial. Para ello, en la pestaña attributes del source, usaremos set initial velocity como velocidad inicial y pondremos una velocidad de 0 -5 0 con varianza 0 0 0.

    Desactivemos el Smooth por un momento para poder ver el resultado a más velocidad en el viewport. Veremos que ahora los colores resbalaran por la esfera, para desactivar momentáneamente un nodo, se hará click en el botón izquierdo del mismo, que se volverá amarillo (bypass). Para activarlo de nuevo, solo hay que volver a hacer click.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v20.jpg 
Visitas: 375 
Tamaño: 170.1 KB 
ID: 53629  
    Última edición por slime; 21-07-2007 a las 22:13
    Minor Bun engine made Benny Lava!

  47. #47
    Fecha de ingreso
    Mar 2003
    Mensajes
    3,104

    2ª actividad de Houdini pintar una bola resolución

    Para el siguiente paso, necesitaremos que la esfera tenga normales. Por defecto no se crean, así que, pondremos un facet después del nodo sphere y activaremos mensaje compute normales.

    Al hacerlo, el suelo se vuelve negro. Esto es porque la esfera y el suelo se están combinando en un mismo merge, y solo uno de esos objetos (la esfera) tiene normales, por lo que inicia las del suelo a cero, lo que hace que no sea iluminado correctamente.

    Para ver las normales de la escena, deberemos hacer click en el icono de la barra de la derecha en el viewport view, con la forma de una bola con una línea, entre la bola y la bola con el número 12. Al hacerlo veremos que se mostraran las normales de la esfera. Por defecto no son muy largas, pero esto podremos corregirlo con las opciones del viewport, pulsando la tecla de mientras el ratón está encima de la ventana de visualización de la escena (view) saldrá el diálogo de propiedades. En la pestaña Misc, podemos cambiar scale normal a otros valores (por defecto es 0.2). Si lo ponemos a 1 podremos ver el tamanyo real de los vectores normales.

    Activemos ahora de nuevo el Smooth y creemos un point detrás suyo, esa información de color de la esfera la podemos usar para muchas cosas, así que, porque no cambiamos la geometría de la misma?
    El point SOP es uno de los nodos más potentes de Houdini.

    En position, por defecto tenemos ($tx $ty $tz) que es el Vector posición. Cambiemos esos atributos por las siguientes expresiones:
    $tx+($nx*$cr*2) $ty+($ny*$cr*2) $tz+($nz*$cr*2)
    La esfera adquirirá una forma oblonga, porque estamos usando el componente rojo de color para mover los puntos de la esfera usando el Vector normal de la misma con el doble de magnitud.

    Ahora habrá que recalcular normales, así que, después del point, anyadiremos un operador facet y volveremos a activar mensaje compute normals. Ahora la esfera se verá correctamente con su nueva forma.

    Volvamos al point SOP. Cambiemos las expresiones a:
    $tx+($nx*$cr*2)-($nx*$cg*2) $ty+($ny*$cr*2)-($ny*$cg*2) $tz+($nz*$cr*2)-($nz*$cg*2)
    Ahora el componente verde de color hará que los puntos se muevan hacia dentro en vez de afuera.

    Para ver mejor el resultado, podemos ahora subir la frecuencia de la esfera. Esto hará que todo vaya más lento, pero el resultado será mucho más definido.

    -- IMÁGENES ADJUNTAS --
    Miniaturas adjuntas Miniaturas adjuntas Clic en la imagen para ver su versión completa. 

Nombre: spherepaint_ss_v21.jpg 
Visitas: 398 
Tamaño: 171.3 KB 
ID: 53630  
    Minor Bun engine made Benny Lava!

  48. #48
    Fecha de ingreso
    Dec 2004
    Mensajes
    1,852

    2ª actividad de Houdini pintar una bola resolucion

    Que guay, gracias, ahora toca estudiarse un poco estos nodos.
    E moet roeien met de riemen die je hebt.

  49. #49
    Fecha de ingreso
    Oct 2004
    Mensajes
    10,798

    2ª actividad de Houdini pintar una bola resolucion

    Gracias otra vez, la versión pedefera.

    -- IMÁGENES ADJUNTAS --
    Archivos adjuntados Archivos adjuntados

  50. #50
    Fecha de ingreso
    Jan 2007
    Mensajes
    43

    2ª actividad de Houdini pintar una bola resolucion

    Y eso es todo? Que fácil. Gracias Slime, mereces que te envitemos un chop, pero de tanto estar en el PC mi vida se ha vuelto un conjunto de nodos perdidos y hasta podría darme un shop y a propósito, ya me duele el pop.

    Ojalá haya otra actividad.

    Adiós houdinenses.

    An-Hell
    Machupicchu: Enigmática maravilla del mundo.

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. Respuestas: 169
    : 30-10-2010, 04:24
  2. Icono de mensaje nuevo Segunda actividad de animación: carreras
    Por SHAZAM en el foro Actividades y Eventos
    Respuestas: 129
    : 02-10-2010, 19:45
  3. Icono de mensaje nuevo Segunda actividad de postproducción: day for night
    Por Stewie en el foro Actividades y Eventos
    Respuestas: 45
    : 03-03-2008, 23:26
  4. Icono de mensaje nuevo Segunda actividad de Houdini pintar una bola
    Por slime en el foro Actividades y Eventos
    Respuestas: 152
    : 24-02-2008, 19:57
  5. Postproducción Segunda actividad de postproducción: day for night
    Por Stewie en el foro Postproducción
    Respuestas: 1
    : 13-09-2005, 18:08