… | |
… | |
136 | |
136 | |
137 | void draw_floor (int size, int dx, int dy, int dz) |
137 | void draw_floor (int size, int dx, int dy, int dz) |
138 | { |
138 | { |
139 | int x, z, ry; |
139 | int x, z, ry; |
140 | |
140 | |
141 | for (x = 0; x < 100; x++) |
141 | for (x = 0; x < 10; x++) |
142 | { |
142 | { |
143 | for (z = 0; z < 100; z++) |
143 | for (z = 0; z < 10; z++) |
144 | { |
144 | { |
145 | vector<vertex2d> pts; |
145 | vector<vertex2d> pts; |
146 | pts.push_back (vertex2d (point ( 0, 0, 0), vec3 (0, 1, 0), texc (0, 0))); |
146 | pts.push_back (vertex2d (point ( 0, 0, 0), vec3 (0, 1, 0), texc (0, 0))); |
147 | pts.push_back (vertex2d (point ( 0, 0, size), vec3 (0, 1, 0), texc (0, 1))); |
147 | pts.push_back (vertex2d (point ( 0, 0, size), vec3 (0, 1, 0), texc (0, 1))); |
148 | pts.push_back (vertex2d (point (size, 0, size), vec3 (0, 1, 0), texc (1, 1))); |
148 | pts.push_back (vertex2d (point (size, 0, size), vec3 (0, 1, 0), texc (1, 1))); |
… | |
… | |
282 | |
282 | |
283 | /* Set the gamma for the window */ |
283 | /* Set the gamma for the window */ |
284 | if (gamma != 0.0) |
284 | if (gamma != 0.0) |
285 | SDL_SetGamma (gamma, gamma, gamma); |
285 | SDL_SetGamma (gamma, gamma, gamma); |
286 | |
286 | |
|
|
287 | entity *planet = new entity (new geometry_sphere (10)); |
|
|
288 | planet->move (vec3 (0, 0, -20)); |
|
|
289 | planet->show (); |
|
|
290 | |
|
|
291 | #if 1 |
287 | for (int i = 0; i < 20; i++) |
292 | for (int i = 0; i < 20; i++) |
288 | { |
293 | { |
289 | // load a entity |
294 | // load a entity |
290 | txtprt_parser p; |
295 | txtprt_parser p; |
291 | geometry *g; |
296 | geometry *g; |
… | |
… | |
301 | entity *e = new entity (g); |
306 | entity *e = new entity (g); |
302 | e->move (vec3 (i*5, -3, -i*10)); |
307 | e->move (vec3 (i*5, -3, -i*10)); |
303 | e->show (); |
308 | e->show (); |
304 | } |
309 | } |
305 | |
310 | |
|
|
311 | { |
|
|
312 | entity *planet = new entity (new geometry_sphere (1e9)); |
|
|
313 | planet->move (vec3 (0, 0, -1.5e9)); |
|
|
314 | planet->show (); |
|
|
315 | } |
|
|
316 | |
|
|
317 | { |
|
|
318 | entity *planet = new entity (new geometry_sphere (4e15)); |
|
|
319 | planet->move (vec3 (0, 0, 1e17)); |
|
|
320 | planet->show (); |
|
|
321 | } |
|
|
322 | |
306 | draw_floor (10, -500, -10, -1000); |
323 | draw_floor (10, -500, -10, -1000); |
307 | draw_level (); |
324 | draw_level (); |
308 | draw_test_nurb (); |
325 | //draw_test_nurb (); |
|
|
326 | #endif |
309 | |
327 | |
310 | //camera.orig.x = 108; camera.orig.y = 0; camera.orig.z = -368; |
328 | //camera.orig.x = 108; camera.orig.y = 0; camera.orig.z = -368; |
311 | camera.orig.x = 0; camera.orig.y = 0; camera.orig.z = 0; |
329 | camera.orig.x = 0; camera.orig.y = 0; camera.orig.z = 0; |
312 | camera.p = point (0, 0, 10); |
330 | camera.p = point (0, 0, 10); |
313 | camera.d = vec3 (0, 0, -1); |
331 | camera.d = vec3 (0, 0, -1); |
… | |
… | |
350 | camera.u = cross (camera.d, right); |
368 | camera.u = cross (camera.d, right); |
351 | |
369 | |
352 | camera.p = camera.p - camera.d * (camera_velocity_factor * timer.diff) * camera_velocity.z; |
370 | camera.p = camera.p - camera.d * (camera_velocity_factor * timer.diff) * camera_velocity.z; |
353 | camera.p = camera.p - camera.u * (camera_velocity_factor * timer.diff) * camera_velocity.y; |
371 | camera.p = camera.p - camera.u * (camera_velocity_factor * timer.diff) * camera_velocity.y; |
354 | |
372 | |
355 | |
|
|
356 | #if 0 |
|
|
357 | static GLfloat ry; |
|
|
358 | ry += 0.001; |
|
|
359 | camera.d.x = cos (ry); |
|
|
360 | camera.d.z = sin (ry); |
|
|
361 | //camera.d.y = sin (ry * 0.1); |
|
|
362 | #endif |
|
|
363 | osa_mat.begin (); |
373 | osa_mat.begin (); |
364 | |
374 | |
365 | camera.begin (); |
375 | camera.begin (); |
366 | camera.pass (view::DEPTH); |
376 | camera.pass (view::DEPTH); |
367 | camera.pass (view::LIGHTED); |
377 | camera.pass (view::LIGHTED); |