XSIforum.com

Foros 3D => Autodesk Softimage => ICE => Mensaje iniciado por: Unaided en 18 Febrero 2014, 22:21:56

Título: Instancias y su orientación
Publicado por: Unaided en 18 Febrero 2014, 22:21:56
Quiero posicionar la pieza romboide en el centro de cada quad de la geometría base, pero no sé como resolver la orientación de cada pieza. Espero que se entienda en las imágenes adjuntas.

Haciéndolo a mano, lo puedo resolver haciendo una matriz polar y esa 'roseta' posicionar en cada centro de cada pentágono de un dodecaedro, orientando esta hacia el centro del dodecaedro, y rotando 36º en su local.roty. Este procedimiento lo estaba haciendo con instancias en ICE, pero me surge el problema que para cubrir el poliedro completo se sobreponen diferentes piezas de cada 'roseta' de 5.

Por esa razón estoy intentando este otro procedimiento de instanciar cada pieza en cada polígono. En esta parte de la pieza sería una matríz polar, pero lo que busco es posicionar y orientar cada pieza sobre le dodecaedro completo.

Otro procedimiento que he probado, pero solo a mano, es con cuatro constrain position, a modo de pin-corner, pero en este caso necesitaría un control para rotar cada pieza de un modo semejante a como lo hace el uv editor.
Título: Re:Instancias y su orientación
Publicado por: Cesar Saez en 19 Febrero 2014, 01:43:34
He hecho la geometría a instanciar "a mano" y los ángulos no se ajustan perfectamente, pero supongo que se entiende la idea :)
Título: Re:Instancias y su orientación
Publicado por: Unaided en 19 Febrero 2014, 13:41:18
Gracias César!

Lo he mirado por encima y, no entiendo la idea :D Lo debo examinar con algo más de calma. Si veo que se posicionan sobre la geometría del pentagono, la orientación en Y la toman de un valor, y la dirección de la normal de cada poligono. Sin embargo el Closest to surface no trabaja correctamente, puesto que si roto todos los poligonos del pentagono, las piezas no se apoyan sobre los poligonos. No sé si habría que recurrir a un raycast para ello.
Título: Re:Instancias y su orientación
Publicado por: Cesar Saez en 19 Febrero 2014, 15:42:15
No es que el closest location no funcione correctamente, lo que sucede es que el polygon position que utilizo para crear las partículas no considera las transofrmaciones de la geometría en si, si multiplicas ese valor por la matriz de transformacion global de la propia geometría antes de conectarlo al add point debería que funcionar :)
Título: Re:Instancias y su orientación
Publicado por: Unaided en 19 Febrero 2014, 19:33:10
He añadido mi interpretación de tus palabras, que debe estar mal porque las piezas no se quedan fijas sobre la geometría en ninguna modificación de su SRT, tanto a nivel objeto, como a nivel componentes. La multiplicación del valor valor del PolygonPosition por el SRT de la geometría la hago en el operador Multiply Vector by Matrix que tenías puesto. Diría que teóricamente hace lo que decías.

He cogido con el kine.global porque en los parámetros del operador polymsh solo están Scale y Orientation.




Título: Re:Instancias y su orientación
Publicado por: Unaided en 19 Febrero 2014, 20:17:48
He cambiado el tinglao que he montado cogiendo escala, rotación y posición por separado y pasarla a una matriz con el SRT to Matrix por un simple Get kine.global como estabas usando para coger la posición del null, y tampoco funcionaba, pero me ha servido para ver que el null está forzando la posición de las partículas a una distancia (controlada por el control numérico que le has creado) del mismo, y he probado a desconectar, y voilá!
Posiciona las partículas en el centro del poligono, pero así me va mucho mejor, es lo que quería, ya que para posicionar las piezas, el centro de cada romboide de la geometría soporte, es el centro exacto.

¡Muchas gracias César!

Voy a trasladar esto a la geometría en la que estoy trabajando (un dodecaedro un poco tuneado) a ver si resulta, y me permite el control que busco.
Título: Re:Instancias y su orientación
Publicado por: Cesar Saez en 19 Febrero 2014, 21:54:20
Ouch :P
Vale, plan B... lo he re-hecho sin closest location, los compounds grises son donde está "la magia", lo he hecho de esa forma para que puedas ir conectando/desconectando cosas y puedas entender como funciona :)
Título: Re:Instancias y su orientación
Publicado por: Unaided en 20 Febrero 2014, 14:54:50
Ahora que estaba entendiendo como funciona el anterior ejemplo... y me lo cambias! jaja

Ya le he echado un vistazo, y he hecho alguna prueba con la geometría de soporte base. Tiene algunos problemas en como se posicionan las piezas sobre los poligonos. He desconectado el null center porque no necesito ese control, ya me va bien que se posicione en el centro de cada poligono, o en su defecto hago un midpoint en el edge de cada poligono.

He desmontado un poco tu compound, pero lo que quiero es que se posicionen en el centro de cada poligono y se apoyen sobre estos (bastaria con un up vector hacia el centro en mi caso), y se orienten (local.roty) hacia un punto (ground_center), como ya funciona en este ejemplo, pero no resulta con otra topología.

