XSIforum.com

Foros 3D => 3D-2D => Ejercicios => Mensaje iniciado por: Sumatra en 01 Diciembre 2013, 05:53:05

Título: Ejercicio 10: Cadena de ADN
Publicado por: Sumatra en 01 Diciembre 2013, 05:53:05
Como se ha comentado en otro hilo, la propuesta es crear una clásica cadena de ADN que se forma desde cero.
Puedes usar la técnica que prefieras, pero el uso de ICE para este caso es altamente recomendable.
Como es un ejercicio, no hay premio (y su fuera un concurso tampoco lo habría), pero aquí más que competir, la idea es aprender y compartir maneras de enfrentarse al reto.
Cualquiera puede participar.
Obviamente se valorará más el trabajo de alguien que se lo curra desde cero que de aquél que parta del 'compound házmelotodo'



Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 02 Diciembre 2013, 00:10:40
Pues hoy le he echado un ratillo y he dejado el camtasia rollo timelapse (2x), se podría hacer mucho mejor y tal pero bueno... ha sido un ejercicio interresante :)

Mientras encodeaba el timelapse he toqueteado un poco la cámara y he hecho un preview, podeis descargar todo desde aquí (si pensais hacer el ejercicio lo mismo intentarlo primero!)
http://vimeo.com/80919082
http://www.dropbox.com/sh/3v3xra2rssm3d9s/u8YJpAbqiL

Un saludo!
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 02 Diciembre 2013, 01:45:34
XDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD

(como te pasas)
(no puedo decir nada,..no se que decir,....esto,..que hago yo aqui?)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 02 Diciembre 2013, 01:47:02
...esto, cuando me reponga del shock,..hare algo,..
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 02 Diciembre 2013, 04:24:43
Que exagerado! jajajaja
En realidad parece mucho más complejo de lo que es (la cámara hace mucho), si es que ves el timelapse verás que no es nada del otro mundo =)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 02 Diciembre 2013, 04:32:21
Claro que he visto el timelapse,...a los dos minutos ya me habia perdido,..pero bueno, lo he visto hasta el final,...XD
Seguramente tendré que verlo unas 100 veces mas...

Por cierto, muchas gracias por la aportación!

Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: xuanprada en 02 Diciembre 2013, 11:15:53
Muy chulo Cesar, me gusta!
Ojala pudiera ponerme a aprender un poco de ICE.

A ver si salen mas entradas al respecto!
Ahora, a terminarlo y dejarlo como un bonito render :)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Sumatra en 02 Diciembre 2013, 11:22:29
Muy bueno, César. A ver si esta tarde puedo enseñar algo yo (ya no me acuerdo ni de cómo cambiar el color a las partículas)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 03 Diciembre 2013, 20:45:29
A ver,....he analizado tu escena César y la encuentro muy logica y simple. Estoy intentando reproducir algo similar pero sin tener tu modelo delante, osea, desde cero y sin copiar,..pero me encuentro con el problema de siempre: me  pierdo entre tanto nodo que no se para que sirve.
Hay alguna guia tipo, "si queres hacer esto puedes usar esto o aquello"?

Paso mas tiempo probando nodos que haciendo algo,...
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 03 Diciembre 2013, 21:25:29
Pues pregunta por aqui y así nos ayudamos entre todos :)
¿Que parte concreta quieres hacer y no sabes por donde tirar?
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 03 Diciembre 2013, 22:25:37
Gracias.
A ver, estoy con la construcción de la cadena.
Por cierto, el compound "Init Particle Data" no esta en el ICE Tree, he tenido que cargarlo desde el directorio de instalación (C:\Program Files\Autodesk\Softimage 2012 SP1\Data\Compounds\Particles\Emitters) por si a alguien le sirve (estoy con softi 2012 SP1,..no se si será por eso),..lo cual me lleva a preguntar porque aparecen unos nodos/compounds en el ICE Tree y otros por lo visto no,....

Bueno, al tema. Comprendo el proceso de creación de la primera espiral,..todo eso de Build..., Sin, Cos,...estc,..muy logico (me hace volver a los tiempos del bachillerato,..la de años que hace que no volvia  a ver esos terminos,...XD), pero intento hacer un reflejo de esa cadena,..algo asi como un "duplicate symetry",..pero no me sale (mas que nada para no repetir exactamente tus pasos,..)

Mas tarde mas preguntas...
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 03 Diciembre 2013, 22:58:02
Por cierto, el compound "Init Particle Data" no esta en el ICE Tree, he tenido que cargarlo desde el directorio de instalación (C:\Program Files\Autodesk\Softimage 2012 SP1\Data\Compounds\Particles\Emitters) por si a alguien le sirve (estoy con softi 2012 SP1,..no se si será por eso),..lo cual me lleva a preguntar porque aparecen unos nodos/compounds en el ICE Tree y otros por lo visto no
Si te fijas en el timelapse yo lo copio desde el interior de un 'emit from *' :D
El compound en si mismo es un 'set data' con atributos de partículas predefinidos, supongo que al no aportar nuevas funcionalidades no lo han incluído por defecto (si añades una categoría y lo re-exportas lo tendrás en la lista)... vamos que es un compound interno.

