Git Product home page Git Product logo

quadric-engine's Introduction

quadric engine

OpenGL-based engine for creative programming in C++17.

Demo quadric engine

Dependencies

Following packages need to be installed:

  • libglvnd-dev
  • GLFW3 (libglfw3-dev and libglfw3) not the wayland version!
  • GLM (libglm-dev)
  • eigen3 (libeigen3-dev)
  • glad (python3-glad)
  • gcc

Optional:

  • glslang-tools (for GLSL code linting)

Building and running

git clone https://github.com/thomasbbrunner/quadric-engine.git
cd quadric-engine
mkdir build
cd build
cmake ..
make
cd ../
./bin/quadric-engine

TODOs

  • Remove singletons and global variables
  • Add right version to glad loader
  • Formatting according to a standard (google style guide)
  • Port geometries to templated classes and make generation of vertices run at compile time
  • Make entire interface more like a library and less like a framework
    • compile as a static library (no main function, wrap in namespace quadricengine/qe/quad/quadric)
    • more control and flexibility to the developer
    • less time for implementation of new features
  • Improve shader support
    • add debugging shader (fall back option, only geometry)
    • add support for shader hot reloading (automatic reload on file save, see C++17 std::filesystem)
  • Clean up git history (tags)
  • Improve Scene object:
    • Remove automatic merging of geometries, and save each geometry in a vector/array.
    • Instead, allow the creation of a new geometry from merged geometries, which could then be used in a scene.
  • Re-add OpenGL ES support
  • Do proper C++ casting
  • Look into WebGPU
  • Don't append all geometries together, scenes should be composed of different geometries. Appending geometries should be done by creating another geometry.
  • Make code work properly under wayland

quadric-engine's People

Contributors

thomasbbrunner avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.