Hier ein Beispiel:
Code:
#include <acknex.h>
#include <default.c>

#define anzahl_particles 9000    // unter 5000 ist alles in Ordnung.
VECTOR Position[anzahl_particles];

function main()
{
	fps_max = 10;
	video_set (sys_metrics(0),sys_metrics(1),32,1);
	max_particles = 10000;

	level_load (NULL);
	vec_set (sky_color,nullvector);
	vec_set (camera.x,vector(-600,0,0));	

	int i;
	for (i=0; i<anzahl_particles; i++)
	{
		Position[i].x = random(500) -250;
		Position[i].y = random(500) -250;
		Position[i].z = random(500) -250;
	}
	
	while (1)
	{
		for (i=0; i<anzahl_particles; i++)
		{
			draw_point3d(Position[i],vector(0,0,255),100,2);
		}
		wait(1);
	}
}


Sobald anzahl_particles über 5000 gesetzt wird, beginnen die Punkte zu flackern. Habe fps_max extra auf 10 gesetzt, damit man die Aenderungen in num_particles im Debugpanel besser beobachten kann.

Komischerweise funktioniert es sobald ich max_particles auf das Doppelte von anzahl_particles setze, in diesem Beispiel 18000. Aber die var num_particles zeigt dann immer noch nur 9000 an.

Darum hatte ich auch die Frage mit der Begrenzung von 5000 Particles: max_particles war in meinem Projekt auf 10000 gesetzt und auch dort funktionierte es nur bis 5000 sauber.

Last edited by Widi; 03/04/11 05:20.