Hypergiant
Features
OpenGL in Lisp
Write familiar OpenGL code, in Scheme, with render performance identical to C. Hypergiant uses two high level structures — meshes and pipelines — that abstract the most common OpenGL operations. Pipelines encapsulate shaders in a Lispy DSL and when you use them to render meshes, you're calling auto-generated branchless C code.
Scene management
Manage the objects and cameras in your scene with a scene graph that uses an adaptive spatial partitioning system to perform well across a wide range of scene types. Hypergiant employs the target-agnostic Hyperscene library to perform the entire rendering stage in C.
Asset loading and rendering
Hypergiant knows how to load and render:
- Static and animated models
- Sprite sheets
- Typefaces
- Textures
Window management
Cross-platform boring stuff like opening windows and setting up OpenGL contexts are taken care of by Hypergiant, with lots of help from GLFW. A high-level input system further makes handling events easy.
Effects
Fancy up your scene with lighting, particle effects, and GPU-based noise shaders.
Maths
Graphics needs math. Hypergiant has math. It also knows how to draw a cube-mapped texture onto a sphere, among other things.
Resources
Learning
- Documentation
- Hypergiant's complete documentation covers all of its features. You can also search for every Hypergiant function in CHICKEN's documentation index.
- Tutorial
- All of Hypergiant's basic concepts are explained in this tutorial, which illustrates the creation of a semi-complete game.
- Examples
- Hypergiant ships with a number of examples that cover just about everything Hypergiant can do.
Development
- Source
- Hypergiant's BSD licenced code can be found on GitHub.
- Bugs
- Submit bugs and feature requests to Hypergiant's issue tracker.
- Hypergiant is built on top of a number of libraries, so it's possible that issues you're seeing have been reported on the tracker of another project. When in doubt, you can always report issues to Hypergiant's tracker, no matter what their root may be.