GithubHelp home page GithubHelp logo

iosif-t / glga-edu Goto Github PK

View Code? Open in Web Editor NEW

This project forked from papagiannakis/glga-edu

0.0 0.0 0.0 125.54 MB

the OpenGL Geometric Application Framework - full educational edition

License: Other

CMake 0.07% C++ 93.56% C 6.16% Objective-C 0.04% Lua 0.01% C# 0.15% Roff 0.01% Makefile 0.01% GLSL 0.01% Perl 0.01% M4 0.01% Batchfile 0.01% Shell 0.01%

glga-edu's Introduction

glGA Geometric Application framework for modern Shader-Based OpenGL

@Copyright George Papagiannakis, 2012-2020, University of Crete & FORTH

License is provided in the license.txt


What is glGA?

glGA full description can be found in glga homepage. Some relevant papers are the following.

  1. Papagiannakis, G., Papanikolaou, P., Greassidou, E., and Trahanias, P., "glGA: an OpenGL Geometric Application framework for a modern, shader-based computer graphics curriculum", Eurographics 2014, Education Papers, 2014.
  2. Kateros, S., Georgiou, S., Papaefthymiou, M., Papagiannakis, G., Tsioumas, M., “A comparison of gamified, immersive VR curation methods for enhanced presence and human-computer interaction in digital humanities”, International Journal of Heritage in the Digital Era, vol. 4, no 2, 2015, also presented in “The 1st International Workshop on ICT for the Preservation and Transmission of Intangible Cultural Heritage”, EUROMED2014
  3. Papaefthymiou, M., Feng, A., Shapiro, A., Papagiannakis, G., “A fast and robust pipeline for populating mobile AR scenes with gamified virtual characters”. ACM SIGGRAPH-ASIA 2015, Symposium On Mobile Graphics and Interactive Applications, Kobe, ACM Press, November 2015

Read carefully before proceeding

  • Always work on the dev branch of the repo (on the Code tab, if the main or another branch is selected instead, click and choose dev).
  • In case you find any errors you should open an Issue, in the Issues tab. Describe the problem and the required steps to replicate it. Again make sure you are working on the dev branch!

Installation instructions and hardware requirements

Hardware Requirements: OpenGL 3.2 and up

  1. Clone this repo locally and pull LFS content. You can follow these instructions if you are not sure how to do it. Make sure you are on the dev branch.
  2. Follow the basic installation instructions in the wiki, depending on your OS: Windows, Mac or Linux.
  3. Download and setup Visual Studio to build and run each project. Instructions to do so are found here.

The usage of Visual Studio Code is strongly encouraged against any other method. For other build and run methods, you may find information here.


Main glGA contributors

  • Papagiannakis George
  • Papanikolaou Petros
  • Greassidou Elisavet
  • Georgiou Stylianos
  • Kateros Stavros
  • Lydatakis Nikolaos
  • Papaefthymiou Margarita
  • Kanakis Marios
  • Geronikolakis Stratos
  • Bachlitzanakis Vasileios
  • Evangellou Yannis
  • Kartsonaki Ioanna
  • Kamarianakis Manos
  • Stefanidi Zina
  • Stefanidi Eleni

Release notes:

Version glGA5.0.1

Novelties include:

  • PRT, KDTree libraries for PRT rendering, KDTree visualization
  • dual quaternion, euclidean GA and Conformal GA animation blending

This is a keep-it-simple, but powerful&versatile C++11 openGL Geometric Applications framework for GPU shader-based computer graphics development for Windows and MacOSX-Linux & iOS mobile platforms utilizing modern GPUs.

This is the Developer's Edition, glGA5.0 version

Dependencies on all required third-party, open-source, freely available, multi-platform libraries are included inside the framework folders.

glGA libraries and provided examples

  1. glGAMath - mathematics for graphics and geometric algebra algorithms
  2. KDTree - acceleration structure for CG, used in PRT rendering
  3. PRT - main library that implements the PRT (precomputed radiance transfer) algorithm
  4. glGA - main library
  5. basicWindow - simple empty window and OpenGL context
  6. basicCube - simple 3D cube with color per vertex
  7. basicCubeGUI - previous 3D cube with an AntTweakBar GUI

OpenGL Shading Language, Third Edition

Download the book here

  • Chapter9: Fog simulation
  • Chapter10: Reflection from a shiny surface
  • Chapter11: Bump mapping
  • Chapter12: Precomputed Radiance Transfer
  • Chapter13: Shadow map
  • Chapter14: Refraction, Diffraction example
  • Chapter15: Perlin noise
  • Chapter16: Particles rendering (fireworks)
  • Chapter17: Antialiased Checkerboard Fragment Shader
  • Chapter18: Hatching example
  • Chapter19: Image processing examples

Known Issues:

  1. During the first Visual Studio Code build, assimp may not be detected. In this case, simply try building the project once again.

How to extend glga

Any new functionality you bring to glGA has to be in the form of a static library that all other users can use and a simple, thin application layer that illustrates its usage. e.g.:

  • glGA lib - basicWindow app

Any third party libraries you are using place them under the _thirdPartyLibs(binaries) and _thirdPartyLibsSrc(src code).

You may check some extra libraries and content in this wiki page.

glga-edu's People

Contributors

kamarianakis avatar papagiannakis avatar stratosger 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.