Citar
intento hacer un reflejo de esa cadena,..algo asi como un "duplicate symetry",..pero no me sale (mas que nada para no repetir exactamente tus pasos,..)
Tienes varias opciones, en el video usé un 'clone point' (que jutamente clona particulas) y luego roté el pointposition de la copia 180º mediante un 'rotate vector'.
Otra opción: añadir un segundo set de partículas directamente al add point, simplemente añade el rotate vector a la salida del scalar to 3dvector inicial (el del sin/cos) y conéctalo al add point.

---

En plan mega-resumen te diría que ICE funciona un poco más a 'bajo nivel' y cuando buscas como solucionar algo lo suyo es pensar de esa forma (las comillas son porque habitualmente se entiende por bajo nivel trabajar a nivel de hardware y ICE hace MUCHO por abstraernos de aquello), por ejemplo te permite clonar puntos pero tienes que currarte la simetría por ti mismo. No es común encontrar compounds basados en 'funcionalidad final' (los hay, pero son pocos y/o son de terceros), lo que viene por defecto son más bien bloques con los cuales contruir lo que necesitas.

No se si con todo esto estamos spoileando demasiado al resto o si mantener esta conversación en público le viene bien a alguien más, si molesta avisad y lo manejamos mediante mensaje privado y/o en otro hilo :)

Un saludo!
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 03 Diciembre 2013, 23:10:06
Jejeje,..esta todo claro, clarito,..... Gracias.

Luego pongo una captura de lo que me va saliendo, y pondre la escena cuando tenga esta parte resuelta.
Luego viene animar todo esto,..pero vamos por partes,....porque intuyo que hay diferentes modos de animarlo.

En lo que se refiere a los demás, creo que puede ser muy útil para otros lo que hablamos, porque las dudas que me encuentro creo que pueden ser las tipicas de un novato en esto.
Pero bueno, ya direis,...

Saludos!
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 04 Diciembre 2013, 00:21:53
vaya, estoy atascado,......ya tengo todo, pero quiero que los rails entre espirales no salga en cada particula, sino cada cierto numero de ellas,..y no doy con el nodo adecuado....
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 04 Diciembre 2013, 00:37:02
Este valor es el que me situa el rail a la altura que quiero,....pero quisiera que me creara unao cada cierto numero de particulas.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 04 Diciembre 2013, 00:46:12
Yo intentaría 'filtrar' usando un módulo :)
https://en.wikipedia.org/wiki/Modular_arithmetic
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 04 Diciembre 2013, 01:03:51
Uff,..lo dejo un rato.
Te paso la escena para que la veas in situ.
Gracias César.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 04 Diciembre 2013, 02:29:18
Le he echado un vistazo y la escena está muy bien, casi lo tienes!

He hecho algunas modificaciones con el truquillo del módulo que te comentaba antes, al principio puede parecer confuso pero si vas 'loggeando' conexiones entenderás como uso las ID para filtrar desde donde y hasta donde quiero crear las partículas intermedias :D
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 04 Diciembre 2013, 02:32:50
A ver,...que interesante.
:)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 04 Diciembre 2013, 02:44:41
Ok, ya voy entendiendo ( o eso creo,..jeje)

Bien, voy a darle otra vuelta de tuerca, pulir y complicar mas la cosa.

Te comento, según vaya saliendo.
Muchas gracias!
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Sumatra en 04 Diciembre 2013, 13:28:28
A mi me ha salido estos días un cúmulo de trabajo que no me da tiempo ni para comer, literalmente.
No he podido avanzar con mi hélix de ADN pero postearé lo que tengo en cuanto pueda. Tampoco he podido mirarme el trabajo de César, pero tengo una pregunta muy global: el método que usas para que las partículas se alineen formando el hélix es mediante un goal?
Me da la sensación que les das la información necesaria para que ellas se posicionen formando la cadena en lugar de simplemente decirles qué forma final tienen que adoptar y que se busquen la vida. Es así?
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 04 Diciembre 2013, 17:18:11
Algo asi, si :)
El tema con los goals es que son globales y resulta difícil posicionar elementos de forma precisa (trabajan a nivel de fuerzas y no de posición), se podría usar una especie de goal por partícula y tal pero no quise liarme y simplemente use una cache invertida (desmontar la cadena es mucho más fácil que montarla).
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: agedito en 04 Diciembre 2013, 17:25:10
yo estan noche subo el mio, grabar un video con mi peque es misión imposible :p
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 04 Diciembre 2013, 20:22:11
Como hago para que las particulas de los rails centrales queden orientadas hacia la particula de la helice de donde nacen? (al cambiar el shape de la particula, claro)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 04 Diciembre 2013, 20:43:54
Citar
yo estan noche subo el mio, grabar un video con mi peque es misión imposible :p
Agedito is in tha house! :D

Citar
Como hago para que las particulas de los rails centrales queden orientadas hacia la particula de la helice de donde nacen? (al cambiar el shape de la particula, claro)
Pensemos 'a bajo nivel': para que queden orientadas de X forma tienes que calcular y asignarles una rotación determinada, mirando por rotation probablemente encuentres un nodo llamado 'direction to rotation' que acepta un vector de direccion y un upvector (funciona como un direction constraint). Otra opción es modificar/incrementar la rotación actual de forma tal que quede como quieres, para ello hay un 'increment rotation with 2 vectors'.

