Skip to content

Latest commit

 

History

History
61 lines (38 loc) · 3.19 KB

README.md

File metadata and controls

61 lines (38 loc) · 3.19 KB

OpenGL Black Flag

A project by Louis Caubet & Firas Ben Jedidia for the INF443 Computer Graphics course at Polytechnique.

Intro

In this project, we wanted to demonstrate a pirate ship at sea, with functional cannons able to shoot down an ennemy ship. We also demonstrated a procedurally generated island that can be visited.

Demo

Please go take a look at our demo clip here !

Screenshots:

Screen1 Screen2 Screen3 Screen4 Screen5

Installing and running

If you download the source code from the release, everything is ready to run out of the box. Just run setup.bat to install vcpkg dependencies and you're good to go!

Otherwise, please follow the steps below to set everything up manually.

Requirements

  • CGP, as installed in INF443. You should clone this repo in /scenes/inf443 for it to work seamlessly.

  • OpenGL 4.6. You need to update the glad version used by CGP. To do so, download a newer version of glad here. Replace the glad folder in library/third_party with the downloaded version.

  • Assimp: install using vcpkg:

    git clone https://github.com/Microsoft/vcpkg.git
    cd vcpkg
    ./bootstrap-vcpkg.sh
    ./vcpkg integrate install
    ./vcpkg install assimp --triplet x64-windows
    

    Download a sample CMakePresets.json here and put in in the root directory.
    Set the path to vcpkg.cmake in CMakePresets.json.

  • glslang: install using vcpkg : ./vcpkg install glslang --triplet x64-windows

  • rapidjson: install using vcpkg : ./vcpkg install rapidjson --triplet x64-windows

Third-party libraries

  • stb_image.h (GitHub) is a single-file public domain C/C++ image loader. We use it to load the window icon.

  • GLFFT (GitHub) is a C++/OpenGL library to run FFT on the GPU using compute shaders. We use the version shipped with the opengl-es-sdk-for-android due to compatibility issues with the latest version.

  • FFTWater is based on the FFTOceanWater advanced sample from opengl-es-sdk-for-android (GitHub). We made numerous changes to this code to make it compatible with OpenGL 4.6 instead of OpenGL ES and to adapt the result to our project.

  • FFTW3 is required. Add the precompiled library into a precompiled/fftw3 folder. You can download the library from https://www.fftw.org/

  • The ship is an asset named "Black Pearl" made by "Dazimbane" on RenderHub.