Resultados 1 al 3 de 3

Tema: Melting script porque elimina pocas partículas

  1. #1
    Fecha de ingreso
    Feb 2009
    Mensajes
    84

    Melting script porqué elimina pocas partículas?

    Hola. Estoy haciendo un script para hacer el derretido de unas letras. La idea es simple, uso dos emisores, uno para llenar el objeto y al cual luego haré un freeze a sus partículas y otro que generara las nuevas partículas partiendo de la posición de las partículas des primer emisor.

    De momento funciona más o menos, pero me encuentro que elimina muy pocas partículas en cada frame y además pilla más partículas de la parte de abajo.

    Alguien tiene experiencia con scripting de RealFlow? Si me pudierais ayudar lo agradecería mucho.

    El script es este (tengo algunas partes como comentarios de las pruebas que he hecho,):
    #-.
    # function: onsimulationbegin.
    #-.

    Def onsimulationbegin():
    Emitter = scene, getemitter(lleno2) tletra = scene, getobject(t) tparticle = emitter, getfirstparticle () twhile (particle):
    Particle, freeze () particle = particle, getnextparticle () tletra, setparameter(simulation, inactive).
    #-.
    # function: onsimulationstep.
    #-.

    Def onsimulationstep():
    Temitter=scene, getemitter(lleno2) tfoam=scene, getemitter(foam) tremovelist = [] tparticles = emitter, getparticles() tfor particle in particles:
    If (particle, id == 0):
    Break, tneighbors = particle, getneighbors(.025) tid=particle, getid() tpos=particle, getposition() tvel=particle, getvelocity() t#count = 0 t#i=0 t#if (i <=1000):
    Threshold = 5000 tif (len(neighbors) > threshold) and (len(neighbors).=0):
    Pues = particle, getposition() tvel = particle, getvelocity() tremovelist, append(particle, getid()) tfoam, addparticle (pos, el) tif (len(removelist) > 0):
    For I in range (len(removelist)):
    Lleno2.removeparticle (removelist[i]) t#if (len(neighbors) >0.01):
    #count=count +1 #i=i+1 #foam, addparticle (pos, vel) #lleno2.removeparticle (id) #else:
    #scene, message (str(count)) t#id=particles, getid() t#pos=particles, getposition() t#while (particles):
    #if (neighbors > 1):
    #lleno, removeparticle (id) #foam, addparticle (pos) #particles, getnext. Particle ().
    #-.
    # function: onsimulationframe.
    #-.

    Def onsimulationframe ():
    Pass.
    #-.
    # function: onsimulationend.
    #-.

    Def onsimulationend():
    Pass.
    #-.
    # function: onchangetoframe.
    #-.

    Def onchangetoframe ():
    Pass.

    Si hace falta puedo enviar el archivo que uso para hacer el test, tiene pocas partículas y poca resolución. Por eso parece que elimina más partículas, peor en cuando quieres ponerlo en un proyecto serio, la cosa cambia. Un saludo y muchas gracias.
    Un saludo a todos! y siempre muy agradecido!.

    www.thevode.com

  2. #2
    Fecha de ingreso
    Dec 2004
    Mensajes
    1,851

    Melting script porqué elimina pocas partículas?

    Hola. Pues a ver no sé muy bien porque no elimina muchas partículas. Cuantos Substeps tienes igual es que tienes muy pocos, prueba a poner el código en onsimulationframe a ver qué tal, luego veo que te sobran líneas en tu script, si tu defines una variable en onsimulationbegin, no la tienes que volver a definir, la puedes llamar directamente, lo mismo si la defines fuera de un loop, no la tienes que volver a definir dentro del loop. Quizás las tengas que definir como variables globales (no lo he probado), pero merece la pena porque así haces el código más eficiente.

    Una cosa, puedes vovler a pegar el código con una etiqueta code? Es muy difícil leerlo sin las indentaciones, quizás tengas algún loop mal, pero no puedo saberlo.
    Última edición por bealobo; 14-06-2010 a las 11:53
    E moet roeien met de riemen die je hebt.

  3. #3
    Fecha de ingreso
    Feb 2009
    Mensajes
    84

    Melting script porqué elimina pocas partículas?

    Hola. Perdona, es que he estado últimamente con este proyecto tan liado que, puf. Muchas gracias spor responder. Ahora que ya entregué el trabajo sigo investigando por mi cuenta y he hecho un script algo más corto. Parece que funciona bien, no pilla las partículas profesional orden, sino que lo hace por númeor de vecinos. El problema es que tarda horas para un solo step.

    Est empieza a hacer que me plante dudas sobre cómo funcionan las listas en Real Flow. Si la creo en simulationstep creo que cada step vuelve a mirar todas las partcículas para buscar cual eliminar. Yo creo que debe haber alguna forma de crear la lista al inicio, con toda la información de las partículas y luego cada step ir obteniéndolas y borrándolas de esta lista.

    En realflowforum tengo unos hilos abiertos con mis avances y uno con lo que entregué al final.
    Código:
    #-.
    # function: onsimulationbegin.
    #-.
    
    Def onsimulationbegin():
    Emitter = scene, getemitter(v).
    
    Letra = scene, getobject(extrude Nurbs 0_1).
    
    Particle = emitter, getfirstparticle ().
    While (particle):
    Particle, freeze ().
    
    Particle = particle, getnextparticle ().
    #-.
    # function: onsimulationstep.
    #-.
    
    Def onsimulationstep():
    Emitter=scene, getemitter(v).
    
    Foam=scene, getemitter(foam).
    
    Removelist = [].
    
    Particles = emitter, getparticles().
    
    For particle in particles:
    #particlenext = particle, getnextparticle ().
    
    Pues = particle, getposition().
    
    Vel = particle, getvelocity().
    
    Neighbors = particle, getneighbors(1/(10*(1000(1/3)))+0.02).
    
    Scene, message (str(len(neighbors))).
    
    Threshold = 38.
    
    If (len(neighbors) < threshold):
    Pues = particle, getposition().
    
    Vel = particle, setvelocity(0).
    
    Id = particle, getid().
    
    Removelist, append(particle, getid()).
    #emitter, removeparticle (particle, getid()).
    
    Foam, addparticle (pos, el).
    
    If (len(removelist) > 0):
    For I in range (len(removelist)):
    Emitter, removeparticle (removelist[i]).
    Intento conseguir algo como este:
    General Melt test.
    Luego si me sale bien intentaré añadirle erosión por las partículas que caen.
    Última edición por dpproject; 20-06-2010 a las 14:43
    Un saludo a todos! y siempre muy agradecido!.

    www.thevode.com

Temas similares

  1. Clon del BMG de Trianglelab con pocas revoluciones
    Por kenek en el foro Impresoras 3D
    Respuestas: 6
    : 05-03-2022, 18:24
  2. Blender ¿Animar con pocas subdivisiones?
    Por octanebloom en el foro Animación y Rigging
    Respuestas: 3
    : 09-05-2021, 04:57
  3. Unas pocas de dudas
    Por Mario en el foro Postproducción
    Respuestas: 1
    : 10-02-2004, 22:19
  4. Cómo hacer un bosque de geometría con pocas caras
    Por cantamanyanas en el foro Materiales y Texturizado
    Respuestas: 1
    : 15-11-2003, 13:45
  5. Hacer un bosque de geometría con pocas caras
    Por cantamanyanas en el foro Modelado
    Respuestas: 2
    : 11-11-2003, 10:34