Ahora bien, de donde sacamos esos vectores? pues sumando y restando vectores de posición!
https://es.wikipedia.org/wiki/Vector_(f%C3%ADsica)#Operaciones_con_vectores

Dale caña! :D
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 04 Diciembre 2013, 21:18:31
Vaya, vaya,..pues ya le voy encontrabdo el kit a la cuestión, porque lo estaba haciendo como dices, con un "Direction to rotation" pero el upvector me falla,,..

Ufff,..despues de mirar el link, ya me has dejado a cuadros del todo,...nunca me interesaron las matematicas y ahora,.."a la vejez viruelas", no?
XDDD
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 04 Diciembre 2013, 22:34:57
No me sale, pero estoy seguro que es por mi manera de pensar que no doy con la clave.

A ver, para mi, las particulas (puntos) por ejemplo A y A' defienen el origen de las particulas azules, entonces si le digo que se orienten apuntando a A, ya deberian alinearse,no?
Y el "Get Point ID" es el define este origen,...me equivoco?
Tanto si conecto este nodo como el Point Position, obtengo lo mismo:nada.
XD
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 04 Diciembre 2013, 23:46:11
Eso es, el problema es que sigues pensando a 'alto nivel' :)

'Get point id' retorna un número entero por partícula que representa su índice (la primera particula retorna 0, la segunda 1, la n-sima n-1), aqui es donde debes aplicar cierto ingenio para asociar el número ID de las partículas de un tramo dado (celeste) con el ID de los extremos. Por eso ICE no es tan sólo un sistemas de partículas, es más bien un lenguaje de programación.

Adjunto una captura con una posible solución sobre la escena que adjunté ayer, si lo ves muy difícil siempre puedes generar el adn usando múltiples pointclouds, de esa forma el ID será continuo y no tendrás que liarte tanto para establecer relaciones (algo de eso hablamos hace unos días con agedito, a ver si se anima a dar su opinión) :)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 04 Diciembre 2013, 23:56:02
Otra cosa que no sé si conoces es que puedes guardar atributos propios, por ejemplo podrías guardar en un atributo los id del lado iquierdo, en otro los del lado derecho y luego ya sabiendo en que número de tramo está la partícula (mediante el uso de modulo) puedes extraer el ID de los extremos fácilmente.

No sé me he explicado bien, lo que quiero decir es que puedes guardar lo que creas que reutilizarás en un futuro para no tener que calcular las cosas desde cero cada vez que te hagan falta (se hace con un 'set data' y asignas como nombre lo que quieras, ej: self.IDs_inicio)... vamos, una variable.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 04 Diciembre 2013, 23:59:12
OK, gracias, ahora lo miro.
Pero ya te digo que mi intención es hacer varias cadenas de ADN usando ICE de varias formas.
Esta es la V.1,...luego vendrá otra, como dices con varios PointClouds, otra usando extrude de geometria y otra con Strands, etc,...
Asi que por mi parte, esto va pa largo. :)

De momento estoy aprendiendo mucho, sobre todo a crear desde cero, sin usar compounds,..

Gracias.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 05 Diciembre 2013, 05:56:40
He hecho otro, esta vez usando strands :)

http://vimeo.com/81076013
https://www.dropbox.com/sh/yhgmkyhkxt5knwm/7e8ks6dTvM
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 05 Diciembre 2013, 21:08:45
Genial!
Pero,......me has quitado la idea!
(no es justo,....)

XDDD
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 05 Diciembre 2013, 21:36:17
Eso te pasa por hacerme trastear ICE para responder a tus preguntas, jeje xDD
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 05 Diciembre 2013, 21:43:41
Vale,..aceptamos pulpo,..XDD
1ª pregunta: como hacer que los strands de las helices sigan un path en lugar se hacer el camino por si mismas, y que sigan fielmente el trazado, sin hacer cosas raras como salirse en las curvas o ángulos,.... Lo cual me lleva a una duda que llevo tiempo sin poder resolver:
2ª pregunta: como hacer que los strands sigan el wire de una geometria (esta es gorda, jejeje)

Ale,....
;)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 05 Diciembre 2013, 22:15:56
Primero que nada creo que es importante que todos entendamos lo que es un strand, se le suelen atribuir 'propiedades mágicas' y en realidad es bastante primitivo.
Un strand no es más que 1 curva por partícula (es la expresión mínima de una curva de modo que sea ligera), generalmente se definen mediante un array (lista) de coordenadas 3D (los vértices de la curva) en un atributo por partícula llamado StrandPosition (hay otros atributos relacionados a strands, pero éste es el principal).

Con eso aclarado...
1) Dado que cada tramo del strand está definido por un vector de coordenadas en el atributo strandposition, podemos añadir gradualmente cada tramo de modo que el strand crezca gradualmente.
Otra opción es montar la espiral mediante simulación y usar los strands para trazar el recorrido de la partícula (como el último vídeo). En ese caso cambia todo, la forma de definir el movimiento en simulación pasa por usar fuerzas en lugar de manipular directamente la posición de los objetos.
En el ejemplo último usé una fuerza vertical para que la parícula suba, una tangencial de forma que giren en torno al punto central, una fuerza de atracción para que no se separen descontroladamente y por último un drag para controlar la velocidad (todo en los screenshots del enlace).

