A repository for the MPRI's Computer Graphics and Visualization course project. A jelly-like ball bounces around. https://wikimpri.dptinfo.ens-cachan.fr/doku.php?id=cours:c-2-39
Iet uz failu
Théophile Bastian 24d21d77cb Use rendering at startup only for perlin ground 2018-02-14 17:22:27 +01:00
mesh Use mesh center everywhere else 2018-02-06 21:08:37 +01:00
render Use rendering at startup only for perlin ground 2018-02-14 17:22:27 +01:00
tests Surfaces now provide a location hint 2018-02-13 18:42:15 +01:00
tools Marching: various fixes 2018-02-12 00:34:41 +01:00
util Use mesh center everywhere else 2018-02-06 21:08:37 +01:00
.gitignore Marching: add compilation process 2018-02-11 18:34:00 +01:00
Ball.cpp Enhance slightly the scene (floor + background) 2018-02-14 11:43:49 +01:00
Ball.hpp missing interface in header file 2018-02-13 22:55:12 +01:00
FlatGround.cpp Many many changes 2018-02-13 22:54:41 +01:00
FlatGround.hpp Many many changes 2018-02-13 22:54:41 +01:00
Ground.cpp Add some structure for the ground. 2018-02-13 22:49:30 +01:00
Ground.hpp Many many changes 2018-02-13 22:54:41 +01:00
GroundFlatMesh.cpp Enhance slightly the scene (floor + background) 2018-02-14 11:43:49 +01:00
GroundFlatMesh.hpp Enhance slightly the scene (floor + background) 2018-02-14 11:43:49 +01:00
Implicit.cpp Normalize normals to norm 1 2018-02-13 16:41:30 +01:00
Implicit.hpp Add a color attribute to meshes and surfaces 2018-02-14 11:41:55 +01:00
LICENSE Initial commit 2018-01-25 11:01:41 +01:00
Makefile Enhance slightly the scene (floor + background) 2018-02-14 11:43:49 +01:00
MarchingCubes.cpp Add a color attribute to meshes and surfaces 2018-02-14 11:41:55 +01:00
MarchingCubes.hpp Implement MarchingCubes' hint 2018-02-13 18:43:02 +01:00
Mesh.cpp Normalize normals to norm 1 2018-02-13 16:41:30 +01:00
Mesh.hpp Add a color attribute to meshes and surfaces 2018-02-14 11:41:55 +01:00
PerlinGround.cpp Many many changes 2018-02-13 22:54:41 +01:00
PerlinGround.hpp Add a get_surface method to perlin ground 2018-02-13 22:54:41 +01:00
PerlinNoise.cpp Better parameters 2018-02-14 10:50:03 +01:00
PerlinNoise.hpp Fractional Brownian Motion 2018-02-13 23:38:24 +01:00
README.md Add instructions to README.md 2018-02-14 16:55:51 +01:00
common_structures.cpp Implement MarchingCubes' hint 2018-02-13 18:43:02 +01:00
common_structures.hpp Add a color attribute to meshes and surfaces 2018-02-14 11:41:55 +01:00
main_ball.cpp Integration of the grounds 2018-02-13 22:51:51 +01:00
main_bounce.cpp Use rendering at startup only for perlin ground 2018-02-14 17:22:27 +01:00
main_glut.cpp Fancify scene, adding a tet 2018-02-06 21:29:32 +01:00
main_test_sphere.cpp Enhance test for marching cubes 2018-02-12 00:56:35 +01:00
periodic_updates.cpp Fix initial position 2018-02-14 14:16:13 +01:00
periodic_updates.hpp Implement moving camera 2018-02-14 14:06:35 +01:00
spheroid.cpp Many many changes 2018-02-13 22:54:41 +01:00
spheroid.hpp Many many changes 2018-02-13 22:54:41 +01:00

README.md

mpri-graphics-project

A repository for the MPRI's Computer Graphics and Visualization course project. A jelly-like ball bounces around.

Course page | Slides

Compiling

The basic compilation is achieved by a simple make.

You can add additional compilation flags with ADD_FLAGS="..." make.

The produced binary is ./bounce.bin

Compilation flags

  • -DDEBUG_DISPLAY_WIREFRAME: display the wireframe of meshes
  • -DDEBUG_DISPLAY_NORMAL: display the computed normal vectors for each vertice
  • -DMC_SHOW_PERF: display Marching Cubes performance stats

Run flags

  • -perlin: replace flat ground by perlin noise
  • -qwerty, -azerty: change the used keymap

For instance, ./bounce.bin -perlin -qwerty will use perlin floor and a qwerty keymap.

In-app commands

  • space: play/pause
  • <, >: slow down/speed up animation
  • 0: reset to default speed
  • w, a, s, d (z, q, s, d in azerty): move camera
  • q, e (a, e in azerty): rotate camera around y axis