The first weblog devoted to Demoniak3D Demo-System

[Update] Spiral Galaxy Demo

February 8th, 2008 Posted in Demos, FR, UK
  • English
  • French

Dr Goulu vient de faire une mise à jour de sa demo de simulation des bras spiraux d’une galaxie. La simulation utilise maintenant plusieurs vertex-pools pou mélanger différentes textures de particules.

Homepage – Download: Spiral Galaxy Demo




Les touches [F1, F2] et [F3, F4] permettent de modifier les paramètres régissant la formation des bras spiraux. Les paramètres de l’image ci-dessous sont les suivants: eratio=0.875 et etwist=21.800.

  1. 6 Responses to “[Update] Spiral Galaxy Demo”

  2. By Dr. Goulu on Feb 8, 2008

    merci d’avoir fait la vidéo ;-)
    On peut aussi jouer avec les touches F1-F2-F3-F4, le but c’est de comprendre comment se forment les bras spiraux, qui ne tournent pas mais sont formés par des étoiles qui tournent …

  3. By JeGX on Feb 8, 2008

    J’avais pas vu le coup des touches F1…F4. J’ai mis à jour le billet.

  4. By Dr. Goulu on Feb 21, 2008

    Sur mon blog, JegX a posé le commentaire suivant :

    Bon 15000 etoiles c’est sympa mais j’ai fait des tests avec les vertex pools et j’ai réussi à animer près d’un million de particules (pas avec des trajectoires complexes mais ça donne l’idée). Il faut qu’on trouve le moyen pour augmenter le nombre d’etoiles à au moins 100k dans ta demo.

    Ben je viens d’essayer, mais je n’y arrive pas, même en précalculant complètement mes trajectoires…

    le code de mise à jour des positions est devenu hyper-simple :
    for j,v in ipairs(stars) do -- loop on star types
    for i,star in ipairs(v.data) do -- loop on stars
    local e=ellipse[star.r]
    star.a=star.a+1; if star.a>e.n then star.a=1 end
    local xyz=e.pt[star.a]
    HYP_VertexPool.SetVertexPosition_Fast( v.vp, i-1 , xyz[1],xyz[2],xyz[3] )
    end
    end

    mais malgré ça, ça n’a même pas doublé le framerate…

    Est-ce que c’est le GPU qui freine, avec des étoiles “trop compliquées” ? pour chaque vertex pool j’ai:


    HYP_Object.SetMaterial( stars[j].vp, "mat"..tex )
    HYP_Object.AttachTexture( stars[j].vp, "tex"..tex, "mat"..tex, 0 )
    HYP_Object.SetTexturingState( stars[j].vp, 1 )

    if size then HYP_VertexPool.SetVerticesSize( stars[j].vp, size ) end

    if color then
    if not color[4] then color[4]=0 end
    HYP_VertexPool.SetVerticesColor( stars[j].vp, color[1],color[2],color[3],color[4] )
    end

    if not damp then damp={} end
    if not damp[1] then damp[1]=0 end
    if not damp[2] then damp[2]=0.001 end
    if not damp[3] then damp[3]=0 end

    HYP_VertexPool.SetPointSpriteDistAtt( stars[j].vp, damp[1],damp[2],damp[3] )

    HYP_Object.SetBlendingState( stars[j].vp , 1 );
    HYP_Object.SetBlendingFactors( stars[j].vp, 1, 1 )

    Autre idée ?

  5. By JeGX on Feb 21, 2008

    Je vais regarder ce problème de performance dans très peu de temps car je vais faire une nouvelle mise à jour de Demoniak3D. Je m’amuserai avec ta demo à ce moment là.

  6. By Lavoux on Apr 7, 2008

    merci à toi pour cett image :D

  1. 1 Trackback(s)

  2. Feb 8, 2008: Galaxie Spirale et Séquence Principale « Dr. Goulu

You must be logged in to post a comment.