2) Esta es difícil porque las curvas de un wireframe no siempre son continuas y un strand es una curva continua por cada partícula, por lo que para 20 lineas necesitamos 20 partículas... y si una se bifurca necesitamos una partícula adicional para el nuevo tramo. Todo es posible pero no sabría decirte sin probar nada ni liarme a hacerlo, vaya :(
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 05 Diciembre 2013, 22:37:22
Interesante,..muy interesante.
Aclarado lo de los strands.

Esto se esta convirtiendo en una lección magistral, XD
Muchas gracias.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Sumatra en 06 Diciembre 2013, 11:13:00
http://youtu.be/ENGRj_3CS_Q
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Sumatra en 06 Diciembre 2013, 19:50:16
Aquí está el mío. Ya veréis por la fecha que no lo he vuelto a tocar desde hace una semana (lo que dije, falta de tiempo)


http://www.mediafire.com/download/dq8qpk5auxekcsy/DNA_Helix.rar




Básicamente se trata de una emisión de partículas que van directamente a un goal.
La idea de esto es por lo altamente previsible que es que el director pida cambios en el comportamiento de la hélice. De esta manera los podría aplicar sobre la geometría goal y las partículas, que son lo que se rendea, se adaptarían fácilmente.


La aportación que hago es poca si no nula. Es un calco de un videotuto que encontré


https://vimeo.com/1502921 (https://vimeo.com/1502921)


No creo que pueda hacer cambios... la licencia de Softimage 2012 nos caduca en 3 días y por ahora no parece haber intención de renovarla en el estudio. En casa tengo Softimage 2011 y quizás me de problemas al abrir la escena.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 06 Diciembre 2013, 21:14:12
Luego la miro Sumatra.
Hoy es que estoy muy liado, si no ya me habia metido con la cadena que tengo a medias,..ganas no me faltan.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 07 Diciembre 2013, 18:41:05
Hey,..ya lo tengo.
Luego lo subo, ahora tengo que salir.
César, no te relajes,..que hay mas!


Y  a los demás,...a ver si os animais un poco, que esto esta muy interesante,..personalmente como mínimo ya estoy haciendome amigo de ICE,..y eso es mucho!
Esta dejando de ser un extraño incomprensible e intragable. Ahora ya puedo mantener cortas conversaciones con ICE, en breve ya serán dialogos,...XD
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 07 Diciembre 2013, 23:26:07
César, estoy atascado en un par de cosillas. En realidad ya lo tengo, pero quiero pulirlo un poco y me he encontrado con lo siguiente:
Al final he hecho el ADN en dos ICETrees, es verdad que es mas sencillo por los de las ID's, etc,..Las helices estan en otro ICETree diferente al de la imagen que adjunto.
En este quiero que las particulas azules en lugar de ir de una helice a otra, se queden en la mitad.
Lo tengo a medias, pero todas las particulas mueren ( por asi decirlo) en la primera particula en lugar de quedar paralelas al punto que nacen.

Como eso quiero animarlo he pensado en clonar estas particul asy asi tengo la simetria (mas o menos como hiciste con las helices), correcto?

Saludos y gracias.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 08 Diciembre 2013, 00:14:40
No sé si lo entendí bien: necesitas que las partículas azules estén en medio de las helices de modo que luego puedas animar que se trasladen hacia los extremos (llegando a la imagen de la captura), es eso?

Si las quieres en el centro en lugar de construir un array interpolando linealmente entre 2 posiciones lo que necesitas es construir un array donde todas las posiciones correspondan a la media entre la posicion final e inicial (me refiero al array que conectas al nodo 'add point'), eso lo puedes hacer utilizando el nodo 'build array from constant' donde le pasas el tamaño y la posición que quieres para tus partículas.

Otra opción es conectar un 'get array average' a la salida del 'build linearly interpolated array' e interpolar entre ese valor y el valor original mediante un 'linear interpolate' (conectando el resultado del último al nodo 'add point'), de esa forma animado el blend podrás pasar de las partículas en el centro a todas distribuídas linealmente como en la captura :)

A ver si era eso, lo mismo entendí mal la pregunta y me he ido por donde no era xD
Mola que sigas en ello, asi es como se aprende :D
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 08 Diciembre 2013, 00:19:16
Bueno, justamente lo contrario: desde los extremos vayan hacia el centro,...justo como hiciste en la versión hecha con Strands.
Gracias

(no lo pienso dejar, puedo ser mas terco que una mula!)
XD
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 08 Diciembre 2013, 01:55:23
Pues lo mismo que te describí debería ser aplicable, lo suyo es dividirlo en 2 tramos (izquierdo y derecho) y usar la posición de la helice correspondiente en lugar de la media :)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 08 Diciembre 2013, 02:10:09
Graciasssss.
Por cierto, estoy investigando otros compouds de tantos que hay por ahi,...y ahora empiezo a entenderlos,..XDD
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 08 Diciembre 2013, 23:54:44
jejeje, me alegro :)
A medida que conozco mejor como funcionan las cosas (y lo que me queda por aprender, ufff) más valor le otorgo al trabajo técnico que permite llevarlo a cabo, es todo sorprendentemente simple/primitivo comparado con lo que se suele creer y hay mucho curro 'tras bambalinas' para llevar las cosas a los niveles actuales.

