**The G3D Innovation Engine** ( this page is always at http://casual-effects.com/g3d ) ![](preview.jpg) Description ======================================================================= The G3D Innovation Engine is a commercial-grade C++ 3D engine available as Open Source. G3D supports hardware accelerated real-time rendering, off-line rendering like ray tracing, and general purpose computation on GPUs. Its design emphasizes rapid prototyping and innovation, particularly of rendering and game algorithms. G3D provides a set of routines and structures so common that they are needed in almost every graphics program. It makes low-level libraries like OpenGL, network sockets, and audio channels easier to use without limiting functionality or performance. G3D is a carefully designed, feature-rich base on which to prototype your 3D application. The [contributors](http://casual-effects.com/g3d/g3d/G3D10/build/manual/contributors.html target="_parent") span the graphics industry. The engine is primarily maintained by Morgan McGuire at NVIDIA & Williams College and Michael Mara at Stanford University & Oculus Research. It includes contributions from professional game developers, CAD and DCC developers, students, industry researchers, and professors. Features ======================================================================= - *Rendering Modes* - Forward and deferred shading - Parallel ray tracing - Cloud and remote rendering - *In-Engine Prototyping Tools* - Video recording, screenshot, and cube-map capture - CPU and GPU profilers - Texture debugger - Drag and drop scene editor - Model inspector - Asset viewer for fonts, cube maps, textures, and models - Automatic developer diary support - Built-in SVN support - *Primitives* - Triangle meshes - Polygon meshes - Sparse voxels - Dense voxels - Points - Heightfield - Skybox - *Virtual reality support* - Add VR to any 3D program by subclassing VRApp - Automatic performance scaling - Automatic controller support - Vive, Rift, and DK2 output - Tracking for unlimited objects - *Audio and video API* - Simple and full 3D audio via FMOD - Real-time video recording and playback - *State-of-the-art effects* - Ambient occlusion - Motion blur - Depth of field - Screen-space radiosity - Bloom - Tone mapping - Vignetting - Order-independent transparency - *Data import and export* - FBX, OBJ, IFS, MD2, MD3, BSP, 3DS, PLY, PLY2, OFF, and custom models - JPG, PNG, EXR, BMP, PPM, GIF, PCX, TGA, DDS, and ICO images - MP4, MPG, MOV, AVI, DV, QT, and WMV video input and output - Fonts - 3 GB of ready-to-use assets - *Write once, run everywhere* - Windows 10, 8, 7, Vista, XP, OS X, and Linux - Visual C++, XCode, and llvm/clang support - Javascript interoperability - Easy to use, skinnable GUI - Reliable, fast network API on UDP - Optional automatic memory management Source Code ======================================================================= G3D contains a main repository directory of code and documentation named *G3D10* and a series of auxiliary asset repository directories in the *data10* directory. You can [browse the repository with WebSVN](http://casual-effects.com/g3d/websvn) to see the full directory structure with SVN messages and inspect individual files from the current SVN. You can also view [raw files](http://casual-effects.com/g3d/g3d?) that are updated once per hour. You can check out the entire library using: ~~~~~~~~ svn co svn://g3d.cs.williams.edu/g3d/ ~~~~~~~~ ...or you can check out just the subdirectories that you need, for example `svn://g3d.cs.williams.edu/g3d/G3D10` is just the library source code, without the large asset packs. The minimal installation to be able to run the sample programs is: ~~~~~~~~ svn co --depth immediates svn://g3d.cs.williams.edu/g3d/ svn co --depth immediates svn://g3d.cs.williams.edu/g3d/data10 g3d/data10 svn co svn://g3d.cs.williams.edu/g3d/G3D10 g3d/G3D10 svn co svn://g3d.cs.williams.edu/g3d/data10/common g3d/data10/common ~~~~~~~~ The top level directory structure is: *********************************************************************** * g3d * * | * * +-- G3D10 * * | * * +-- data10 * * | | * * | +-- common * * | +-- game * * | '-- research * * | * * '-- www * *********************************************************************** The [readme file](../G3D10/readme.md.html? target="_parent") explains the checkout and installation process on Windows, OS X, and Linux. Install ======================================================================= Follow the latest [installation instructions](../G3D10/readme.md.html? target="_blank") for Windows, Linux, or OS X to download and build from source. Precompiled binaries are not currently available for G3D. Documentation ======================================================================= G3D has an [extensive manual](../G3D10/build/manual/index.html target="_parent") that is generated by Doxygen from source code markup. In that manual you can find: - [Build and installation](../G3D10/readme.md.html? target="_blank") - [**API reference**](../G3D10/build/manual/apiindex.html? target="_parent") - [Developer tools](../G3D10/build/manual/devtools.html? target="_parent") - [Library](../G3D10/build/manual/guideoverview.html? target="_parent") and [API](../G3D10/build/manual/guideconcepts.html target="_parent") overview - [Sample Programs](../G3D10/build/manual/samples.html? target="_parent") - [GPU programming model](../G3D10/build/manual/immediatemode.html? target="_parent") You can build the documentation locally with the command `buildg3d doc`. The version hosted on `g3d.cs.williams.edu` tracks the SVN top-of tree and is updated about once an hour. License ======================================================================= Academic Citation ----------------------------------------------------------------------- Citations in published works support development of G3D by demonstrating its signficance to funding agencies and our employers. If you use G3D for a scientific or academic work, please cite it as: _Bibtex:_ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bibtex @misc{G3D17, author = {Morgan McGuire and Michael Mara}, title = {The {G3D} Innovation Engine}, year = {2017}, month = {01}, url = {http://casual-effects.com/g3d/}, note= {\url{http://casual-effects.com/g3d/}} } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ _MLA:_ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ none McGuire, M. and Mara, M. "The G3D Innovation Engine", http://casual-effects.com/g3d, 2017 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Library ----------------------------------------------------------------------- The G3D Innovation Engine core components (G3D.lib, GLG3D.lib, and data-files/shader) are open source under the OSI-approved "[2-Clause BSD](https://opensource.org/licenses/BSD-2-Clause target="_parent")" license. It is distributed alongside several other libraries and data files that each have their own licenses. The contents of each subdirectory tree in the G3D Innovation Engine source tree and distribution are governed by the "license.txt" or "license" file at the root of that tree. Note that the G3D Innovation Engine does not and cannot grant a license to these other libraries. Your use of those libraries is governed by their own licenses, which the library maintainers believe but do not warrant are suitable for research, academic, open source, and independent game developer use without further licensing arrangements and are amenable to large-scale commercial development with further licensing arrangements. Commercial usage of FMOD products may require a separate license directly with Firelight Technologies. For details refer to www.fmod.com/files/public/LICENSE.TXT. Unless you exclude FMOD Studio from the G3D build using the `G3D_NO_FMOD` macro at compile time, you must credit "FMOD" (or "FMOD STUDIO") and "FIRELIGHT TECHNOLOGIES" in your product in documentation, or in an on screen format. The redistributed libraries include: * assimp - BSD-style open source * civetweb - BSD-style open source * zip - BSD-style open source * zlib - BSD-style open source * glfw - BSD-style open source * glew - BSD-style open source * tbb - Apache open source * embree - Apache open source * enet - MIT open source * nfd - zlib open source * FreeImage - FreeImage Public License - Version 1.0 open source * ffMPEG - GNU Lesser General Public License (LGPL) version 2.1 open source * qrencode - GNU Lesser General Public License (LGPL) version 2.1 open source * fmod - FMOD Sound System, copyright (C) Firelight Technologies Pty, Ltd., 1994-2014. The non-BSD-style components can be excluded from the G3D build using the `G3D_NO_XXX` macros. qrencode.lib is not linked to G3D. The open source PhysX is distributed with G3D but not built into the G3D library. Content under data-files (excluding the shader subtree) are governed by a mixture of Creative Commons licenses and Public Domain. As a convenience, the G3D Innovation Engine produces the file `g3d-license.txt` at run time for any program linked against it, which may aid developers in complying with the licenses of the distributed libraries. However, it is the sole responsibility of the application developer to comply with these licenses and satisfy licensing arrangements.