glGA full description can be found in glga homepage. Some relevant papers are the following.
- 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.
- 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
- 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
- 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!
Hardware Requirements: OpenGL 3.2 and up
- 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.
- Follow the basic installation instructions in the wiki, depending on your OS: Windows, Mac or Linux.
- 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.
- 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
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.
- glGAMath - mathematics for graphics and geometric algebra algorithms
- KDTree - acceleration structure for CG, used in PRT rendering
- PRT - main library that implements the PRT (precomputed radiance transfer) algorithm
- glGA - main library
- basicWindow - simple empty window and OpenGL context
- basicCube - simple 3D cube with color per vertex
- basicCubeGUI - previous 3D cube with an AntTweakBar GUI
- 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
- During the first Visual Studio Code build, assimp may not be detected. In this case, simply try building the project once again.
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.