La 'magia' se desvanece dejando a gente ridículamente lista que abre camino a base de ingenio :)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 09 Diciembre 2013, 22:08:27
Ya tá!
XD
A ver, please, César echale un ojo, porque he puesto un poco de mi cosecha,..pero funciona!
(raro, raro,..pero funciona)

Saludos y muchas gracias!
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 09 Diciembre 2013, 23:28:33
Está muy bien, enhorabuena!
No entiendo muy bien la lógica de hacia que interpolan para cerrar los tramos intermedios pero funciona, jeje

Próximo desafío: animar el montaje de la cadena de forma progresiva =)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 09 Diciembre 2013, 23:39:58
En eso estoy ahora mismo!
;)

En lo referente a lo que comentas,.. vi que con el escalar 3D se desplazaban hacia el eje X o Z pero no al centro, asi que pensé que tal vez poniendo el mismo valor a estos dos ejes irian al centro,..y voilá, asi fue.
Lo del clamp es porque se salian hacia afuera por debajo del valor 1, asi que limité el rango entre 1 y 22 (el 22 era por poner un valr cercano al punto en que se unen o el rango no funcionaba, por lo visto necesita un minimo y  un maximo)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 10 Diciembre 2013, 01:05:06
A ver, que ahora me he perdido, llevo un rato y consigo cualquier cosa menos lo que quiero.
Veamos: la logica de esto (de lo que me acabo de dar cuenta,..XD) seria que se cree una particula cada cierta distancia, ya que la altura final de las helices ya la tenemos definida.
 
Por lo tanto sería decirle que cada x espacio se forme una particula, asi al definir o animar la altura, este numero de particluas se actualiza y la distancia entre ellas permanece constante,...cierto?
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 10 Diciembre 2013, 03:06:59
Si quieres crear partículas en distintos frames tendrías que montar todo en icetrees simulados :)
Otra opción sería usar un 'test inside null' que cambie el tamaño de las partículas, de esa forma puedes usar lo que tienes.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 10 Diciembre 2013, 03:16:55
Bueno, no exactamente (aunque lo del Null lo probaré), porque lo que quiero es que le ponga la longitud que le ponga a las helices, las particulas siempre tengan la misma distancia entre ellas.

No se si me explico, para mi modo de ver seria lo mas logico: le digo que cada particula dista 3 unidades (por ejemplo) entre ellas, y al animar la altura de las helices se creen las particulas necesarias para cubrir esta longitud pero manteniendo la distancia de 3 unidades entre ellas.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 10 Diciembre 2013, 04:24:13
En ese caso tendrías que modificar el array que le pasas al add point, hay un nodo que te permite filtrar el array dentro de un rango de indices llamado algo asi como 'select sub-array'.
Probablemente tendrás que cambiar el orden en que pasas los puntos intermedios de forma que la secuencia de IDs sea la más conveniente para el efecto y el resto está tirado :)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 10 Diciembre 2013, 04:56:22
Guay!
;)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 10 Diciembre 2013, 05:29:31
XD,..funciona bien!
A ver, algo chapucillas soy, esta claro,..pero esta quedando chulo...
Me gusta.
Voy a complicarlo mas,..quiero meterle otro array de particulas entre las principales con algo de turbulencia. Asignar colores  a cada parte,...y hacer un compound para subirlo,..y bueno ya opinareis y dareis opciones de mejora.
Muchas gracias César.

Luego a por la versión con strands y un Icetree simulado.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 11 Diciembre 2013, 03:23:50
Vaya, esto no deja de dar sorpresas (como si eso fuera algo nuevo,...XD)
 A ver, cuando pongo la altura a la que quiero que llegue la espiral (animar altura), y luego vario el numero de particulas que quiero que haya en ese intervalo, al alcanzar el numero coincidente con el limite de altura (34, en la imagen) las espirales descienden.
Es decir, al poner mas particulas de las que indica el valor de altura, la cadena se contrae,...espero explicarme.
He probado con un "clamp" y también con un condicionamiento (if), pero no lo consigo evitar.

Es un poco frustante, porque funciona muy bien y esta tontería me atasca.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 11 Diciembre 2013, 13:25:54
Anda César,..no me dejes tirado ahora, please.
;)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 11 Diciembre 2013, 14:52:51
jejeje, lo leí ayer por la noche pero era demasiado tarde como para pensar xD

A ver si pensando en voz alta encontramos el sentido del error: el valor de 'nº particulas' es el tamaño del array inicial (está conectado a size), es decir con un valor de 34 genera una secuencia que va desde 0 a 33 (los indices comienzan desde 0). Por otro lado 'animar altura' tiene un valor de 34 y está conectado al índice final del rango de índices que quieres filtrar, si el array inicial tiene un índice máximo de 33 (34 - 1) tiene sentido que falle al intentar seleccionar un índice inexistente.

