- void RenderManyParticles()
- {
- float centerX = 0.0f;
- float centerY = 0.0f;
- float centerZ = 3.0f;
- int numX = 64;
- int numY = 64;
- int numZ = 64;
- float dX = gFluidParticleDistance * numX;
- float dY = gFluidParticleDistance * numY;
- float dZ = gFluidParticleDistance * numZ;
- int numParticles = numX * numY * numZ;
- gTotalFluidParticles = numParticles;
- PxVec3* particlePositionBuffer = new PxVec3[numParticles];
- int idx = 0;
- float ypos = centerY - (dY / 2.0f);
- for (int y = 0; y < numY; y++)
- {
- float xpos = centerX - (dX / 2.0f);
- for (int x = 0; x < numX; x++)
- {
- float zpos = centerZ - (dZ / 2.0f);
- for (int z = 0; z < numZ; z++)
- {
- particlePositionBuffer[idx].x = xpos;
- particlePositionBuffer[idx].y = zpos;
- particlePositionBuffer[idx].z = ypos;
- idx++;
- zpos += gFluidParticleDistance;
- }
- xpos += gFluidParticleDistance;
- }
- ypos += gFluidParticleDistance;
- }
- for (int i = 0; i < numParticles; i++)
- {
- glPushMatrix();
- glTranslatef(particlePositionBuffer[i].x, particlePositionBuffer[i].y, particlePositionBuffer[i].z);
- glCallList(gSphereListID); // Display zur Kompilierten Sphere (0.05, 8, 8)
- glPopMatrix();
- }
- delete particlePositionBuffer;
- }