Con tu ejemplo se me ocurre hacer un detach de cada pentagono y hacer tantos pointclouds como pentagonos. No se apoyan bien cuando los componentes del objeto tienen otra orientación.
Título: Re:Instancias y su orientación
Publicado por: Cesar Saez en 20 Febrero 2014, 15:57:04
Eso es lo que pasa cuando omites información :/
Yo encantado te ayudo, de verdad, pero necesito que me digas que es lo que quieres resolver, sin omitir "detalles", de otra forma es difícil avanzar.
Título: Re:Instancias y su orientación
Publicado por: Unaided en 20 Febrero 2014, 22:19:26
Bueno, es que quería hacerlo yo, y empecé preguntando en puntos donde me atascaba bajo el procedimiento que empecé, como lo de necesitar un control para la orientación de cada partícula. Tu propuestas de procedimientos ya resuelven las cuestiones que he ido preguntando, y aunque son sofisticados para mi compresión, me van muy bien, tanto que me quedo con tus procedimientos.

Prepararé un poco de documentación gráfica, a ver si consigo explicar bien lo que quiero hacer. Fundamentalmente, viene a ser posicionar una geometría con forma de romboide sobre polígonos, con su dirección en la normal de cada polígono, y su orientación (la de la partícula) en local.roty libre para que pueda orientarse con grados, como ya has hecho en tus compounds. Pero lo dicho, déjame que "desomita" información ;)

Una cuestión: ¿por qué conectas las tres ramas a un 'execute' y este al ICEtree? qué diferencia tiene si computa su ejecución, supongo que secuencial, directamente el nodo ICETree?
Título: Re:Instancias y su orientación
Publicado por: Cesar Saez en 20 Febrero 2014, 23:30:51
Si, si... quizás por escrito el comentario puede parecer un poco duro pero vamos, nada más lejos de la realidad, que ya nos conocemos ;)
Lo de no omitir cosas es porque este tipo de soluciones se tienen que basar en algo y si no se conoces las "constantes" que hay en juego es difícil saber por donde pillarlo, por ejemplo en la última escena estoy usando como upvector el eje y del "terreno" lo que evidentemente falla en caso de una superficie "esférica".
Es poco probable que ante un problema de este tipo encuentres una solución 100% reutilizable que funcione automágicamente en todos los escenarios imaginables. Sin duda habrán componentes reutilizables, pero es muy probable que la solución global funcione bajo ciertos términos :)

El execute no significa absolutamente nada, no sabía si subiría el compound o la escena y ante la duda dejé un execute para encapsular todo en 1 salida.
Título: Re:Instancias y su orientación
Publicado por: Unaided en 24 Febrero 2014, 21:52:12
Bueno, lo prometido es deuda. Aquí expongo lo que estoy intentando hacer, César.
El procedimiento A, muestra el resultado casi como necesito, con la salvedad de un par de cosas que voy a comentar y por ellas me planteé el procedimiento B, que es donde no lograba salir adelante.

Procedimiento A:
(http://i.imgur.com/E2MGcG3.gif)

Con esto tendría lo que buscaba, pero con este procedimiento me encontré con dos inconvenientes como antes mencionada.
    1) La pieza a instanciar la he dibujado en el espacio, y resulta un tanto incomodo su posterior edición. Lo suyo es dibujarla sobre una vista Top (plano XZ) y con independencia de su pivote.
    2) Al instanciar cada "wheel" sobre cada centro de los pentágonos, se produce una duplicado en ciertas piezas, y no veo claro que tenga un logaritmo claro de repetición. Es decir, no sirve ocultar siempre la misma instancia de las 5 que contiene cada "molinete".

Para solventar estos dos puntos, pensé otro procedimiento para instanciar las piezas.


Procedimiento B
(http://i.imgur.com/jThiaXs.gif)

A partir de ahí, es donde me atasqué. Necesitaría direccionar cada pieza hacia el centro del dodecaedro, y poder controlar la orientación de las mismas sobre su eje local Y, pero solvento los anteriores inconvenientes. 
    1) Puedo modelar y editar sobre el plano XZ cómodamente la pieza a instanciar.
    2) Cada pieza se instanciaría sobre el centro de cada romboide, por lo que no habría duplicados.
Título: Re:Instancias y su orientación
Publicado por: Unaided en 25 Febrero 2014, 21:16:35
He probado con el operador Create Copies from Polygon Mesh apoyado por un Transform per Copy para posicionar las instancias en cada poligono de la geometría base. He conseguido "fijar" las instancias al Transform y al Rotation del dodecaedro, y que tomen la normal de cada poligono para su dirección, pero me faltaría poder controlar el vector local Y de las instancias, y no veo como hacerlo.
Aun así creo que no me serviría, ya que un mismo valor de rotación en Y de cada instancia no haría que tomen la orientación que busco. Lo suyo sería que cada grupo de 5 instancias apunten a cada centro de cada pentágono (puntos en blanco), pero me queda grande como llevar a cabo esto.