Solución? la lógica me dice que si metemos un clamp al valor de 'animar altura' cuyo máximo fuese 'nº partículas' - 1 tendría que funcionar guay ;D

A ver si hay suerte y es eso!
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: agedito en 11 Diciembre 2013, 17:01:58
Buenas, subo aquí mi hélice. No he podido terminar de animarla, así que subo solo el compound de generación de la hélice. He grabado el proceso de generación en video y estoy poniéndole comentarios ya que lo hice en plan de explicar algunas cosillas, pero llevo una semana de locos.
He intentado hacer un compound muy ordenado y procedural para explicarlo bien. La idea es hacer todos los parámetros independientes (una de mis obsesiones :p), de forma que puedas variar uno sin afectar a los otros (creo que las dudas de Epar van por ahí), a ver si esta noche me puedo sentar, leer el hilo con detenimiento y subir el video. Cualquier duda por aquí andaré (si me dejan los niños y los bancos :p)

P.D: Añado un video de lo que hace el compound https://www.dropbox.com/s/t8jxdmqh2j84qpx/dna%20helix.avi (le copio a Cesar la idea de usar dropbox :p)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 11 Diciembre 2013, 20:44:05
jejeje, lo leí ayer por la noche pero era demasiado tarde como para pensar xD

A ver si pensando en voz alta encontramos el sentido del error: el valor de 'nº particulas' es el tamaño del array inicial (está conectado a size), es decir con un valor de 34 genera una secuencia que va desde 0 a 33 (los indices comienzan desde 0). Por otro lado 'animar altura' tiene un valor de 34 y está conectado al índice final del rango de índices que quieres filtrar, si el array inicial tiene un índice máximo de 33 (34 - 1) tiene sentido que falle al intentar seleccionar un índice inexistente.

Solución? la lógica me dice que si metemos un clamp al valor de 'animar altura' cuyo máximo fuese 'nº partículas' - 1 tendría que funcionar guay ;D

A ver si hay suerte y es eso!
Jolines, ahora lo pruebo,..tiene todo el sentido del mundo. Yo metia el clamp en el oro lado, en el "nº particulas",..y me hacia cosas peores aún,..XD
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 11 Diciembre 2013, 21:00:00
Muy chulo tu compound Agedito, luego lo pruebo.
Guay,..a ver si se anima mas gente.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 11 Diciembre 2013, 21:42:36
Atención pregunta: para que sirve el "Pass Through"?
Veo que se usa mucho y en diferentes posiciones (antes y después de un execute, o al final de una rama, etc,....)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 11 Diciembre 2013, 21:59:44
Cesar, funciona una cosa: ya puedo meter las particulas que quiera sin que se modifique la altura,..lo malo es que ha dejado de funcionar el "animar altura" (por cierto he de renombrar esos values,...asi queda como muy "de andar por casa", XD)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 11 Diciembre 2013, 22:02:58
Citar
Atención pregunta: para que sirve el "Pass Through"?
Simplemente pasa la información tal como la recibe (no hace nada). Se usa para mantener el gráfico lo más limpio posible y/o para cambiar conexiones de forma pseudo centralizada.

Imagina que conectas la salida de un get data a 6 nodos, si quieres reemplazarlo por otra cosa es más cómodo hacerlo mediante 1 conexión a un 'pass through' intermedio... o imagina que quieres reemplazar la salida de un compound, en lugar de eliminar la salida actual y crear una nueva (y de paso perder las conexiones fuera del compound) conectas el pass through como salida y ya reemplazas las conexiones allí ;)


Cesar, funciona una cosa: ya puedo meter las particulas que quiera sin que se modifique la altura,..lo malo es que ha dejado de funcionar el "animar altura" (por cierto he de renombrar esos values,...asi queda como muy "de andar por casa", XD)
No es cosa del clamp haciendo su trabajo?
Por cierto, cuando estés cerrando todo y tal prueba a usar un 'rescale' de modo que los índices del 'select sub-array' se ingresen de forma porcentual, en plan 100 son todos los indices y 0 ninguno... eso de escribir el indice parece evidente ahora pero dentro de 1 mes no lo recordarás :)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 11 Diciembre 2013, 22:14:21
Por cierto, muy chulo lo de agedito!
Muy bien estructurado todo, es una buena referencia sobre como trabajar en ICE de forma ordenada :D
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: agedito en 11 Diciembre 2013, 22:19:19
el pass through es el nodo más útil de ICE :p
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: agedito en 11 Diciembre 2013, 22:39:29
Merci Cesar, me gusta ser ordenado porque compound que veo que puedo reutilizar, lo guardo para no tener que rehacerlo de nuevo. Vas lento al principio, pero luego vuelas. Para prototipar soy más guarrete :p
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 11 Diciembre 2013, 23:32:00
Será porque estoy finalizando o porque hoy estoy muy cansado, pero no doy con las conexiones adecuadas del clamp.
En la imagen:
A- no hace nada, igual que antes, tanto si lo conecto al limit 1 ó 2.
B- funciona bien "nº particulas", pero deja de funcionar "Animar Altura"
Tambien puede ser que no haya entendido lo que antes comentaste.

