168
_randomize_particle (Particle* particle)
177
particle->position[X] = g_rand_double_range (g_rand, -0.5f, 0.5f);
178
particle->position[Y] = g_rand_double_range (g_rand, 1.0f, 1.3f);
179
particle->position[Z] = -1.0f;
180
particle->direction[X] = g_rand_double_range (g_rand, -0.2f, 0.2f);
181
particle->direction[Y] = g_rand_double_range (g_rand, -0.2f, 0.2f);
182
particle->direction[Z] = g_rand_double_range (g_rand, 0.01f, 1.0f);
183
particle->speed = g_rand_double_range (g_rand, 0.05f, 0.1f);
184
particle->age = 0.0f;
185
particle->lifetime = g_rand_double_range (g_rand,
187
0.1f * 60.0f * 2.0f);
189
// singularity-emitter
190
/*particle->position[X] = 0.0f;
191
particle->position[Y] = 0.0f;
192
particle->position[Z] = 0.0f;
193
particle->direction[X] = g_rand_double_range (g_rand, -0.5f, 0.5f);
194
particle->direction[Y] = g_rand_double_range (g_rand, -0.5f, 0.5f);
195
particle->direction[Z] = g_rand_double_range (g_rand, -0.5f, 0.5f);
196
particle->speed = g_rand_double_range (g_rand, 0.03f, 0.06f);
197
particle->age = 0.0f;
198
particle->lifetime = g_rand_double_range (g_rand,
200
0.1f * 60.0f * 1.0f);*/
205
_apply_gravity (Particle* particle)
210
particle->direction[Y] += -0.1f;
211
particle->speed += 0.001f;
167
215
_create_particles ()
171
gdouble position[3] = {0.0f, 0.0f, 0.0f};
172
gdouble direction[3] = {0.0f, 0.0f, 0.0f};
173
gdouble speed = 0.0f;
174
gdouble lifetime = 0.0f;
218
double position[3] = {0.0f, 0.0f, 0.0f};
219
double direction[3] = {0.0f, 0.0f, 0.0f};
221
double lifetime = 1.0f;
176
rand = g_rand_new_with_seed (g_random_int ());
180
226
for (i = 0; i < MAX_PARTICLES; i++)
182
position[X] = g_rand_double_range (rand, -0.5f, 0.5f);
183
position[Y] = g_rand_double_range (rand, -0.5f, 0.5f);
185
direction[X] = g_rand_double_range (rand, -0.2f, 0.2f);
186
direction[Y] = g_rand_double_range (rand, -0.2f, 0.2f);
187
direction[Z] = g_rand_double_range (rand, 0.01f, 1.0f);
188
speed = g_rand_double_range (rand, 0.0f, 0.01f);
189
lifetime = g_rand_double_range (rand,
191
0.1f * 60.0f * 60.0f);
192
228
g_particles[i] = particle_create (position,
232
_randomize_particle (g_particles[i]);
623
656
// initialize particle list
657
g_rand = g_rand_new_with_seed (g_random_int ());
624
658
_create_particles ();
626
661
_recalc_camera ();
628
662
gluLookAt (g_camera_pos[X], g_camera_pos[Y], g_camera_pos[Z],
629
663
g_camera_aim[X], g_camera_aim[Y], g_camera_aim[Z],
630
664
g_camera_up[X], g_camera_up[Y], g_camera_up[Z]);