Metakreise

  • GM 8
  • Ich bin am rumexperimentieren dies umzusetzen und rausgekommen ist dieser Code:

    Quellcode

    1. varying vec2 v_vTexcoord;
    2. varying vec4 v_vColour;
    3. uniform vec2 pos1;
    4. uniform vec2 pos2;
    5. uniform vec2 pos3;
    6. vec3 col;
    7. void main()
    8. {
    9. col.rgb = vec3(0.,0.,(1.-distance(pos1,v_vTexcoord)*distance(pos2,v_vTexcoord)*distance(pos3,v_vTexcoord)*64.));
    10. if(col.b <= 0.)
    11. col.rgb = vec3(0.5,0.5,0.5);
    12. gl_FragColor = vec4(col,1.);
    13. }
    Alles anzeigen

    Dieser Fragment-Shader erfüllt genau den Effekt den ich haben will. Mein Problem ist aber dass die Größe der Kreise unkontrollierbar sind. Ich kann nur ihre Koordinaten bestimmen. Wenn ein Ball sich von den anderen entfernt schrumpfen die anderen Kreise. Auch hat ein weit entfernter Kreis schon Auswirkung auf die Form der anderen Kreise. Später werden hunderte von weiteren Bällen folgen und da ist meine große Sorge dass dies sich stark auf die Performance auswirkt oder gar das Spiel zum Absturz bringt, habe es noch nicht getestet. Wie schaffe ich nun dass die Kreise einen konstanten Radius haben und wie kann ich dass ganze möglichts Performant gestalten, es sind jetzt schon jede Menge Distance funktionen. Kaum vorstellbar bei 100+² Distance funktionen pro Step. Hoffe jemand kann Helfen.
    Dateien
    • Metacircle.gmz

      (893,65 kB, 182 mal heruntergeladen, zuletzt: )
  • Benutzer online 1

    1 Besucher