Gracias, César.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 11 Diciembre 2013, 23:48:40
En el nodo clamp 'limit 1' es el menor valor posible y 'limit 2' es el mayor...
Por ejemplo:
clamp(value=34, limit1=0, limit2=10) == 10
clamp(value=-82, limit1=0, limit2=10) == 0
clamp(value=4, limit1=0, limit2=10) == 4

Se entiende? limit 1 debe ser 0 (cero) y limit 2 debe ser 'nº particulas - 1'
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 00:06:59
Si, ya lo entendí asi, pero es que tanto si lo conecto al limit 1 o 2 va igual que antes, no hace nada. Solo funciona si lo conecto a los dos, pero entonces deja de funcionar "animar altura"
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 01:08:05
Agedito, estoy analizando tu compound y me sorprenden dos cosas:
1.- lo simple que es en su construcción, lo cual me enseña mucho.
2.- veo que el Pass Through lo pones en todas las salidas y entradas,..hay algun motivo especial?, Puedes explicarme un poco esto?
Muchas gracias.

EDITO: Jolines que interesante, tu has construido simplemente dos lineas paralelas de puntos con los escalones intermendios y luego le has dado un Twist para hacer la espiral. Que simple e ingenioso!
XD
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: agedito en 12 Diciembre 2013, 01:19:21
Creo que se lo que pasa.
Olvida un momento el parámetro animar altura, tienes una altura de la espiral y un número de partículas que usas para llegar a esa altura. Cuando aumentas el número de partículas (sin variar la altura) tienes que meter más partículas en el mismo espacio (altura), por lo que están más juntas. ¿vale?
Ahora sí que nos fijamos en el parámetro animar altura, lo que estás diciendo es que te quedas con las 10 o 20 primeras partículas. Pero claro, como hemos dicho antes, si aumentas el número de partículas,están más juntas por eso decrece.

El problema sobre todo radica en que los parámetros animar altura y número de partículas están demasiado relacionados en tu implementación, yo el animar altura lo pondría o en unidades (como lo altura) o en un núenmro de 0 a 1 que represente el procentaje. De esa forma, rompes esa dependencia del parámetro.

Espero haberme explicado bien.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: agedito en 12 Diciembre 2013, 01:27:39
He respondido sin ver tu último escrito.
Primero lo del pass through, es que como ha dicho Cesar te facilita mucho hacer cambios. Si digo que un compound tiene una salida, la pongo con un pass though, de esa forma si luego cambio como calculo esa slida, no pierdo la conexión, porque siempre es el pass though lo que conecta. Es decir, separo cuantas salidas tengo (passthough) de como lo calculo (los nodos que utilizo). Lo mismo para las entradas.

Esa misma filosofía es la que sigo para plantear los problemas, un compound es qué quiero resolver y lo que meto dentro es como intento resolverlo. De nuevo separo el qué del como. De esa forma puedo plantear un compound sin saber muy bien como hacerlo. Eso ayuda también al trabajo en equipo.
Por eso es lo que comentaba antes de lso parámetro sy de loq eu decía de lo tuyo, al  intentar separa conceptrualemte los parámetros te evitas problemas conceptuales dificiles luego de encontrar (aunque muchas veces complicas el interior del nodo)

Esta noche que tengotiempo voy a  prepara un ejemplo muy claro de la filosofía que intento seguir, lo croe y lo explico en otro hilo.




Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 01:35:18
Oh, si, si,..ya me voy aclarando mas.
Tu modelo de ADN tipo "escalera retorcida" me ha dejado K.O.
XD
Estoy poniendo en practica lo que comentas y lo que me explicó César,..con vuestra ayuda seguro que saldrá algo decente. Bueno en realidad ya estasaliendo,..lo que pasa es que cuando me gusta una cosa, veo otra que no me cuadra,...en fin, el pan de cada día. XD

Gracias.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 02:43:06
Pues el problema viene de otro lado porque sigue sin arreglarse. He probado tanto una cosa como otra y sigue igual.
En fin, subo la escena para ver si entre los tres encontramos una solución, si os apetece, claro.

Tened en cuenta que el ICE tree esta bastante desordenado porque esta en proceso y hay partes que estan por definir, otras por probar,.etc,...No os asusteis al verlo, avisados estais!
XD
César, veras que hay cosas cambiadas y otras añadidas, etc,...en fin,..ahi va.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: agedito en 12 Diciembre 2013, 03:00:08
Voy a mirar tu escena.
Como dije antes, he creado una nueva entrada en la sección de mi blog hablando sobre parámetros en ICE.
http://www.xsiforum.com/forum/index.php/topic,9405.msg93526/topicseen.html#msg93526
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: agedito en 12 Diciembre 2013, 03:14:03
Es lo que te comentaba antes.
Con número de partículas defines con cuantas partículas dibujas la espiral. Y con height, estás definiendo con  cuantas partículas te vas a quedar. Si el height es mayor que el número de partículas, te estás quedando con todas, es como si no existiera el parámetro height.
Pero si height es menor que "número de partículas", lo que estás diciendo que que usan un número de partículas y el resto las borras, por eso parece qeu mengua.
Para verlo claro, haz una copia del point cloud y desplazalo un poquito (para que no se solapen) en esa copua, elimian el parámetro height, así verás que está pasando.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 03:20:24
ok, voy a ello.

