Hallo Conitec,
habe ein Kugelmodell mit 9144 Vertices.
An jedem Vertex soll ein/mehrere Partikel angehängt werden, wobei sich die Kugel bis auf Faktor 10 vergrössert.
function part_effect();
// proc_late(); // proc_late ändert auch nichts
var counter[3]; // Zähler zur Kontrolle
max_particles = 1000000;
action testkugel {
my.invisible = on; // Kugel unsichtbar
while (my.scale_x <= 10) { // 25 Schleifenduchläufe
vec_scale(my.scale_x,1.1);
counter[0]+=1; // Anzahl der Schleifendurchläufe, am Ende also 25
my.skill1 = 0;
while (my.skill1 < ent_vertices(my)) {// alle Vertices durchlaufen
counter[1]+=1; // 25*9144 , am Ende also 228600
vec_for_vertex(temp,my,my.skill1);
effect(part_effect,1,temp,nullvector);
my.skill1 += 1;
}
breakpoint; debug_mode = 0;
while(1) {if (key_1) {wait(5);break;}wait(1);} // zw. Kontrolle
wait(1);}
}
function part_effect() {
if (my.lifespan == 80) {
counter[2]+=1;
my.size = 1;
my.alpha = 100 ;
}
my.lifespan = 50;
}
Nach dem 1. Schleifendurchgang steht counter[2] auf 9144. Es wurden alle Partikel emittiert.
Beim 2. Durchlauf erhöht sich die Anzahl der Partiekel von 9144 auf nur 10000. Wieso ??
Ab Durchlauf 3 wird nur noch 1 Partikel erzeugt. Wieso ??
Wird
effect(part_effect,2,temp,nullvector);
gesetzt, werden im 1. Durchlauf ebenfalls nur 10000 Partikel erzeugt. Es müssten aber 18288 sein. Weshalb ??
Ich habe das mit der Trial-Version 6.31 getestet.
In meiner Sybex A6.0 erhalte ich die gleichen Ergebnisse.
Vielen Dank.