项目作者: rwols

项目描述 :
Yet another render engine
高级语言: C++
项目地址: git://github.com/rwols/gintonic.git
创建时间: 2017-03-31T13:03:22Z
项目社区:https://github.com/rwols/gintonic

开源协议:

下载


gintonic

Welcome to gintonic! This is a personal render engine of me. The current render
strategy is deferred rendering.

Before Building

OSX

Install the latest version of Xcode and brew. Then install boost and CMake
with brew:

  1. $ brew install boost
  2. $ brew install cmake

Ubuntu (possibly also other Linux flavors)

Make sure have a modern compiler (modern GCC or modern clang). Install boost,
cmake and git with your package manager.

Windows

Install the latest version of Visual Studio C++. Install the latest version
of CMake. Install a fairly recent version of boost. Make sure you have a git
client.

Cloning

Clone this repository recursively in order to clone all the submodules too:

  1. $ git clone --recursive https://github.com/rwols/gintonic.git

Building

We use CMake in the most standard way possible, no surprises. That means that
you should execute the following commands on the command line in order to build
the project:

  1. $ cd path/to/gintonic
  2. $ mkdir build
  3. $ cd build
  4. $ cmake ..
  5. $ cmake --build .

It’s recommended to build with Ninja:

  1. $ cmake .. -G "Ninja"

On Windows, the freetype library cannot be built as a shared library, so use
the following command line invocation for CMake:

  1. $ cmake .. -DBUILD_SHARED_LIBS=OFF

You can optionally build release versions (the default is Debug):

  1. $ cmake .. -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release

Structure of This Project

In graphical form, the directory structure looks like this:

  1. gintonic:
  2. - assets:
  3. - CMakeLists.txt
  4. - <more directories>
  5. - examples:
  6. - CMakeLists.txt
  7. - <cpp files, each of which is a separate example executable>
  8. - include:
  9. - CMakeLists.txt
  10. - cmake:
  11. - <Doxygen related files>
  12. - Foundation:
  13. - <header files>
  14. - Graphics:
  15. - GUI:
  16. - <header files, deprecated>
  17. - OpenGL:
  18. - <header files>
  19. - Shaders:
  20. - <glsl shader files>
  21. - <header files>
  22. - Math:
  23. - <header files>
  24. - <header files>
  25. - lib:
  26. - <third party git submodules live here>
  27. - CMakeLists.txt
  28. - <implementation files, mirrors the include directory structure>
  29. - test:
  30. - CMakeLists.txt
  31. - <various unit test cpp files>
  32. - tools:
  33. - <various subprojects for tools development>
  34. - CMakeLists.txt # The root cmake file.
  35. - README.md # <-- You are here.

Example Executables

The example executables are located in examples. Each .cpp file is a single
example. When building has finished, and assuming the project was built in the
build folder, the example executables are located in build/examples.

Roadmap

I’m currently in the process of refactoring a lot of code. Most notably, the
Renderer object (located in include/Graphics/Renderer.hpp and
lib/Graphics/Renderer.cpp) has become so large that it has become infeasible
to move the project forward. Moreover, Entities are in the process of getting a
facelift. The current implementation has a bunch of hard-coded pointers to
component objects; this should just be a vector. Dynamic casting will then be
handled via dynCast in include/Casting.hpp. Next, a general Asset system is
needed to make this engine data-driven. Take a look at the issues page to see
what is being worked on.