EDITO: Si, esta claro, lo que pasa es que asi el numero de particulas definen la altura y lo que queria es que una vez establecida la altura, pudiera poner el numero de particulas que quisiera sin alterar la altura y que además al animar la latura este num. de particulas permaneciera estable.
Esto es principalmente porque hay dos tipos de espirales (la segunda esta temporalmente desconectada en la escena)
Me explico mejor:

La primara pareja de espirales defienen los puntos donde nacen los escalones.
La segunda rellena los espacios entre las particulas de la primera, y quiero que sea muy densa, con particulas mas pequeñas y cierta aleatoriedad de tamaño y distribución, pero sin perder la forma de la espiral, solo un poco,.."granulada" por asi decirlo.

Gracias!
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 05:45:16
Pues no lo entiendo, ya no se que probar, según esta construida esta helice la solución de César del Clamp es lo mas logico, correcto y adecuado,..pero no funciona, no,...y no hay vuelta de hoja.
Por hoy lo dejo, a ver mañana,...
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: agedito en 12 Diciembre 2013, 10:05:24
Sin tocar mucho el tuyo, yo lo haría así. Simplemente el height (que le llamo height percent) es un valor entre 0 y 1. Que multiplica al número de partículas, de esta forma puedo variar el número de partículas sin afectar a la altura.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 12 Diciembre 2013, 15:13:57
No sé si entendí el problema pero con un rescale parece funcionar, era esto?
https://dl.dropboxusercontent.com/u/1076274/xsiforum/dna_epar.mp4
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 16:18:18
Huy,... que interesante, luego pruebo ambas opciones.
Muchas gracias!
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 19:09:01
Bueno, ya estoy listo para la acción,..XD
Es que esta tarde estaba pensando en algo que no me acaba de convencer, aparte de lo que estamos comentando del height y tal, y que ahora me pongo con vuestras soluciones.
Me refiero al modo en que los tramos horizontales o escalones se juntan.
Como podeis ver en mi escena se juntan todos a la vez y lo que me gustaria es que se cerraran como una cremallera.
Ideal seria linkarlo al valor de altura de modo que la ir subiendo/bajando la espiral los escalones se fueran abriendo/cerrando,...no se como se puede hacer eso,...a ver que me sale.
Se aceptan aportaciones.
;)
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 21:38:19
Bravo, me quedo con Multiply by scalar, va de maravilla!
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 12 Diciembre 2013, 23:18:26
Bueno, de momento ya lo estoy finalizando. Luego se mejorará y tal,..
Pero tengo otra duda importante: quiero que las lineas horizontales (azules en la escena que puse) tomen el mismo color de la helice de donde nacen pero que en el centro de donde se unen sea otro.
Lo primero que me viene es un gradiente, pero algo me dice queno se hace asi en este caso,..no se,..
Bien, lo primero seria hacer que tomen el color de cada una de las helices, y para eso necesito el Get Point ID..no?,..pero como lo uso en un nodo de color si las salids posibles solo son un scalar o integer?
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 13 Diciembre 2013, 04:12:14
Aqui está, mi versión "semi acabada" del Compound para crear y animar una Hélice de ADN.
Hay cosas que no estan del todo bien, pero al ritmo que va el hilo esto puede hacerse eterno, asi que por el momento cierro el compound con una versión 1.0 en espera de que avance a posteriores mejoras. Es utilizable y funciona bien, aunque como ya he dicho es mejorable.

He aprendido mucho y espero seguir haciéndolo. Pero siento que este hilo no este teniendo la acogida ni el interés que al principio su propio creador manifestó...realmente es una lástima. Porque creo que somos muchos los interesados en aprender ICE desde la base y sabiendo lo que haces,...

Saludos y muchas gracias a los que me habeis ayudado y aportado vuestro granito de arena, César y Agedito. Es un esfuerzo y tiempo dedicado por vuestra parte que sé apreciar y valorar. No cae en saco roto y lo he aprovechado al limite de mis capacidades, que no son muchas por cierto..XD
Una vez mas, gracias.
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 14 Diciembre 2013, 20:10:35
Te ha quedado muy chulo Epar, enhorabuena! :D
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 14 Diciembre 2013, 20:33:54
Gracias César.
:)
En gran medida es gracias a ti!

Por cierto, ya que pillo por aqui. Tengo ahora mismo una duda: si quiero activar o desactivar una de las dos helices que debo usar?. Solo veo un "switch content", supongo que debo fabricar el interruptor conectando a la entrada value un,..ahora no se que,..jejeje,..tengo que mirarlo,...
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Cesar Saez en 14 Diciembre 2013, 21:13:46
Encantado en ayudar :)
Para eso puedes usar un nodo 'if', segun la condición ejecuta una u otra de las entradas (puedes dejar la rama del false sin nada para que no haga nada).
Título: Re:Ejercicio 10: Cadena de ADN
Publicado por: Epar en 14 Diciembre 2013, 21:39:56
Merci.
;)