… | |
… | |
149 | pts.push_back (vertex_t2f_n3f_v3f (point ( 0, 0, size), vec3 (0, 1, 0), tex2 (0, 1))); |
149 | pts.push_back (vertex_t2f_n3f_v3f (point ( 0, 0, size), vec3 (0, 1, 0), tex2 (0, 1))); |
150 | pts.push_back (vertex_t2f_n3f_v3f (point (size, 0, size), vec3 (0, 1, 0), tex2 (1, 1))); |
150 | pts.push_back (vertex_t2f_n3f_v3f (point (size, 0, size), vec3 (0, 1, 0), tex2 (1, 1))); |
151 | pts.push_back (vertex_t2f_n3f_v3f (point (size, 0, 0), vec3 (0, 1, 0), tex2 (1, 0))); |
151 | pts.push_back (vertex_t2f_n3f_v3f (point (size, 0, 0), vec3 (0, 1, 0), tex2 (1, 0))); |
152 | |
152 | |
153 | geometry_quads *q = new geometry_quads; |
153 | geometry_quads *q = new geometry_quads; |
154 | q->m = new simple_material; |
154 | //q->m = new simple_material; |
155 | q->set (pts); |
155 | q->set (pts); |
156 | entity *e = new entity (q); |
156 | entity *e = new entity (q); |
157 | e->move (vec3 (dx + x * size, dy, dz + z * size)); |
157 | e->move (vec3 (dx + x * size, dy, dz + z * size)); |
158 | e->show (); |
158 | e->show (); |
159 | } |
159 | } |
… | |
… | |
300 | |
300 | |
301 | /* Set the gamma for the window */ |
301 | /* Set the gamma for the window */ |
302 | if (gamma != 0.0) |
302 | if (gamma != 0.0) |
303 | SDL_SetGamma (gamma, gamma, gamma); |
303 | SDL_SetGamma (gamma, gamma, gamma); |
304 | |
304 | |
|
|
305 | #if 0 |
305 | entity *planet = new entity (new geometry_sphere (10)); |
306 | entity *planet = new entity (new geometry_sphere (10)); |
306 | planet->move (vec3 (0, 0, -20)); |
307 | planet->move (vec3 (0, 0, -20)); |
307 | planet->show (); |
308 | planet->show (); |
|
|
309 | #endif |
308 | |
310 | |
309 | #if 1 |
|
|
310 | for (int i = 0; i < 20; i++) |
311 | for (int i = 0; i < 20; i++) |
311 | { |
312 | { |
312 | // load a entity |
313 | // load a entity |
313 | txtprt_parser p; |
314 | txtprt_parser p; |
314 | geometry *g; |
315 | geometry *g; |
… | |
… | |
324 | entity *e = new entity (g); |
325 | entity *e = new entity (g); |
325 | e->move (vec3 (i*5, -3, -i*10)); |
326 | e->move (vec3 (i*5, -3, -i*10)); |
326 | e->show (); |
327 | e->show (); |
327 | } |
328 | } |
328 | |
329 | |
|
|
330 | #if 0 |
329 | { |
331 | { |
330 | fisch (vec3 (0, 0, -2e9), 1e9, 8); |
332 | fisch (vec3 (0, 0, -2e9), 1e9, 8); |
331 | //entity *planet = new entity (new geometry_sphere (1e9)); |
333 | //entity *planet = new entity (new geometry_sphere (1e9)); |
332 | //planet->move (vec3 (0, 0, -1.5e9)); |
334 | //planet->move (vec3 (0, 0, -1.5e9)); |
333 | //planet->show (); |
335 | //planet->show (); |
… | |
… | |
363 | |
365 | |
364 | glEnable (GL_CULL_FACE); |
366 | glEnable (GL_CULL_FACE); |
365 | glDisable (GL_ALPHA_TEST); |
367 | glDisable (GL_ALPHA_TEST); |
366 | glDisable (GL_BLEND); |
368 | glDisable (GL_BLEND); |
367 | |
369 | |
368 | test_material test_mat; |
|
|
369 | |
|
|
370 | /* Loop until done. */ |
370 | /* Loop until done. */ |
371 | frames = 0; |
371 | frames = 0; |
372 | |
372 | |
|
|
373 | linear_light mylight; |
|
|
374 | mylight.c = colour (1., 0, 0, 1.); |
|
|
375 | mylight.intensity = 0.4; |
|
|
376 | mylight.radius = 100000; |
|
|
377 | |
|
|
378 | pass pass_light (&mylight); |
|
|
379 | |
373 | while (!done) |
380 | while (!done) |
374 | { |
381 | { |
375 | char *sdl_error; |
382 | char *sdl_error; |
376 | SDL_Event event; |
383 | SDL_Event event; |
377 | |
384 | |
… | |
… | |
385 | camera.u = cross (camera.d, right); |
392 | camera.u = cross (camera.d, right); |
386 | |
393 | |
387 | camera.p = camera.p - camera.d * (camera_velocity_factor * timer.diff) * camera_velocity.z; |
394 | camera.p = camera.p - camera.d * (camera_velocity_factor * timer.diff) * camera_velocity.z; |
388 | camera.p = camera.p - camera.u * (camera_velocity_factor * timer.diff) * camera_velocity.y; |
395 | camera.p = camera.p - camera.u * (camera_velocity_factor * timer.diff) * camera_velocity.y; |
389 | |
396 | |
|
|
397 | mylight.orig = camera.orig; |
|
|
398 | mylight.p = camera.p; |
390 | |
399 | |
391 | camera.begin (); |
400 | camera.begin (); |
392 | camera.render (view::DEPTH, pass_depth); |
401 | camera.render (view::DEPTH, pass_depth); |
393 | camera.render (view::POSTDEPTH, pass_depth); |
402 | camera.render (view::POSTDEPTH, pass_depth); |
394 | test_mat.enable (camera); |
|
|
395 | camera.render (view::LIGHTED, pass_depth); |
403 | camera.render (view::LIGHTED, pass_light); |
396 | test_mat.disable (camera); |
|
|
397 | camera.end (); |
404 | camera.end (); |
398 | |
405 | |
399 | SDL_GL_SwapBuffers (); |
406 | SDL_GL_SwapBuffers (); |
400 | timer.frame (); |
407 | timer.frame (); |
401 | |
408 | |