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

Théophile Bastian 24d21d77cb Use rendering at startup only for perlin ground 3 years ago
mesh 6e89298950 Use mesh center everywhere else 3 years ago
render 24d21d77cb Use rendering at startup only for perlin ground 3 years ago
tests 7b374c70ae Surfaces now provide a location hint 3 years ago
tools c527ecc611 Marching: various fixes 3 years ago
util 6e89298950 Use mesh center everywhere else 3 years ago
.gitignore 8d11d49b81 Marching: add compilation process 3 years ago
Ball.cpp 3bf61a7409 Enhance slightly the scene (floor + background) 3 years ago
Ball.hpp 041a1236c0 missing interface in header file 3 years ago
FlatGround.cpp 083bc3c654 Many many changes 3 years ago
FlatGround.hpp 083bc3c654 Many many changes 3 years ago
Ground.cpp d484a18da5 Add some structure for the ground. 3 years ago
Ground.hpp 083bc3c654 Many many changes 3 years ago
GroundFlatMesh.cpp 3bf61a7409 Enhance slightly the scene (floor + background) 3 years ago
GroundFlatMesh.hpp 3bf61a7409 Enhance slightly the scene (floor + background) 3 years ago
Implicit.cpp aaaebdc042 Normalize normals to norm 1 3 years ago
Implicit.hpp 3e3ec57bb5 Add a color attribute to meshes and surfaces 3 years ago
LICENSE 0775926122 Initial commit 3 years ago
Makefile 3bf61a7409 Enhance slightly the scene (floor + background) 3 years ago
MarchingCubes.cpp 3e3ec57bb5 Add a color attribute to meshes and surfaces 3 years ago
MarchingCubes.hpp 61ef03e955 Implement MarchingCubes' hint 3 years ago
Mesh.cpp aaaebdc042 Normalize normals to norm 1 3 years ago
Mesh.hpp 3e3ec57bb5 Add a color attribute to meshes and surfaces 3 years ago
PerlinGround.cpp 083bc3c654 Many many changes 3 years ago
PerlinGround.hpp aafbd8ec9c Add a get_surface method to perlin ground 3 years ago
PerlinNoise.cpp d8dafd3823 Better parameters 3 years ago
PerlinNoise.hpp 2afd89dbf3 Fractional Brownian Motion 3 years ago
README.md ffaa4ed7c8 Add instructions to README.md 3 years ago
common_structures.cpp 61ef03e955 Implement MarchingCubes' hint 3 years ago
common_structures.hpp 3e3ec57bb5 Add a color attribute to meshes and surfaces 3 years ago
main_ball.cpp 15ee31c30e Integration of the grounds 3 years ago
main_bounce.cpp 24d21d77cb Use rendering at startup only for perlin ground 3 years ago
main_glut.cpp ae95da9cd8 Fancify scene, adding a tet 3 years ago
main_test_sphere.cpp d1d2811978 Enhance test for marching cubes 3 years ago
periodic_updates.cpp 06c71feaa8 Fix initial position 3 years ago
periodic_updates.hpp bb530a8302 Implement moving camera 3 years ago
spheroid.cpp 083bc3c654 Many many changes 3 years ago
spheroid.hpp 083bc3c654 Many many changes 3 years ago

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