Git Product home page Git Product logo

gtf's Introduction

GTF

Graphics Tools Framework A Framework to create C/C++ desktop tools oriented to 2D/3D graphics manipulation. This project started as an extraction of reusable code from the TexPainter project. The idea is to implement a feature-rich library to empower tools like TexPainter and others with similar needs.

Highlighted Features

  • Multiple windows with shared OpenGL 3 context on Windows and MacOSX
  • Abstract render hardware interface
  • 2D Texture resource & loader (PNG, TGA, JPEG and HDR)
  • 3D Mesh resource & loader (OBJ and FBX)
  • ImGui integration with additional widgets
  • Template class collection for custom node graphs

Coming soon

  • Texture writer (PNG, TGA, HDR)
  • Save/Load dialogs helper
  • A docking system based on the LumixEngine implementation
  • Improved node graph system

Help needed for...

  • API Design, some decisions I made are not the best ones
  • Replacing GLFW with something that let us use DirectX in the future
  • Replacing tinyfielddialogs, while it is a very useful library I prefer a more native-os-api approach
  • Experience with bgfx to discuss about it's integration here instead of the current render hardware interface

Build

mkdir build
cd build
cmake [-G generator] ../

Examples

MeshViewer Example (video)

CalcGraph Example (video)

NoiseGenerator Example (video)

Credits

Developed by David Gallardo [email protected]

Libraries

  • GLFW - OpenGL windows
  • ImGui - Grahic user interface
  • glm - maths
  • Autodesk FBX - FBX mesh loading
  • tiny_obj_loader - OBJ mesh loading
  • stb headers - texture loading/write, text utilites, etc...
  • glad - OpenGL functions loader
  • khrplatform - khronos types
  • mikktspace - Synched normals
  • tinyfielddialogs - load/save dialogs

Changelog

** 31 Jul 2016 **

  • Texture2D resource with loader (JPEG, PNG, TGA, HDR)
  • Improved 3D Mesh viewer example with textures (color and normal map)

** 30 Jul 2016 **

  • You can now build GTF with CMAKE in Windows and OSX
  • RHI Refactor (removed shared_ptr usage, added configurable vertex attribute list for VAOs)
  • Implemented mesh loading (OBJ and FBX)
  • Added 3D Mesh viewer Example

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.